跳到主要內容

計算機使用(macOS)

Hermes Agent 可以在後臺驅動你的 Mac 桌面——點擊、輸入、滾動、拖拽。你的光標不會移動,鍵盤焦點不會改變,macOS 也不會切換空間(Spaces)。你和代理可以在同一臺機器上協同工作。

與大多數計算機使用集成不同,此功能適用於任何具備工具調用能力的模型——Claude、GPT、Gemini,或本地 vLLM 端點上的開源模型。無需擔心 Anthropic 原生的 schema。

工作原理

computer_use 工具集通過 stdio 與 cua-driver 進行 MCP 通信,後者是一個 macOS 驅動程序,利用 SkyLight 私有 SPI(SLEventPostToPidSLPSPostEventRecordTo)和 _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:交互式啟用工具集。

  1. 運行 hermes tools,選擇 🖱️ Computer Use (macOS)cua-driver (background)
  2. 設置過程將運行上游安裝程序(與選項 1 相同)。

安裝完成後,無論你選擇哪種路徑:

  1. 在提示時授予 macOS 權限:
    • 系統設置 → 隱私與安全性 → 輔助功能 → 允許終端(或 Hermes 應用)。
    • 系統設置 → 隱私與安全性 → 屏幕錄製 → 允許相同的應用。
  2. 啟動啟用了該工具集的會話:
    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 的最新郵件,並總結他們希望我做什麼。

代理的計劃:

  1. computer_use(action="capture", mode="som", app="Mail") —— 獲取 Mail 的截圖,其中每個側邊欄項目、工具欄按鈕和消息行都已編號。
  2. computer_use(action="click", element=14) —— 點擊搜索字段(截圖中元素 #14)。
  3. computer_use(action="type", text="from:stripe")
  4. computer_use(action="key", keys="return", capture_after=True) —— 提交併獲取新截圖。
  5. 點擊頂部結果,閱讀正文,總結。

在此過程中,你的光標保持在原位,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 | bashsudo 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 模式列表。請將命令拆分或重新考慮該操作。

另見