
45 · ACP协议——编辑器集成与远程控制“我能在VS Code里直接调用Hermes吗?”“我想让Claude Code调用Hermes的工具能力,反过来Hermes也能调用Claude Code的代码能力,能不能做到?”这些问题的答案都指向同一个协议:ACP(Agent Communication Protocol)。它是Hermes从v0.17开始引入的一个关键能力,让不同的Agent和工具之间能够"说同一种语言"。这篇文章带你全面了解ACP协议,以及如何用它在编辑器、命令行、各种工具之间搭建自动化协作网络。一、ACP协议概念什么是ACP?ACP(Agent Communication Protocol)是Hermes Agent定义的一种标准化通信协议,专为Agent之间的互操作而设计。简单来说,它定义了:如何发现:一个Agent如何发现网络中其他Agent的存在如何请求:如何向另一个Agent发出任务请求如何响应:如何接收和解析其他Agent的响应结果如何协商:Agent之间如何协商能力和权限类比一下:如果说HTTP是"浏览器和服务器之间的语言",那么ACP就是"Agent和Agent之间的语言"。ACP的核心设计理念ACP的设计遵循三个原则:语言无关:不管Agent是用Python、JavaScript还是Rust写的,都能通过ACP沟通传输无关:ACP不绑定特定传输层协议——可以通过HTTP、WebSocket、Unix Socket甚至stdin/stdout通信能力自描述:每个Agent通过ACP发布自己的"能力清单",其他Agent自动知道它能做什么ACP与MCP的关系你之前可能听过MCP(Model Context Protocol),它用于模型和工具之间的通信。而ACP是Agent和Agent之间的通信协议。MCP:Model ↔ Tool(模型调用工具)ACP:Agent ↔ Agent(Agent之间协作)两者互补而非冲突。一个典型的场景是:Agent A通过ACP调用Agent B,而Agent B内部通过MCP调用各种工具完成子任务。二、配置ACP启动ACP服务从v0.17开始,Hermes内置了ACP服务端。启动方式很简单:hermes acp start默认会在localhost:8321上监听ACP连接。如果你需要自定义端口或绑定到非本地地址:hermes acp start--port8321--host0.0.0.0在配置文件中也可以预设: