ACP in Practice 實戰 — 令 Claude Code 同 Hermes Agent 互相通訊

2026-05-14 · ACP 實戰 · Eric Cheung

前言:一個 Agent 嘅能力天花板

快速結論(TL;DR)

即使最強嘅 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 四大核心機制


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 唔係二選一,而係相輔相成:

實例: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