pi-computer-use:AI 智能体操控桌面应用,不靠截图靠「读心」
原文链接:https://mp.weixin.qq.com/s/t7dTmiHAEIV5JDjUWth3ug
GitHub:injaneity/pi-computer-use — 1,602⭐ | Rust + Swift | MIT
AI 助手能写代码、跑测试,但遇到图形界面应用(Keynote、系统设置、Safari)就束手无策——因为这些应用没有命令行接口,只接受鼠标点击和键盘输入。
Anthropic 在 2024 年底提出 Computer Use 概念,让 Claude 通过截图 + 视觉模型来”看”屏幕并模拟操作。OpenAI 也在 2026 年为 Codex 加入类似功能。但这套方案有个根本问题:一张 1920×1080 截图包含约 200 万像素,而 AI 真正需要的信息——“按钮叫什么、在哪、什么状态”——只需几行结构化数据。
pi-computer-use 选择了一条完全不同的路。
核心理念:读操作系统的无障碍树
每个现代操作系统都为 GUI 维护了一棵结构化的「无障碍树」(Accessibility Tree)——每个节点代表一个 UI 元素(按钮、文本框、菜单、滑块),包含名称、角色、位置、状态。这棵树原本为屏幕阅读器设计,pi-computer-use 让它为 AI 所用。
与截图方案对比:
| 维度 | 截图方案 | 无障碍树方案 |
|---|---|---|
| 信息精度 | 视觉模型”猜”像素位置 | 直接获取精确坐标和状态 |
| 速度 | 截图→编码→传输→解码 | 直接读 JSON |
| 成本 | 大量图片 token | 结构化文本,上下文窗口高效利用 |
三步闭环:发现 → 观察 → 行动
- 发现(find_roots) — 扫描所有可用应用窗口,返回根节点列表
- 观察(observe) — 读取窗口的无障碍树,返回带
ref ID的 JSON 树,生成stateId防止状态过期 - 行动(act_ui) — 通过 ref ID 指定元素执行操作(点击、输入、滚动、拖拽),基于元素引用而非像素坐标
关键设计原则:状态作用域隔离 — 没有全局”当前界面”,所有状态绑定到具体根节点和 stateId,可同时操作多窗口。
跨平台架构
| 平台 | 语言 | 特点 |
|---|---|---|
| macOS | Swift 原生 Helper | 通过 Accessibility API 读取,v0.4.3+ 幽灵光标(透明指示器显示 AI 在点哪里) |
| Windows | Rust 桥接程序 | stdin/stdout JSON Lines v3 协议,需处于已解锁交互会话 |
| 浏览器 | CDP 可选通道 | v0.3.0+ 绕过无障碍树,直接通过 Chrome DevTools 操作 DOM |
快速上手
1 | pi install npm:@injaneity/pi-computer-use |
要求 Node.js >= 20.6.0,依赖 @earendil-works/pi-ai(Pi AI 框架)。
小结
pi-computer-use 用优雅的方式解决了 AI 桌面操控难题:不截屏,直接读操作系统的结构化数据层。更少的信息、更低的延迟、更高的精度。
本文转载自微信公众号,作者:雪狼。如有侵权请联系删除。
- 标题: pi-computer-use:AI 智能体操控桌面应用,不靠截图靠「读心」
- 作者: lxiol
- 创建于 : 2026-07-27 11:15:00
- 更新于 : 2026-07-27 09:18:17
- 链接: https://blog.lxiol.cn/2026/07/27/pi-computer-use-AI智能体无障碍树操控桌面应用-1602星/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。