pi-computer-use:AI 智能体操控桌面应用,不靠截图靠「读心」

lxiol
📝
pi-computer-use 用操作系统无障碍树替代截图方案,让 AI 直接读取 UI 元素的 JSON 结构化数据来操控桌面应用。比 Anthropic Computer Use 的截图+视觉模型方案更精准、更快、更省 token。macOS Swift + Windows Rust,1602⭐。

原文链接: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 结构化文本,上下文窗口高效利用

三步闭环:发现 → 观察 → 行动

  1. 发现(find_roots) — 扫描所有可用应用窗口,返回根节点列表
  2. 观察(observe) — 读取窗口的无障碍树,返回带 ref ID 的 JSON 树,生成 stateId 防止状态过期
  3. 行动(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 进行许可。
目录
pi-computer-use:AI 智能体操控桌面应用,不靠截图靠「读心」