ACP 編輯器集成
Hermes Agent 可以作為 ACP 服務器運行,使兼容 ACP 的編輯器能夠通過標準輸入/輸出(stdio)與 Hermes 通信,並渲染以下內容:
- 聊天消息
- 工具活動
- 文件差異(file diffs)
- 終端命令
- 審批提示
- 流式思維 / 響應片段
當您希望 Hermes 表現得像一個原生編輯器內的編程 Agent,而非獨立的 CLI 或消息機器人時,ACP 是一個理想選擇。
Hermes 在 ACP 模式下提供的功能
Hermes 以經過精心設計的 hermes-acp 工具集運行,專為編輯器工作流而優化。它包含:
- 文件工具:
read_file、write_file、patch、search_files - 終端工具:
terminal、process - 網絡/瀏覽器工具
- 內存、待辦事項、會話搜索
- 技能(skills)
execute_code和delegate_task- 視覺(vision)
它有意排除了不適合典型編輯器用戶體驗的功能,例如消息傳遞和定時任務管理。
安裝
正常安裝 Hermes,然後添加 ACP 附加組件:
pip install -e '.[acp]'
這將安裝 agent-client-protocol 依賴項,並啟用以下功能:
hermes acphermes-acppython -m acp_adapter
啟動 ACP 服務器
以下任意一種方式均可啟動 Hermes 的 ACP 模式:
hermes acp
hermes-acp
python -m acp_adapter
Hermes 將日誌輸出到 stderr,因此 stdout 保留用於 ACP JSON-RPC 通信。
編輯器設置
VS Code
安裝一個 ACP 客戶端擴展,然後將其指向倉庫的 acp_registry/ 目錄。
示例設置片段:
{
"acpClient.agents": [
{
"name": "hermes-agent",
"registryDir": "/path/to/hermes-agent/acp_registry"
}
]
}
Zed
示例設置片段:
{
"agent_servers": {
"hermes-agent": {
"type": "custom",
"command": "hermes",
"args": ["acp"],
},
},
}
JetBrains
使用一個兼容 ACP 的插件,並將其指向:
/path/to/hermes-agent/acp_registry
註冊表清單
ACP 註冊表清單位於:
acp_registry/agent.json
它聲明瞭一個基於命令的 Agent,其啟動命令為:
hermes acp
配置與憑據
ACP 模式使用與 CLI 相同的 Hermes 配置:
~/.hermes/.env~/.hermes/config.yaml~/.hermes/skills/~/.hermes/state.db
提供者解析使用 Hermes 的正常運行時解析器,因此 ACP 繼承當前配置的提供者和憑據。
會話行為
ACP 會話由 ACP 適配器的內存會話管理器在服務器運行期間進行跟蹤。
每個會話存儲:
- 會話 ID
- 工作目錄
- 選定的模型
- 當前對話歷史
- 取消事件
底層的 AIAgent 仍使用 Hermes 的正常持久化/日誌路徑,但 ACP 的 list/load/resume/fork 操作作用於當前運行的 ACP 服務器進程範圍內。
工作目錄行為
ACP 會話將編輯器的當前工作目錄(cwd)綁定到 Hermes 的任務 ID,因此文件和終端工具將以編輯器工作區為基準運行,而非服務器進程的當前工作目錄。
審批機制
危險的終端命令可以被路由回編輯器作為審批提示。ACP 的審批選項比 CLI 流程更簡單:
- 僅允許一次
- 始終允許
- 拒絕
在超時或出錯時,審批橋接將拒絕請求。
故障排除
編輯器中未顯示 ACP Agent
請檢查:
- 編輯器是否指向正確的
acp_registry/路徑 - Hermes 是否已安裝且在您的 PATH 中
- 是否已安裝 ACP 附加組件(
pip install -e '.[acp]')
ACP 啟動後立即報錯
請嘗試以下檢查:
hermes doctor
hermes status
hermes acp
憑據缺失
ACP 模式沒有獨立的登錄流程。它使用 Hermes 已有的提供者設置。通過以下方式配置憑據:
hermes model
或通過編輯 ~/.hermes/.env 文件。