放弃云端 Computer Use,我用 Python 手搓了一个带“物理防呆”的本地 GUI Agent 底座

1 阅读4分钟

在体验了市面上的云端 Computer Use 后,我总觉得差点意思:延迟高(每步 3-5 秒)、按 Token 极度烧钱、大模型经常产生坐标幻觉瞎点,而且极度不安全。

为了打造一个真正能“安全接管电脑”的 AI,我爆肝了几个日夜,从零手搓了一个带本地视觉、多线程并发、军工级防呆的底层执行引擎:moray-ghost。

👇 先看一个震撼的实操:它用真实的物理鼠标,在 Windows 画图里一笔一划复刻出了《DeepSeek 鲸鱼娘》

image.png


💥 一、 我们如何打穿现有 Agent 框架的痛点?

现有的 GUI 框架大多停留在“截图 -> 发给大模型 -> 返回坐标 -> PyAutoGUI 点击”的原始阶段,在真实生产中完全不可用。moray-ghost 的解法是:

  1. 彻底消灭坐标幻觉(GUI RAG 检索增强)

    • 不再让大模型去干算坐标这种苦力活。底层先用 OCR + OpenCV 把屏幕上的控件全抓出来,生成带 ID 的 JSON 目录。
    • 模型只需要回答“点击 ID: 3”,底层再去映射真实坐标,精准度直接拉满。
  2. 快慢双系统(System 1 / System 2)

    • 遇到垃圾广告弹窗、软件更新提示,底层内置的微型反射脑毫秒级自动点掉。
    • 遇到复杂的业务逻辑,再挂起(degraded)交由大模型(如 MoRay 主仓)决策。
  3. 工业级物理绘图引擎

    • 内置 sketch_from_image 接口:传入一张图片路径,底层自动用 OpenCV 提取轮廓、K-Means 聚类配色,然后调用底层多段路径(subpaths)和真实鼠标轨迹,把画完美“印”在屏幕上。这次的鲸鱼娘就是这么画出来的。
  4. 真后台无感并发(虚拟通道)

    • 传统方案必须抢用户的鼠标。我们实现了底层虚拟消息通道(如 WM_CHAR),可以在后台静默向指定 hwnd 发送键盘输入,用户依然能自由使用物理鼠标,互不干扰。
  5. 军工级安全防线(Ghost Guard)

    • 能力白名单:Agent 必须携带合法的 Capabilities Token,且经过签名校验,否则连一个像素都点不了。
    • 物理级拦截:遇到 UAC 提权弹窗、系统锁屏、高危敏感词(如转账/删除),物理层直接拉闸,绝不盲点。

🛠️ 二、 核心架构拆解

image.png

  • 感知层:多模态大模型(本地 2B/7B) + GUI RAG + OCR。
  • 调度层:FastAPI + 细粒度窗口锁(支持多任务并发执行)。
  • 执行层:原生 Win32 API 注入 + Chaikin 轨迹平滑 + 底层 Fail-Safe 熔断。
  • 接入层:原生支持 MCP (Model Context Protocol) ,插上 Cursor 就能直接用!

🩸 三、 踩坑实录(全是血泪)

做底层 GUI 自动化,远远没有想象中那么简单:

  1. Win11 的 UWP 应用反人类:新版画图(WinUI)和计算器,根本不吃普通的鼠标消息,甚至对 ctypes 的模拟注入免疫。我们只能用底层真实鼠标事件硬刚。
  2. DPI 缩放的灾难:如果你的主屏是 100%,副屏是 150%,默认的 PyAutoGUI 坐标会直接飞掉。我们重写了基于物理像素的坐标系转换。
  3. OCR 冷启动与死锁:处理高分辨率屏幕时,第一帧的 OCR 经常因为模型加载导致阻塞。我们加了后台预热和硬性 Timeout 才彻底解决。
  4. 中文输入法吞键:在 Windows 注入中文,极容易被输入法拦截(返回 VK_PROCESSKEY)。我们最后切到了底层的 KEYEVENTF_UNICODE 才完美解决。

🧪 四、 离谱的测试覆盖率

为了避免 AI 把用户的电脑搞坏,我写了 500+ 项自动化测试用例。
包括但不限于:并发抢锁测试、显存泄漏压测、极端错误恢复测试、异常降级测试。

这已经不是一个玩具,而是一个随时可以上生产线的基建。


🚀 五、 如何体验?

项目完全开源,代码已放在 GitHub。只要你有 Python 环境:

bash

git clone https://github.com/aliangmo2026/moray-ghost.git
cd moray-ghost
.\start.ps1

启动后,你就可以在 Cursor 或自己的 Agent 代码里,通过 SDK 让它接管电脑了。

GitHub 链接:github.com/aliangmo202…

如果你也觉得未来的 Agent 必须有安全的双手,欢迎点个 Star ⭐️ 支持一下!有任何底层技术的疑问,我们评论区见!