Vercel Labs 开源 agent-desktop,让智能体通过系统无障碍树操作桌面应用
Vercel Labs Open-Sources agent-desktop for Agent Computer Use
Vercel Labs 发布开源 CLI 工具 agent-desktop,让 AI 智能体在 macOS、Windows 和 Linux 上通过操作系统无障碍树读取并操作原生应用,而非依赖截图。
原文对比了基于无障碍树的 agent-desktop 与截图式 computer use 在 token 消耗和光标占用上的差异,并给出自报数据。
Vercel Labs 发布了 agent-desktop,一个用于 macOS、Windows 和 Linux 平台上 AI 代理计算机使用的开源 CLI。agent-desktop 通过操作系统的可访问性树读取每个应用程序,而不是通过截图。代理会得到一个包含每个可操作元素的引用的 JSON 快照。版本 1.0.2 于 2026 年 10 月 30 日发布,遵循 Apache-2.0 许可证。对于开发者来说,任何支持 shell 的编码代理现在都可以在没有视觉模型的情况下驱动原生应用程序。
简而言之
- 库: Rust CLI 和一个 C 库。 60 个命令名称,56 个可操作。
- 运行于: macOS 13+、Windows 10 1809+ 或 Server 2019+、Ubuntu 24.04+,在 x64 和 ARM64 上。纯 CPU,无需 GPU。
- 性能: 确定性、重试安全的引用操作。目前还没有独立的计算机使用基准测试。
- 最佳: 通过骨架遍历密集的 Electron 应用程序,减少 78% 到 96% 的 token(自我报告)。
agent-desktop 是什么?
agent-desktop 是 Vercel Labs 开发的 Rust CLI 和 C 库,用于读取和操作桌面应用程序。它 是一个被代理调用的工具,而不是代理本身。它不嵌入 LLM,也没有 GUI。每个命令打印一个 JSON 封装并退出。观察、操作和验证循环仍然在你的代理中。
agent-desktop 如何工作?
每个命令都通过一个固定的链路流动。 CLI 或 C 库 调用 agent-desktop-core,它仅通过 PlatformAdapter 特性到达操作系统。 一个平台库然后与原生可访问性 API 通信:
- macOS: AX API
- Windows: UI Automation
- Linux: AT-SPI
核心从不导入平台库。每个二进制文件都是编译的,用于驱动一个特定的操作系统。
快照和引用
快照分配合格的引用,如 @s8f3k2p9:e8。引用中的快照 ID 使其自我描述。一个裸的 @e8 被 用 INVALID_ARGS 拒绝。当 UI 发生变化时,操作返回 STALE_REF 或 AMBIGUOUS_TARGET。代理然后获取一个新的快照。
每个错误都带有 disposition。代理应该 仅在它表示 safe 时才重试。引用解析是 严格且失败关闭,而不是猜测。
骨架和深入挖掘
密集的应用程序可以暴露数千个可访问性节点。一个 --skeleton 快照 仅读取 3 层深。切割容器报告一个 children_count 并获得一个深入挖掘引用。snapshot --root 然后读取一个区域到同一个快照中。
构建者报告说,在 Slack、VS Code 和 Notion 中,与完整树转储相比,token 减少了 78% 到 96%。在 Apple Maps 中,他报告说 每次查看的 3,811 个 token 减少到 273。一个模拟的 52 步任务从 198k 减少到 31k token。这些是自我报告的数字,不是独立的基准测试。
默认无头模式
引用操作通过可访问性 API 在不移动指针或获取焦点的情况下进行。这就是让代理在您继续使用机器时也能工作的原因。全局 --headed 标志允许在需要时进行物理输入。每个引用操作还 自动等待最多 5,000 毫秒,以等待一个可见、启用、稳定的靶标。
与基于像素的计算机使用相比如何?
模型端计算机使用工具通过截图和像素坐标工作。Anthropic 的文档说明每个截图大约需要 1000 到 1800 个输入 token。其工具集定义每个请求大约增加 4500 个输入 token。OpenAI 的工具同样返回 点击、输入和滚动操作 你的代码执行。
agent-desktop 是模型无关的,返回结构而不是图像。微软的 UFO² 也使用 UI Automation,但作为完整的 Windows 代理提供。
| 功能 | agent-desktop (Vercel Labs) | Claude 计算机使用 | OpenAI 计算机使用 | Microsoft UFO² |
|---|---|---|---|---|
| 类型 | CLI + C 库工具 | API 客户端工具集 | API 工具 | 完整代理框架 |
| 它如何查看 UI | 操作系统可访问性树 | 截图 | 截图或代码 (PyAutoGUI, Playwright) | UIA + 视觉混合 |
| 捆绑模型 | 无,任何代理 | Claude 模型 | OpenAI 模型 | 可配置 LLM |
| 平台 | macOS、Windows、Linux | 任何你托管的环境 (参考: Linux Docker) | 你托管的浏览器或桌面 | Windows (UFO²) |
| 移动你的光标 | 否,默认无头 | 是,像素点击 | 是,像素点击 | GUI + API 操作 |
| 每次查看的 token 成本 | 273 (Apple Maps 骨架,自我报告) | ~1000 到 1800 每个截图 | 未披露 | 未披露 |
| 许可证 | Apache-2.0 | 专有 API | 专有 API | MIT |
| 价格 | 免费 | 标准 token 定价 | 标准 token 定价 | 免费 (加上 LLM 成本) |
如何安装和使用 agent-desktop?
使用 npm install -g agent-desktop 安装。Bun、Yarn 和 pnpm 也适用。软件包捆绑了适用于 x64 和 ARM64 的原生二进制文件。
- macOS: 使用
agent-desktop permissions --guide授予可访问性权限。 - Windows: 你的终端完整性级别的应用程序不需要授予权限。
- Linux: 需要一个图形会话并使用
at-spi2-core。
代理通过 agent-desktop skills get desktop 从捆绑文档中学习工具。一个 技能也在 skills.sh 上列出。C 库允许 Python、Swift、Go、Ruby 和 Node 托管进程内调用它。对于 Electron 网页内容,launch --cdp 为 agent-browser 打开一个 DevTools 端口。
关键要点
- agent-desktop 通过操作系统可访问性树为任何代理提供计算机使用。
- 它在 macOS、Windows 和 Linux 上运行,x64 和 ARM64,遵循 Apache-2.0 许可证。
- 无头引用操作永远不会移动你的指针或窃取焦点。
- 骨架截图节省 78% 到 96% 的 token (自我报告)。
- 没有可访问性树的程序仍然无法访问。
查看 GitHub 仓库、文档 和 npm 软件包。此外,欢迎关注我们在 Twitter 上的动态,别忘了加入我们的 15 万+ML SubReddit 并订阅我们的 简报。等等!你使用 Telegram 吗?现在你也可以加入我们的 Telegram。
需要与我们合作推广你的 GitHub 仓库 OR Hugging Face 页面 OR 产品发布 OR 网络研讨会等?联系我们
文章 Vercel Labs 开源 agent-desktop 用于代理计算机使用 首次出现在 MarkTechPost。
来源: MarkTechPost · marktechpost.com