跳到主要內容

ACP 編輯器集成

Hermes Agent 可以作為 ACP 服務器運行,使兼容 ACP 的編輯器能夠通過標準輸入/輸出(stdio)與 Hermes 通信,並渲染以下內容:

  • 聊天消息
  • 工具活動
  • 文件差異(file diffs)
  • 終端命令
  • 審批提示
  • 流式思維 / 響應片段

當您希望 Hermes 表現得像一個原生編輯器內的編程 Agent,而非獨立的 CLI 或消息機器人時,ACP 是一個理想選擇。

Hermes 在 ACP 模式下提供的功能

Hermes 以經過精心設計的 hermes-acp 工具集運行,專為編輯器工作流而優化。它包含:

  • 文件工具:read_filewrite_filepatchsearch_files
  • 終端工具:terminalprocess
  • 網絡/瀏覽器工具
  • 內存、待辦事項、會話搜索
  • 技能(skills)
  • execute_codedelegate_task
  • 視覺(vision)

它有意排除了不適合典型編輯器用戶體驗的功能,例如消息傳遞和定時任務管理。

安裝

正常安裝 Hermes,然後添加 ACP 附加組件:

pip install -e '.[acp]'

這將安裝 agent-client-protocol 依賴項,並啟用以下功能:

  • hermes acp
  • hermes-acp
  • python -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 文件。

參見