🕸️

多智能体协调

Claude Code 的 Coordinator 模式 — 多 Agent 编排、任务分解与团队协作

核心架构

多智能体架构概述

Coordinator-Worker 分层编排模型

Claude Code 的 Coordinator 模式实现了 多 Agent 编排 能力。在这个架构中,一个 Coordinator Agent 作为中央管理者,负责将复杂任务分解为子任务, 分配给多个 Worker Agent 并行执行,最后汇总所有结果。这种模式使得 Claude Code 能够 应对大规模、高复杂度的工程任务。

Coordinator 与 Worker 之间通过明确的通信协议协作。Coordinator 拥有管理类工具 (任务创建、团队管理、消息路由),而 Worker 则使用执行类工具(文件读写、命令执行、代码搜索), 形成分层分权的协作体系。

Coordinator-Worker 架构

分配分配分配Coordinator AgentWorker Agent 1Worker Agent 2Worker Agent 3Task QueueShared StateMessage Bus

协调器模式

管理工具与执行工具的分层设计

Coordinator 拥有与 Worker 完全不同的工具集。Coordinator 使用 管理工具 进行任务分解、分配和进度监控,而 Worker 使用 执行工具 进行文件读写、命令执行和代码搜索。这种分层设计确保了职责清晰,避免了 Worker 越权操作。

Coordinator 负责四个核心职责:将复杂任务分解为可独立执行的子任务、将子任务 分配给最合适的 Worker Agent、监控各 Worker 的执行进度、以及汇总所有结果并生成最终输出。

Coordinator vs Worker 角色与工具分层

分配CoordinatordecomposeTaskassignTaskaggregateResultsmonitorProgressWorker AgentFileReadToolFileEditToolBashToolGrepToolGlobTool
管理工具 (Coordinator)

TaskCreate, TaskUpdate, TaskList, TeamCreate, SendMessage, AgentTool

Coordinator 使用这些工具来创建和管理团队、分配任务、监控进度以及在 Agent 之间路由消息。这些工具不直接操作代码或文件。

执行工具 (Worker)

FileReadTool, FileEditTool, BashTool, GrepTool, GlobTool

Worker 使用这些工具来执行具体的子任务:读取和编辑文件、运行命令、搜索代码。每个 Worker 聚焦于分配给自己的任务,完成后通过消息汇报结果。

Worker Agent 生命周期

从创建到终止的完整流程

每个 Worker Agent 都经历一个完整的生命周期:从 Coordinator 使用 AgentTool 生成, 接收具体子任务,使用执行工具完成任务,通过 SendMessage 返回结果,最终由 Coordinator 终止。这个过程是高度结构化的,每一步都有明确的输入和输出。

Worker Agent 生命周期流程

调用投递1. 创建2. 分配任务3. 执行任务4. 汇报结果5. 终止AgentToolTaskUpdateFileRead/Bash/GrepSendMessage资源释放CoordinatorCoordinator
1
创建

Coordinator 使用 AgentTool 以 subagent 模式生成 Worker,每个 Worker 拥有唯一名称和任务提示

2
分配

通过 TaskUpdate 将子任务分配给 Worker,状态标记为 in_progress

3
执行

Worker 使用 FileRead/Bash/Grep 等工具执行任务,只读工具可并发运行

4
汇报

Worker 通过 SendMessage 将结构化结果(状态/摘要/详细发现)发送给 Coordinator

5
终止

Coordinator 收到结果后将任务标记为 completed,释放 Worker 资源

任务管理

TaskCreate / TaskUpdate / TaskList 全流程

任务管理是 Coordinator 模式的核心基础设施。通过 TaskCreate 创建任务、 TaskUpdate 更新状态、 TaskList 查看全局进度,Coordinator 可以精确地编排多个 Worker 的执行顺序。

任务之间可以建立 依赖和阻塞关系。一个任务可以被标记为阻塞其他任务,使得后续任务必须等待前置任务完成后才能开始。 这种机制确保了任务按正确的依赖顺序执行,避免数据竞争和逻辑错误。

任务生命周期与依赖管理

创建分配 owner创建设置依赖查看完成解锁继续执行等待TaskCreate任务1: "分析工具"TaskUpdateTaskCreate任务2: "编写文档"TaskUpdate blockedBy: [1]TaskList全局进度面板任务1 completed任务2 已解锁分配给 Worker
TaskCreate

创建新任务并加入任务列表,可设置标题、描述和优先级

TaskUpdate

更新任务状态、分配负责人、设置依赖关系

TaskList

列出所有任务及其状态,查看全局执行进度

团队系统

TeamCreate / TeamDelete 管理多 Agent 团队

团队系统为多 Agent 协作提供了结构化的管理框架。通过 TeamCreate 创建团队后,系统会自动初始化共享的任务列表和通信信道。 所有团队成员可以通过 SendMessage 进行点对点或广播通信,实现灵活的协作模式。

每个团队都有独立的文件系统空间来存储任务数据和配置信息, 确保不同团队之间不会相互干扰。团队生命周期结束时, 通过 TeamDelete 清理所有相关资源。

团队系统架构与资源共享

创建初始化初始化初始化添加成员添加成员添加成员读写读写通信读取生命周期结束TeamCreateTeam "code-analysis"tasks/ {team-name}/teams/ {team-name}/ config.json通信信道Worker AWorker BWorker CTeamDelete
共享任务列表

团队成员共享同一份任务列表,任何成员都可以创建、认领和更新任务。任务列表存储在 ~/.claude/tasks/{team-name}/ 目录下,以 JSON 格式持久化。

团队配置

每个团队维护独立的配置文件,记录团队成员信息、角色分配和通信规则。配置文件位于 ~/.claude/teams/{team-name}/config.json,支持动态更新。

通信机制

SendMessage 点对点与广播通信

Agent 间的通信是 Coordinator 模式的神经网络。 SendMessage 工具支持两种通信模式: 点对点通信(发送给指定 Agent) 和 广播通信(发送给所有团队成员)。 消息会自动投递到目标 Agent,无需主动轮询。

消息投递是异步的。当目标 Agent 正忙于执行任务时,消息会被排队等待, 直到当前任务完成后才处理。这种设计避免了 Agent 被频繁打断, 保证了任务执行的连贯性。

通信模式:点对点 vs 广播

指定所有所有所有汇报Coordinator点对点通信广播通信Worker AWorker BWorker CWorker DWorker Eto: "agent"to: "*"
点对点通信
to: "agent-name"

发送给指定的单个 Agent。适用于任务分配、结果汇报、指令调整等场景。消息只有目标 Agent 能收到。

广播通信
to: "*"

发送给团队中的所有成员。适用于全局通知、进度同步、紧急变更等场景。所有团队成员同时收到消息。