news 2026/10/16 7:25:52

nanoMuse双手(Hands)实战:让AI像人一样操作手机屏幕,12306抢票、微信自动回消息全攻略

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
nanoMuse双手(Hands)实战:让AI像人一样操作手机屏幕,12306抢票、微信自动回消息全攻略

【免费下载链接】nanoMuse

nanoMuse: an open-source personal agent for every device you own. One agent with a name and a look of its own that does things, keeps working while the app is closed, remembers you, and asks before anything you cannot undo. On Android, iPhone and iPad, Windows / macOS / Linux and in the browser; your phone's screen and your computer as its hands.

项目地址:https://gitcode.com/gh_mirrors/na/nanoMuse
点击查看免费下载

nanoMuse 是一个跨 Android、iPhone、桌面和浏览器的开源个人 AI Agent(Personal Agent),而它最"上手"的能力就是Hands(双手):智能体直接看手机屏幕,像人一样点击、输入、滑动,帮你查 12306 火车票、自动回复微信消息、在支付宝里查账单。这套能力默认关闭,打开后智能体多出phone_screen、phone_act、phone_task三个工具,每一步动作都经过内置哨兵(Sentinel)审查——付款、发送、删除这类不可撤销的操作,一定会先停下来问你。本文带你从打开开关到跑通两大经典场景,全程只需要三处设置。

一、"双手"到底能做什么:看屏幕 + 动手指

nanoMuse 的操作器把手机屏幕当成一张图片来看:截一张图,模型看图后决定下一步(点哪里、输什么字、往哪滑),执行后再截图确认,循环直到任务完成。它不依赖任何 App 的私有接口,所以任何一个 App 都能操作——12306、微信、支付宝、美团,多装一个 App 不需要任何额外开发。

核心是三个工具(源码见 nanomuse/tools/phone.py):

工具作用风险等级
phone_screen看当前屏幕:一张截图 + App 名、屏幕尺寸安全(但读取隐私数据)
phone_act做单个动作:tap点击、swipe滑动、type输入、open_app打开 App、hand_over交还手机中等,敏感操作升级为"每次必问"
phone_task把一整个目标交给 GUI 操作器:看、做、再看,循环直到完成按各步单独评估

操作器的完整循环(看 → 决定 → 做)写在 nanomuse/phone/operator.py,模型按 999×999 的网格报坐标,运行时换算成手机真实像素——"图上的点就是屏幕上的点"。

二、三步上手:打开手机 GUI 操作开关

第 1 步:打开 GUI 开关

在 App 里走「连接 → 手机」拨开开关,或者在配置里加一段(参考 config/config.example.toml):

[gui] enabled = true

开关打开前,手机上的任何东西都到不了模型那里;打开后智能体才"长出双手"。

第 2 步:连接手机(Android)

需要Android 11 及以上,并用 App 自带的无障碍服务驱动屏幕(截图 + 手势):

  1. 在「连接 → 手机 → 这台手机 → 打开无障碍设置」中,找到nanoMuse并打开;
  2. Android 13+ 从下载渠道安装时开关可能变灰,需先在应用设置里点「⋮ → 允许受限设置」;
  3. 手机系统更新、激进省电之后可能自动关掉服务——「手机」卡片会实时显示"就绪"或"还没有",先看这里。

第 3 步:选一个"能看图"的手模型

看屏幕意味着每一步都是一次带图片的模型调用,所以"手"可以单独用一个支持图像的模型(和聊天模型分开配置)。中国大陆默认推荐阿里云百炼的qwen3.8-27b,其他地区用 OpenRouter 同名模型。留空"自动"时,系统会按"对话模型自带 → 云端中继 → 聊天模型本身"的顺序自动选一个能看图的。

三、场景 1:12306 查票与"抢票",停在付款页

