ACP in Practice 實戰 — 令 Claude Code 同 Hermes Agent 互相通訊
2026-05-14 · ACP 實戰 · Eric Cheung
前言:一個 Agent 嘅能力天花板
快速結論(TL;DR)
- ACP 係一個標準化嘅 Agent-to-Agent 通訊協議,令 Claude Code 同 Hermes Agent 可以互相發現、委派任務同回報結果。
- MCP 負責「AI ↔ 工具」嘅通訊,ACP 負責「AI ↔ AI」嘅通訊,兩者互補,夾埋用可以做到雙層自動化。
- 實戰上可以起一個 ACP Hub 做通訊中樞,Claude Code 專責 code generation,Hermes Agent 專責 planning 同 orchestration,各展所長。
- 最終效果係由「一個人加一個 AI 助手」升級做「一個人加一個 AI Agent Team」,即係 Agent Swarm Development 嘅雛形。
即使最強嘅 AI Agent,都有佢嘅限制:Claude Code 強於 code generation 但唔擅長長時間 multi-step task planning;Hermes Agent 強於 multi-tool orchestration 但需要更精準嘅 code context。與其要一個 Agent 做晒所有嘢,不如俾多個 Agent 互相協作。
呢個就係 ACP(Agent Communication Protocol)嘅價值所在。今日我哋由概念到實戰,完整實現 Claude Code ↔ Hermes Agent 嘅雙向通訊。
Part 1:ACP Protocol 核心概念
ACP 係咩?
ACP(Agent Communication Protocol)係一個標準化嘅 Agent-to-Agent 通訊協議。佢定義咗 Agent 之間點樣發現彼此(Discovery)、交換訊息(Messaging)、委派任務(Delegation)、同回報結果(Reporting)。
關鍵思維:MCP 係「AI ↔ Tool」嘅通訊協議,ACP 係「AI ↔ AI」嘅通訊協議。兩者互補,唔係競爭。
ACP 四大核心機制
- ① Agent Discovery — Agent 自動發現網絡上有邊啲其他 Agent 可用(類似 mDNS/DNS-SD)
- ② Capability Advertisement — 每個 Agent 廣播佢嘅能力清單:「我識做 code review」「我識 plan sprint」
- ③ Task Delegation — Agent A 可以將 subtask 委派俾 Agent B,附帶 context 同 requirements
- ④ Result Aggregation — Orchestrator Agent 收集各 Agent 嘅結果,組合成完整輸出
Part 2:ACP 實戰 Setup — Claude Code + Hermes Agent
場景設定
我哋會設定一個 Multi-Agent 系統:Claude Code 負責 code generation & review(佢嘅強項),Hermes Agent 負責 task planning & multi-tool orchestration(佢嘅強項)。兩者經 ACP 通訊,互相委派任務。
Claude Code — ACP Client 設定
// Claude Code side: ACP Client
import { ACPClient } from "@acp/sdk";
const acp = new ACPClient({
agentId: "claude-code-01",
capabilities: [
"code-generation",
"code-review",
"debugging",
"refactoring",
],
endpoint: "ws://localhost:9876", // ACP Hub
});
// 連接 ACP Hub
await acp.connect();
// 監聽 Task Delegation
acp.on("task:received", async (task) => {
console.log(`📥 Received task: ${task.type} from ${task.from}`);
// Claude Code 處理 code 相關 task
if (task.type === "generate-code") {
const code = await generateCode(task.spec);
await acp.sendResult(task.id, { code });
}
});
Hermes Agent — ACP Client 設定
// Hermes Agent side: ACP Client
import { ACPClient } from "@acp/sdk";
const acp = new ACPClient({
agentId: "hermes-01",
capabilities: [
"task-planning",
"multi-tool-orchestration",
"workflow-automation",
"sprint-management",
],
endpoint: "ws://localhost:9876",
});
await acp.connect();
// Hermes 接收 task 然後拆解分派
acp.on("task:received", async (task) => {
if (task.type === "plan-sprint") {
const plan = await hermesPlanSprint(task.requirements);
// 將 code tasks 委派俾 Claude Code
for (const codeTask of plan.codeTasks) {
await acp.delegate("claude-code-01", {
type: "generate-code",
spec: codeTask,
});
}
}
});
Part 3:完整 Multi-Agent Workflow
Scenario:Implement 一個新 Feature(Login + Dashboard)
User: "Build a login page and a user dashboard with stats"
ACP Workflow:
Step 1 ─ User 指令到達 Hermes Agent(Orchestrator)
Step 2 ─ Hermes 分析需求,拆成 Subtasks:
├─ Task A: Create Login component
├─ Task B: Create Dashboard component
├─ Task C: Set up routing between pages
└─ Task D: Write unit tests
Step 3 ─ Hermes 經 ACP delegate Task A→D 俾 Claude Code
Step 4 ─ Claude Code 逐個執行 code generation
├─ 完成 Task A → send result 俾 Hermes
├─ 完成 Task B → send result 俾 Hermes
├─ 完成 Task C → send result 俾 Hermes
└─ 完成 Task D → send result 俾 Hermes
Step 5 ─ Hermes 收集所有 results,做 integration check
Step 6 ─ Hermes 經 ACP send final result 俾 User
✅ "All 4 tasks completed. Login + Dashboard
ready with routing + tests."
Part 4:ACP Hub — 通訊中樞
ACP Hub 角色
ACP Hub 係 Agent 之間嘅「通訊中樞」,負責 Agent Discovery、Message Routing、同 Session Management。所有 Agent 連接到同一個 Hub,Hub 負責轉發訊息。
啟動 Local ACP Hub
# 安裝 ACP Hub
npm install -g @acp/hub
# 啟動 Hub(預設 port 9876)
acp-hub start --port 9876
# Output:
# 🚀 ACP Hub running on ws://localhost:9876
# 📡 Waiting for agents to connect...
#
# ✅ Agent "claude-code-01" connected [capabilities: 4]
# ✅ Agent "hermes-01" connected [capabilities: 4]
# 🔗 Total agents: 2
Part 5:MCP + ACP 協同 — 終極組合
兩種 Protocol 一齊用
MCP 同 ACP 唔係二選一,而係相輔相成:
- MCP — 令 Agent 可以操控外部工具(GitHub、Database、File System、Slack)
- ACP — 令 Agent 之間可以互相通訊、分工、協作
- ACP + MCP — Agent A 經 ACP 叫 Agent B 做嘢,Agent B 經 MCP 操控工具去完成 → 雙層自動化
實例:ACP + MCP 協同 Workflow
User: "Plan and implement the next sprint"
┌─ ACP Layer ──────────────────────────────────┐
│ Hermes Agent (Planner) │
│ ├─ Plan sprint tasks │
│ ├─ ACP delegate → Claude Code: "Build auth" │
│ └─ ACP delegate → Claude Code: "Build API" │
│ Claude Code (Builder) │
│ ├─ ACP receive task from Hermes │
│ └─ MCP call → GitHub: create PR │
│ └─ MCP call → File: write code │
│ └─ MCP call → Slack: notify #dev │
└──────────────────────────────────────────────┘
總結:由 Solo Agent 到 Agent Swarm
ACP 將 AI 開發由「一個人 + 一個 AI 助手」升級為「一個人 + 一個 AI Agent Team」。每個 Agent 專注做自己最擅長嘅嘢,經 ACP 協調成一個高效嘅 virtual engineering team。呢個就係 AI-Augmented Development 嘅下一個進化形態 — Agent Swarm Development。
Written by Eric Cheung · Learn One AI Thing Every Day · Day 6: ACP in Practice