45-ACP协议-编辑器集成与远程控制

📅 2026/8/2 23:12:20 👁️ 阅读次数 📝 编程学习
45-ACP协议-编辑器集成与远程控制

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的设计遵循三个原则:

  1. 语言无关:不管Agent是用Python、JavaScript还是Rust写的,都能通过ACP沟通
  2. 传输无关:ACP不绑定特定传输层协议——可以通过HTTP、WebSocket、Unix Socket甚至stdin/stdout通信
  3. 能力自描述:每个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

在配置文件中也可以预设: