CUA(Computer Use Agent)= 让 AI 用”看屏幕 + 合成鼠标键盘”操作无 API 的图形界面。出自微信小游戏代玩 5 轮实战(Windows + Linux 双平台),工程纪律比技巧重要。
核心循环:观—动—验
每一步都是”截图 → 目测定位坐标 → 点击 → 再截图验证结果”。跳过验证是失控的开始。
三条坐标铁律
- 裁剪截图内的坐标必须加回窗口原点才是屏幕坐标(两次踩坑的教训);
- 每轮操作前重新截屏定位——窗口尺寸/位置每个会话都会变,昨天的坐标今天不可信;
- 按钮命中偏移要小步校准:实测”领取”类按钮的真实命中区比目测低 22–25px,先点一次验证再批量操作。
点击技巧
- 普通按钮:定位 → 单击 → 截图验证;
- 忽略快点的按钮用”慢速点击”:hover 停留 ~0.4s + 按压 ~0.25s(sclick),模拟人手;
- 拖拽分 12 步插值移动,不要瞬移——游戏引擎/UI 框架会丢瞬移事件。
运维红线
- 绝不能强杀微信进程:自动登录态失效后需要手机扫码确认,AI 无法代登,整条流水线死锁。重启 = 人工介入。
- 窗口移动后 Chromium 内嵌页的命中区会错位,移动后必须重新校准。
双平台实现要点
Windows(cua.ps1):Win32 API——EnumWindows 找窗、SetProcessDPIAware 防 DPI 缩放、CopyFromScreen 截屏、SetCursorPos/mouse_event 合成点击、SendKeys/剪贴板输入。中文窗口标题用 char code 拼接避免编码问题。
Linux(cua.py,197 行):python-xlib + XTEST 合成事件,root.get_image 截屏。
- 找窗要递归 query_tree:顶层是 WM 框架窗口(无标题),目标窗口在下层;
- 窗口标题兼容
_NET_WM_NAME(UTF-8)与get_wm_name; - 微信小程序窗口特征:Chromium 内嵌(class 含 wechat/WeChatAppEx)、常无标题——按面积排序 + 多特征匹配定位;
- 无 root 装依赖:
pip install --user --break-system-packages(PEP 668)+ 清华镜像。
适用边界
CUA 是最后手段:有 API/协议可用时永远优先 API(对比 AI浏览器回归测试Passmark实测 走的浏览器 DevTools 通道,CUA 是纯像素层)。适合:无 API 的网页内嵌应用、小游戏、老旧桌面软件。
移动端:Mobile MCP(#790 增补,2026-09-25)
手机侧的对应物是开源项目 mobile-next/mobile-mcp(近 7K star):Agent 经 MCP 操作安卓/iOS 真机与模拟器,读取屏幕、点击、滑动、输入文字。可接入 Claude Code/Codex 等 MCP 客户端;独立开发者用它做改版后的页面自检(按钮位置/页面跳转),替代人工回归。
- 双通道策略与本页纪律同构:优先读系统无障碍信息(a11y 树给 AI 提供文字/按钮/输入框及位置——相当于移动端的 DOM 通道),信息不完整或控件难识别时才截图交给视觉模型按坐标操作——“结构化优先、视觉兜底”与浏览器侧 Accessibility vs Vision 的混用原则一致(见 AI浏览器自动化框架对比);
- 接入要点:Node.js 22+;安卓装 Platform-Tools 配
ANDROID_HOME,真机开开发者选项+USB 调试,adb devices确认状态为 device(unauthorized 看手机授权提示);iOS 模拟器走 Xcode +xcrun simctl list devices booted,iPhone 真机需额外自动化环境配置(以当前官方文档为准); - Claude Code 一条命令接入:
claude mcp add mobile-mcp -- npx -y @mobilenext/mobile-mcp@latest;多设备时在指令中写明设备名/编号; - 验证顺序:先让 AI 列设备 → 列当前屏元素+截图 → 再放开操作。
Mobile MCP 动态(#813,2026-10-25)
- star 已近 8,800(上轮 7K),十天连发 5 版,迭代活跃;
- 赛道背景:OpenAI dots 大更新——手机 ChatGPT 可建 dot、给 Codex 派活(用的是自家云电脑+浏览器+4000 多应用连接器),但手机原生 App 仍要人手点——Mobile MCP 补的正是这块;Grok Bot 配专属邮箱可注册服务收验证码;个人 Agent 赛道各家抢的是”随时随地把活交出去”(对照 MetaMuse个人Agent实测);
- 能力扩展:除点击/滑动/输入外还能安装、打开、关闭 App;真机与模拟器同一套工具。
原始素材
- 疯狂水世界-代玩经验总结
- #813 Mobile MCP 动态与 dots
- Mobile MCP(逛逛 GitHub)
相关页面
- 微信小游戏AI代玩实战复盘(本纪律的来源战役)
- AI浏览器回归测试Passmark实测