Skip to content

ACP 协议

源码版本v2026.7.20

职责

ACP(Agent Client Protocol)是编辑器/IDE 与 agent 通信的标准协议。acp_adapter/ 把 Hermes 暴露为 ACP server,让支持 ACP 的客户端(Zed、VS Code 扩展等)能直接驱动 Hermes:管理会话、读写资源(文件/图片)、审批编辑、追溯来源(provenance)、按权限隔离工具。这让 Hermes 不止于消息平台,也能嵌入开发工作流。

关键文件

数据流

  1. ACP 客户端(编辑器)按 acp_registry/agent.json 发现并启动 Hermes ACP server(acp_adapter/__main__.py)。
  2. 客户端发起会话 → SessionManager:175 创建 SessionState,对齐 cwd(acp_adapter/session.py:29)、展开 toolsets(acp_adapter/session.py:129)。
  3. 客户端发消息/资源 → 资源转换:201 把 ACP resource(文件/图片,受 acp_adapter/server.py:96 大小限制)转成 OpenAI content parts,喂给 run_conversation:588
  4. agent 想改文件时,工具调用经 build_edit_proposal:178 变成 EditProposal,经审批请求器(acp_adapter/edit_approval.py:51)弹给用户确认。
  5. 工具执行受 acp_adapter/permissions.py 权限管控;每次操作经 acp_adapter/provenance.py:22 记 provenance。
  6. 流式输出与事件(acp_adapter/events.py)回传客户端。

小结

ACP 让 Hermes 嵌入编辑器工作流:会话管理、资源读写、编辑审批、权限隔离、来源追溯。核心是 server.py(协议适配)+ session.py(会话)+ edit_approval.py(人审编辑)。和网关层互补——网关接消息平台,ACP 接 IDE。

非官方社区学习站,内容以 MIT 许可的 NousResearch/hermes-agent 源码为依据。