内容
<div align="center">
<img src="resources/AccioCULogo.png" alt="Accio Computer Use logo" width="260">
# Accio Computer Use
**混合使用计算机,为 AI 代理提供服务。**
图形用户界面操作、命令行界面、API 和文件 — 在一个 Python 代码块中组合使用。
[](LICENSE)
[](VERSION)
[快速开始](#快速开始) · [安全](#安全) · [结果](#macosworld-结果) · [引用](#引用) · [贡献](CONTRIBUTING.md)
</div>
---
Accio 将 macOS 交互功能引入到普通的 Python 中,因此代理可以在需要时使用图形用户界面,并将其与 shell 命令、应用程序命令行界面、API 和文件在同一任务中组合使用。
- **默认混合使用。** 桌面操作和普通代码共享一个执行块,包括导入、条件、循环、解析和本地工具。
- **减少模型往返次数。** 一个代码块可以完成依赖步骤,根据返回状态分支,并本地恢复,而不是要求模型单独规划每个点击操作。
- **可观察和可验证。** 图形用户界面操作返回刷新后的可访问性状态和截图工件;输入的 Python 签名在桌面操作执行前捕获无效调用。
- **成功后可重用。** 为一个任务编写的代码可以保留为函数或工作流,而不是保持为非结构化的操作跟踪。
## 快速开始
Accio 目前支持 macOS 14 或更高版本。您需要 Swift 6、Python 3.10 或更高版本、可访问性权限和屏幕录制权限。
版本 0.0.1 是一个仅源代码发布版本。您需要使用以下脚本在本地构建和安装;该项目目前不分发预构建的、经过认证的应用程序。
### 1. 安装
从仓库根目录运行:
```bash
git clone https://github.com/Accio-Work-Lab/accio-cu.git
cd accio-cu
./scripts/install-macos.sh --verify --install-skill
```
这安装了应用程序捆绑的 `accio-computer-use` 命令、其 Python 运行时和用于 Codex 的 Accio 技能。要安装用于 Claude Code 的技能:
```bash
./scripts/install-macos.sh --install-skill claude
```
安装程序默认使用临时签名。重新构建的临时应用程序可能会有新的 macOS 权限标识,并需要重新授予可访问性和屏幕录制权限。要在构建之间保留 TCC 标识,请使用相同的证书安装每个构建:
```bash
ACCIO_CODESIGN_IDENTITY="Developer ID Application: Example (TEAMID)" \
./scripts/install-macos.sh --verify --install-skill
```
要删除应用程序、守护进程、CLI 链接和 Accio 的作用域 TCC 授予:
```bash
./scripts/install-macos.sh --uninstall
```
### 2. 授予权限
```bash
accio-computer-use setup
```
在系统设置 → 隐私和安全中为 **Accio Computer Use** 启用 **可访问性** 和 **屏幕录制**。
### 3. 启动守护进程
```bash
./scripts/install-daemon.sh install
./scripts/install-daemon.sh status
```
重启您的代理,然后给它一个桌面任务:
```text
打开 Finder,创建一个名为 Research Notes 的文件夹,在 Documents 中,
将三个 PDF 文件移动到其中,并验证最终的文件夹内容。
```
已安装的技能处理观察、交互和最终验证。
## 一个代码块,多个工具
将 Python 输入到 `accio-computer-use`;桌面功能已经加载:
```bash
accio-computer-use <<'PY'
from pathlib import Path
def create_note(source_file):
body = Path(source_file).expanduser().read_text()
click(app="Notes", element_text="New Note")
type_text(app="Notes", text=body)
final = get_app_state(app="Notes")
return {
"saved": body[:40] in final.text,
"screenshots": final.screenshot_paths,
}
emit(create_note("~/Documents/research-notes.md"))
PY
```
此代码块读取文件,应用 Python 逻辑,并操作原生应用程序。相同的代码块可以调用应用程序命令行界面或 API,然后使用图形用户界面。模型可以在解决任务时编写它,然后保留代码以便下次运行。
对于执行限制或自定义守护进程套接字,请使用显式的 `code` 子命令:
```bash
accio-computer-use code --timeout 60 --max-calls 30 < workflow.py
```
## MCP
相同的编码运行时作为一个名为 `execute` 的 MCP 工具:
```json
{
"mcpServers": {
"accio-computer-use": {
"command": "accio-computer-use",
"args": ["code", "mcp", "--timeout", "60", "--max-calls", "30"]
}
}
}
```
该工具接受 Python 程序并返回其输出、桌面调用和截图工件。限制在 MCP 服务器启动时固定。
此混合 MCP 使用 `code mcp` 启动。单独的 `accio-computer-use mcp` 命令是较低级别的接口,它公开单个桌面操作而不是单个 `execute` 工具。
编码 MCP 有意选择加入。它执行正常的 Python 操作,并具有当前用户的权限,因此仅限于受信任的客户端和代码。
## MacOSWorld 结果
已完成的运行和计划的比较:
| 代理 | 计算机使用接口 | 模型 | 状态 | 成功率 | Token | 时间 |
| --- | --- | --- | --- | ---: | ---: | ---: |
| Accio | 旧 Accio CLI | GPT-5.4 | 完成 | 58.42% (118/202) | 144.64M | 11h 52m |
| **Accio** | **Accio 混合(Python 代码块)** | **GPT-5.5** | **完成** | **64.85% (131/202)** | **82.16M** | **5h 31m** |
| Codex | Codex 计算机使用 | GPT-5.5 | 完成 | 62.38% (126/202) | — | 9h 55m |
| Codex | Accio 混合 | 待定 | 计划 | — | — | — |
| Claude Code | Accio 混合 | 待定 | 计划 | — | — | — |
| Gemini CLI | Accio 混合 | 待定 | 计划 | — | — | — |
| 受控消融 | Accio CLI ↔ Accio 混合 | 相同模型 | 计划 | — | — | — |
在所有 202 个非安全 [MacOSWorld](https://github.com/showlab/macosworld) 任务中,Accio 混合比旧运行提高了 **6.43 个百分点**,记录的 Token 减少了 **43.2%**,记录的时间减少了 **53.5%**。只有 100 分才算成功;由于运行使用了不同的模型版本,这是一个端到端的比较,而不是受控的消融实验。
## 当前限制
- 仅限 macOS 14 或更高版本
- 需要可访问性和屏幕录制权限
- 在输入回退期间,某些 Electron 和非原生应用程序可能会短暂成为最前面的窗口
- 某些后台输入路由使用私有 SkyLight API,可能需要在 macOS 更改后更新
- 编码模式使用调用者的文件系统、环境、网络和用户会话访问运行正常的 Python;它不是一个沙箱
对于不受信任的代理和大型推广工作负载,请使用隔离的 VM 或专用的 macOS 会话。
## 安全
Accio 是一个本地的、高权限的自动化工具:
- 守护进程套接字使用当前 macOS 用户作为其信任边界;
- 截图、可访问性状态、日志和跟踪可能包含私人数据;
- 编码模式是无沙箱的,可以访问当前用户的 文件、环境、网络和进程;
- SkyLight 集成使用不受支持的 Apple 私有 API,不适用于 Mac App Store 分发。
请勿将守护进程或 MCP 传输暴露于网络。使用专用 macOS 帐户或 VM 进行不受信任的代理。有关报告和部署指导,请参见 [SECURITY.md](SECURITY.md)。
## 开发
```bash
swift build
swift test
swift build -c release --product AccioComputerUse
python3 -m unittest discover -s coding/tests -p 'test_*.py'
bash -n scripts/install-macos.sh
bash -n scripts/install-daemon.sh
```
有关贡献和平台测试要求,请参见 [CONTRIBUTING.md](CONTRIBUTING.md)。
## 作者
Tianyuan Yang<sup>\*</sup>,Yu Gu<sup>\*</sup>,Lanbo Lin,Yuanwu Xu,Li Cai,
和 Sicong Xie
<sup>\*</sup> 共同贡献。
## 引用
如果您在工作中使用了 Accio Computer Use,请引用此仓库:
```bibtex
@misc{Yang2026Accio,
author={Tianyuan Yang and Yu Gu and Lanbo Lin and Yuanwu Xu and Li Cai and Sicong Xie},
title={Accio Computer Use},
note={GitHub repository},
howpublished={\url{https://github.com/Accio-Work-Lab/accio-cu}},
year={2026}
}
```
## 许可证
Accio Computer Use 遵循
[Apache License 2.0](LICENSE)。属性信息在 [NOTICE](NOTICE) 中。