計算機使用(macOS)
Hermes Agent 可以在後臺驅動你的 Mac 桌面——點擊、輸入、滾動、拖拽。你的光標不會移動,鍵盤焦點不會改變,macOS 也不會切換空間(Spaces)。你和代理可以在同一臺機器上協同工作。
與大多數計算機使用集成不同,此功能適用於任何具備工具調用能力的模型——Claude、GPT、Gemini,或本地 vLLM 端點上的開源模型。無需擔心 Anthropic 原生的 schema。
工作原理
computer_use 工具集通過 stdio 與 cua-driver 進行 MCP 通信,後者是一個 macOS 驅動程序,利用 SkyLight 私有 SPI(SLEventPostToPid、SLPSPostEventRecordTo)和 _AXObserverAddNotificationAndCheckRemote 輔助功能 SPI 來:
- 直接向目標進程發佈合成事件——無需 HID 事件 taps,無需光標扭曲。
- 在不提升窗口的情況下翻轉 AppKit 激活狀態——無需切換空間。
- 在窗口被遮擋時保持 Chromium/Electron 輔助功能樹活躍。
這種組合正是 OpenAI 的 Codex “後臺計算機使用”所採用的方案。cua-driver 是其開源等效實現。
啟用
選擇最方便的路徑——兩者都運行相同的上游安裝程序:
選項 1:專用 CLI 命令(最直接)。
hermes computer-use install
這將獲取並運行上游 cua-driver 安裝程序:
curl -fsSL https://raw.githubusercontent.com/trycua/cua/main/libs/cua-driver/scripts/install.sh。
使用 hermes computer-use status 驗證安裝。
選項 2:交互式啟用工具集。
- 運行
hermes tools,選擇🖱️ Computer Use (macOS)→cua-driver (background)。 - 設置過程將運行上游安裝程序(與選項 1 相同)。
安裝完成後,無論你選擇哪種路徑:
- 在提示時授予 macOS 權限:
- 系統設置 → 隱私與安全性 → 輔助功能 → 允許終端(或 Hermes 應用)。
- 系統設置 → 隱私與安全性 → 屏幕錄製 → 允許相同的應用。
- 啟動啟用了該工具集的會話:
或者在
hermes -t computer_use chat~/.hermes/config.yaml中將computer_use添加到已啟用的工具集中。
保持 cua-driver 最新
cua-driver 項目定期發佈修復(例如,v0.1.6 修復了 UTM 工作流中的 Safari 窗口焦點錯誤)。Hermes 在兩個地方刷新二進制文件,以確保你不會停留在過時的版本上:
hermes update—— 當你更新 Hermes 本身時,如果cua-driver在 PATH 中,上游安裝程序將在更新結束時重新運行。對於非 macOS 用戶和未安裝 cua-driver 的用戶,此操作無影響。hermes computer-use install --upgrade—— 手動強制刷新。無論是否已安裝 cua-driver,都會重新運行上游安裝程序。當你希望獲得最新修復而無需等待下一個代理更新時,請使用此命令。
hermes computer-use status 會在二進制路徑旁邊顯示已安裝的版本。
快速示例
用戶提示:“找到我來自 Stripe 的最新郵件,並總結他們希望我做什麼。”
代理的計劃:
computer_use(action="capture", mode="som", app="Mail")—— 獲取 Mail 的截圖,其中每個側邊欄項目、工具欄按鈕和消息行都已編號。computer_use(action="click", element=14)—— 點擊搜索字段(截圖中元素 #14)。computer_use(action="type", text="from:stripe")computer_use(action="key", keys="return", capture_after=True)—— 提交併獲取新截圖。- 點擊頂部結果,閱讀正文,總結。
在此過程中,你的光標保持在原位,Mail 永遠不會前置。
提供商兼容性
| 提供商 | 視覺支持? | 可用? | 備註 |
|---|---|---|---|
| Anthropic (Claude Sonnet/Opus 3+) | ✅ | ✅ | 整體最佳;支持 SOM + 原始座標。 |
| OpenRouter (任何視覺模型) | ✅ | ✅ | 支持多部分工具消息。 |
| OpenAI (GPT-4+, GPT-5) | ✅ | ✅ | 同上。 |
| 本地 vLLM / LM Studio (視覺模型) | ✅ | ✅ | 如果模型支持多部分工具內容。 |
| 純文本模型 | ❌ | ✅ (降級) | 使用 mode="ax" 進行僅輔助功能樹操作。 |
截圖作為 OpenAI 風格的 image_url 部分隨工具結果內聯發送。對於 Anthropic,適配器將其轉換為原生的 tool_result 圖像塊。
安全性
Hermes 應用多層防護:
- 破壞性操作(點擊、輸入、拖拽、滾動、按鍵、聚焦應用)需要批准——要麼通過 CLI 對話框交互式批准,要麼通過消息平臺的批准按鈕。
- 在工具級別硬阻塞的組合鍵:清空廢紙簍、強制刪除、鎖定屏幕、註銷、強制註銷。
- 硬阻塞的輸入模式:
curl | bash、sudo rm -rf /、fork bombs 等。 - 代理的系統提示明確告知:不點擊權限對話框,不輸入密碼,不遵循嵌入在截圖中的指令。
如果你希望確認每個操作,請在 ~/.hermes/config.yaml 中配合使用 approvals.mode: manual。
Token 效率
截圖開銷很大。Hermes 應用四層優化:
- 截圖驅逐 — Anthropic 適配器在上下文中僅保留最近的 3 張截圖;較舊的截圖會被替換為
[screenshot removed to save context]佔位符。 - 客戶端壓縮修剪 — 上下文壓縮器會檢測多模態工具結果,並從舊結果中剝離圖像部分。
- 圖像感知令牌估算 — 每張圖像按約 1500 個令牌計算(Anthropic 的固定費率),而非按其 base64 字符長度計算。
- 服務端上下文編輯(僅限 Anthropic) — 啟用時,適配器通過
context_management啟用clear_tool_uses_20250919,以便 Anthropic 的 API 在服務端清除舊的工具結果。
在 1568×900 分辨率的顯示器上,一次包含 20 個操作的會話通常消耗約 30K 令牌的截圖上下文,而非約 600K。
限制
- 僅限 macOS。 cua-driver 使用了 Linux 或 Windows 上不存在的 Apple 私有 SPI。對於跨平臺 GUI 自動化,請使用
browser工具集。 - 私有 SPI 風險。 Apple 可能在任何操作系統更新中更改 SkyLight 的符號表面。如果希望在 macOS 版本升級後保持可復現性,請使用
HERMES_CUA_DRIVER_VERSION環境變量鎖定驅動程序版本。 - 性能。 後臺模式比前臺模式慢 — SkyLight 路由的事件耗時約 5-20 毫秒,而直接 HID posting 更快。對於代理速度的點擊操作而言差異不明顯;但如果嘗試錄製速通視頻,則會察覺到此差異。
- 不支持鍵盤輸入密碼。
type對命令 shell 負載有硬阻塞模式;對於密碼輸入,請使用系統的自動填充功能。
配置
覆蓋驅動程序二進制路徑(測試 / CI):
HERMES_CUA_DRIVER_CMD=/opt/homebrew/bin/cua-driver
HERMES_CUA_DRIVER_VERSION=0.5.0 # optional pin
完全交換後端(用於測試):
HERMES_COMPUTER_USE_BACKEND=noop # records calls, no side effects
故障排除
computer_use backend unavailable: cua-driver is not installed — 運行 hermes computer-use install 獲取 cua-driver 二進制文件,或運行 hermes tools 並啟用 Computer Use 工具集。
點擊似乎無效 — 捕獲並驗證。可能存在你未察覺的模式對話框阻塞了輸入。使用 escape 鍵或關閉按鈕將其dismiss。
元素索引過時 — SOM 索引僅在下次 capture 之前有效。在任何改變狀態的操作之後重新捕獲。
"blocked pattern in type text" — 你嘗試 type 的文本匹配危險 shell 模式列表。請將命令拆分或重新考慮該操作。
另見
- 通用技能:
macos-computer-use - cua-driver 源碼 (trycua/cua)
- 瀏覽器自動化 用於跨平臺 Web 任務。