第 11 讲:ACP 协议与子代理委托——编辑器集成、Agent-to-Agent 通信与任务分发

Hermes Agent 源码解析 · 第 11 讲

Hermes Agent 源码解析 第 11 讲:ACP 协议与子代理委托——编辑器集成、Agent-to-Agent 通信与任务分发 基于 Hermes Agent v0.16.0 源码 · 2026-06-24 一、ACP:让 Agent 成为编辑器的"一等公民" 前十讲我们覆盖了 Hermes 从核心架构到多模态处理的全链路。这一讲我们进入 Hermes 的 ACP(Agent Communication Protocol)适配器 与 子代理委托系统 ——两个让 Hermes 从"独立终端工具"进化为"可嵌入编辑器的智能编程伙伴"的关键能力。 ACP 是 Anthropic 提出的 Agent Client Protocol,定义了编辑器与 Agent 之间的标准化通信接口。Hermes 通过 ACP 适配器实现了与 Zed、VS Code、JetBrains 等编辑器的无缝集成。而子代理委托系统则让 Hermes 能够自主拆分复杂任务,将子任务分发给独立的子代理实例并行处理。 📦 本讲核心文件 acp_adapter/server.py (2059 行)— ACP Agent 服务器主模块 acp_adapter/session.py (623 行)— ACP 会话管理器 acp_adapter/events.py (279 行)— AIAgent 事件到 ACP 通知的桥接 acp_adapter/tools.py (1291 行)— 工具调用映射与 ACP 内容构建 acp_adapter/permissions.py (168 行)— 权限审批桥接 acp_adapter/auth.py (79 行)— ACP 认证方法检测 acp_adapter/provenance.py (127 行)— 会话溯源元数据 acp_adapter/entry.py (266 行)— ACP 入口点 agent/copilot_acp_client.py (686 行)— Copilot ACP 客户端 tools/delegate_tool.py (2956 行)— 子代理委托引擎 acp_registry/agent.json — ACP 注册表声明 二、ACP 协议概览:编辑器和 Agent 之间的"USB-C" ACP(Agent Client Protocol)由 Anthropic 提出,是一个标准化的 Agent-客户端通信协议 。它的核心思想类似于 MCP(Model Context Protocol),但面向的是 编辑器 ↔ Agent 这个场景,而非 Agent ↔ 外部工具。 有了 ACP,编辑器不需要为每个 Agent 写定制集成——只要实现 ACP 客户端,就能对接任何 ACP Agent。Hermes 通过 acp_adapter/ 模块实现了完整的 ACP Agent 服务端。 ACP 协议的核心交互流程: +----------------+ JSON-RPC +------------------+ | Editor Client | | Hermes ACP | | (Zed/VSCode) | | Agent Server | +----------------+ +------------------+ | | | initialize() | 握手:协议版本、能力协商 | session/new() | 创建会话,返回 sessionId | session/prompt() | 发送用户请求 | session/update (streaming) | 实时流式推送 | | | session/reset() | 重置会话 | session/fork() | 分支会话 | session/terminate() | 终止会话 | list_sessions() | 列出活跃会话 所有通信基于 JSON-RPC 2.0 协议,通过 stdio(标准输入输出)或 HTTP 传输。Hermes 的 ACP 适配器同时支持两种模式。 三、Hermes ACP 服务器架构 Hermes 的 ACP 服务器实现位于 HermesACPAgent 类( acp_adapter/server.py:446 …

阅读全文:Hermes Agent 源码解析 第 11 讲