内置技能train-tickets(nanomuse/skills/builtin/train-tickets/SKILL.md)把 12306 拆成"两双手":

  • 查询用手快的:优先走 12306 的 MCP 服务器读公开时刻表和余票——不用登录、不碰屏幕、一次调用出结果;没有配置 MCP 时,才降级到手机屏幕上用phone_task打开铁路12306 App 查。
  • 下单只能在屏幕上:12306 没有可供个人智能体调用的下单 API,所以订票走手机屏幕。

典型流程:

  1. 你说"帮我查明天北京到上海最早的高铁",智能体打开 12306 App,设好出发地、目的地、日期,点「查询车票」,筛选「只看高铁」,把车次、时间、价格、余票读给你;
  2. 你选定车次并说"订这个",它用phone_task选好座位和乘客,停在"提交订单"页,把车次、乘客、总价复述给你确认;
  3. 你点头后,它点「提交订单」——此时 Sentinel 会再弹出一次审批,这是设计好的;
  4. 支付永远由你本人完成:智能体明确"已提交,等付款",然后就停手。

规则里还有一条铁律:绝不输入密码、验证码或身份证号,遇到就直接把手机交还给你。

四、场景 2:微信自动回消息,发送前必确认

聊天 App 没有 API,所以读写消息全靠屏幕。内置技能phone-messages(nanomuse/skills/builtin/phone-messages/SKILL.md)定义了标准流程:

  1. 先读后回:即使你已说清要回什么,它也会先打开那段聊天读最后几条——最后一条消息决定语气;
  2. 按你的口吻起草:智能体调用记忆(recall)回想你的写作习惯,给你最多三个版本的草稿;
  3. 文字必须逐字确认:"回吧"不算授权,草稿被你确认后才会输入;
  4. 发送按钮前必审批:phone_task打开聊天、点输入框、输入你确认的文字,然后在「发送」按钮前停下——phone_act的label命中敏感词"发送",Sentinel 每次都会问你,且批准只算这一次,下一条消息还要再问。

技能同时划了禁区:不删消息、不撤回、不转发、不转红包,这些一律描述屏幕后由你亲自来做。

五、为什么放心用:哨兵的四道安全设计

这是 nanoMuse 双手和"无脑自动化工具"的根本区别(详见 docs/zh/gui.md):

  • 敏感词表:nanomuse/config.py 里的默认词表包含"确认支付""提交订单""转账""发送""删除"等。点击目标的label命中即升级为 SENSITIVE,永远逐次询问,任何长期授权都覆盖不了;词表刻意具体,点"支付宝"图标不会误判为付款。
  • hand_over 交接:密码、验证码、卡号、付款确认,智能体主动把手机交还给你(hand_over),你做完点"完成",它重新截图接着干。
  • 物理急停:任务运行时屏幕顶部有"胶囊"显示当前步骤,点一下停止按钮,进行中的动作立即失败,智能体停手并问你接下来做什么。
  • 全程留痕:每次phone_task写一份轨迹(每步的截图、想法、动作、延迟),用nanomuse phone traces列表、nanomuse phone trace <id> -o trace.html渲染成网页,每一步点击都画在它当时看到的那一屏上,可事后逐帧回看。

六、常见问题

Q:手机突然不响应了?先看「手机」卡片是不是显示"还没有"——无障碍服务被系统更新了或电池优化关掉了,重新打开即可。

Q:为什么"发送"每次都要我点确认?故意的。屏幕操作没有元素树背书,哨兵依据的是模型自报的label,所以付款/发送类动作不做信任累积——一次审批只算一次,宁可多问。

Q:Wayland / 老系统上电脑端双手能用吗?电脑侧双手(computer_act)支持 X11(xdotool)和 macOS/Windows(pyautogui、桌面版操作器),Wayland 会话下没有全局光标,会直接说明原因而不是假装工作,见 nanomuse/computer/hands.py。

Q:查个距离为什么要打开 12306?它不会。nanoMuse 有"能力阶梯":技能/API → 带登录态抓取 → 内置浏览器 → 手机屏幕。屏幕是最后一级,只有"只住在 App 里"的事(真实余票、一段微信聊天、一次付款)才轮到双手。

小结

nanoMuse 的双手让 AI 从"会说话"变成"会动手":

  • 三处设置:[gui] enabled = true+ 打开 Android 无障碍服务 + 一个能看图的手模型;
  • 两大场景:12306 查票下单(停在付款页)、微信读消息回消息(发送前必审批);
  • 四条底线:敏感词逐次询问、密码验证码交还人手、一键物理急停、全程轨迹可回放。

更多协议细节(设备消息格式、坐标空间、无障碍树)见 docs/gui.md,技能模板参考 nanomuse/skills/builtin/ 目录下的 11 个内置技能。

【免费下载链接】nanoMuse

nanoMuse: an open-source personal agent for every device you own. One agent with a name and a look of its own that does things, keeps working while the app is closed, remembers you, and asks before anything you cannot undo. On Android, iPhone and iPad, Windows / macOS / Linux and in the browser; your phone's screen and your computer as its hands.

项目地址:https://gitcode.com/gh_mirrors/na/nanoMuse
点击查看免费下载

相关推荐

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/16 7:24:49

复杂逻辑回归实现:从softmax多分类到多项式特征实战

做机器学习时间久了你会发现&#xff0c;逻辑回归这个算法&#xff0c;听起来是入门第一课&#xff0c;但真正把它用到复杂场景里&#xff0c;坑比想象中多得多。这次5-10节的主题"复杂逻辑回归实现"&#xff0c;讲的就是当基础逻辑回归解决不了问题时&#xff0c;我…

作者头像 李华
网站建设 2026/10/16 7:24:12

深入理解 kallsyms:内核符号表的原理、权限与调试实战

我第一次认真研究 kallsyms 内核符号表&#xff0c;不是在读内核源码的时候&#xff0c;而是在某个凌晨三点抓一个诡异崩溃现场的时候。设备打印出来的调用栈只有一串十六进制地址&#xff0c;函数名一个都没有&#xff0c;靠 System.map 对半天还对不齐&#xff0c;最后才想起…

作者头像 李华
网站建设 2026/10/16 7:23:39

WOA优化KELM参数:回归预测的智能调参实战

做回归预测最烦的一件事&#xff0c;就是大量时间花在“调参”上。核极限学习机&#xff08;KELM&#xff09;也一样&#xff0c;正则化系数C和核参数gamma定得好不好&#xff0c;直接决定模型是“欠拟合”还是“过拟合”。手动试参数试到怀疑人生&#xff0c;网格搜索又慢得让…

作者头像 李华
网站建设 2026/10/16 7:23:04

Notepad++排版实战:缩进、正则与插件的完整指南

1. 先搞明白&#xff1a;Notepad 排版到底在解决什么问题1.1 排版不等于美化提到 Notepad 排版&#xff0c;很多人第一反应是“不就是调一下自动换行、改改字号嘛”。这种理解不能说错&#xff0c;但太浅了。我最早也是这么想的&#xff0c;直到有次处理一份十几万行的配置文件…

作者头像 李华
网站建设 2026/10/16 7:22:12

边缘计算典型应用场景与项目落地避坑指南

这几年做项目&#xff0c;跟“边缘”这两个字打交道的频率越来越高。从最早只在工业自动化里听到这个概念&#xff0c;到现在连做门店数字化、做安防改造的客户都在问“能不能在设备端直接算&#xff0c;别什么都往云上送”。我自己的体会是&#xff0c;边缘计算早就不是停留在…

作者头像 李华
网站建设 2026/10/16 7:22:11

SciPy稀疏矩阵核心指南:格式选型、性能优化与实战应用

假设你手上有一张1000万行乘1000万列的关联矩阵&#xff0c;里面真正有数据的格子可能只有一百万上下。直接用普通数组存&#xff1f;光按float64算就是 800TB 内存&#xff0c;服务器当场罢工。换成 SciPy 稀疏矩阵&#xff0c;同一份数据通常只要几十 MB。夸张吗&#xff1f;…

作者头像 李华