news 2026/7/9 18:40:42

Claude Code 子代理系统完全指南:Fork、Swarm 与 Coordinator 深度拆解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Claude Code 子代理系统完全指南:Fork、Swarm 与 Coordinator 深度拆解

Claude Code 子代理系统完全指南:Fork、Swarm 与 Coordinator 深度拆解

当 Claude 学会“生儿子”,编程的效率就彻底变了。

如果你用过 Claude Code,你可能已经习惯了让它帮你写代码、改 bug、跑测试。但你可能没有意识到,Claude Code 最强大的能力其实藏在“子代理”(Subagent)系统里——它能让一个 Claude 分身出多个 Claude,并行工作,各司其职。

本文从源码和设计理念出发,系统讲解 Claude Code 的子代理系统,重点拆解Fork 模式Swarm(Agent Teams)Coordinator Mode三种多 Agent 协作方式,帮你理解这套系统到底解决了什么问题、怎么用、以及各自适合什么场景。


一、为什么要有多 Agent?——单 Agent 的瓶颈

先回答一个根本问题:为什么需要子代理?

单 Agent 模式下,Claude 一次只能想一件事、做一件事。面对复杂任务时,会面临几个致命瓶颈:

串行阻塞。模型在做调研时,你什么都干不了,只能等。一个大型重构需要更新 40 个文件、每批后运行测试、验证有没有破坏什么——这些不是更难的问题,而是更宽的问题,需要同时做多件事的能力。

上下文污染。让同一个 Agent 既做调研又做实现又做验证,每一步都在消耗上下文窗口,相互干扰。

能力不匹配。探索代码库只需要 Haiku + 只读工具,但实现功能需要 Sonnet/Opus + 全量工具。单 Agent 只能用一个配置。

多 Agent 不是为了“看起来很酷”,而是用架构解决资源分配问题——让不同的 Agent 用不同的模型、不同的工具集、不同的权限,并行处理不同的子任务。

但多 Agent 也有自己的问题:上下文传递的开销、权限管理的复杂度、子 Agent 之间的协调成本。Claude Code 的三种模式就是在不同维度上做取舍。


二、一切从 AgentTool 开始——统一入口

在 Claude Code 中,所有子代理的创建都通过一个统一的工具——AgentTool

从主 Agent 的视角看,AgentTool和其他工具(如BashEdit)没有任何区别。调用它就像调用一个普通函数:

// 主 Agent 调用 AgentTool 就像调用 Bash("ls") 一样自然{name:"Agent",input:{description:"帮我搜索整个代码库中的认证逻辑",prompt:"找到所有与 authentication 相关的文件...",subagent_type:"Explore"}}

AgentTool的真正身份是“工具的工厂”——调用它,系统就会创建一个完整的子 Agent。这个子 Agent 拥有自己的对话循环、独立的上下文窗口、裁剪后的工具集,甚至可以使用不同的模型。

AgentTool 会根据参数走不同的路由路径:

  • 默认不指定subagent_typeFork 路径(共享父上下文的轻量分身)
  • 指定team_name+name→ 生成持久化的Teammate(Swarm 模式)
  • 设置isolation: 'remote'→ 发送到云端运行
  • 设置run_in_background: true→ 后台异步执行

三、Fork 模式——最轻量级的“分身”

Fork 是 Claude Code 中最有特色、也最经济的子 Agent 模式。它的核心设计思路是Prompt Cache 共享

3.1 什么是 Fork?

当调用AgentTool不指定subagent_type,默认走 Fork 路径。

Fork 子 Agent 会完整继承父 Agent 的对话上下文。系统会构建一个所有 Fork 子 Agent 共享的、字节完全一致的 API 请求前缀——所有 fork 子进程共享父 Agent 的完整assistant消息(所有tool_use块),用相同的占位符tool_result填充,只有最后一个text块包含各自的指令。

通俗来说:就像一个班级里,所有学生共用同一本教材(共享的 Prompt Cache),只在最后一页写各自的作业(不同的任务指令)。

3.2 Fork 的核心特点

成本极低。由于前缀字节完全一致,API 请求可以命中 Prompt Cache。官方文档明确说:“Forks are cheap because they share your prompt cache。”启动多个 Fork 子 Agent 的成本远低于启动多个独立的普通子 Agent。

上下文受限。Fork 继承了父 Agent 的完整上下文——这既是优势也是劣势。好处是不需要重新描述背景;坏处是子 Agent 无法拥有一个“干净”的独立上下文,可能会受到父对话中无关信息的干扰。

无横向通信。Fork 子 Agent 之间没有横向通信,只向父进程返回结果。

运行时隔离。尽管共享了缓存上下文,但每个 Fork 子 Agent 在运行时拥有自己独立的消息历史、文件状态缓存、中断控制器和工具权限上下文,互不干扰。子 Agent 完成后只返回一个结果字符串,不共享其他状态。

不要换模型。官方特别提醒:不要在 Fork 上设置不同的模型——换了模型就无法复用父 Agent 的 Prompt Cache 了。

3.3 Fork 的使用场景

Fork 最适合快速并行探索/微任务——比如同时搜索三个不同模块的代码、并行读取多个文件并做初步分析、快速验证多个不同的假设。它是最轻量的选择。


四、五种内置子 Agent——开箱即用的专业角色

Claude Code 内置了五种预配置的子 Agent 类型,覆盖从研究到验证的完整链路:

类型核心职责特点
GeneralPurpose通用型子 Agent工具集中包含 AgentTool,可以递归创建子子 Agent
Explore代码库探索与搜索只读、快速,使用 Haiku 模型
Plan任务规划专注于制定方案和步骤
Verification验证与审查代码审查、测试结果验证
Fork轻量级分身共享父 Agent 的 Prompt Cache

⚠️ 注意:大多数内置角色(Explore、Plan、Verification 等)在工具层面禁用了 AgentTool——也就是说它们不能再 spawn 子子 Agent。只有 GeneralPurpose 拥有完整的递归能力。


五、后台任务系统——异步执行的基石

子 Agent 支持后台运行,背后是一套Task 系统在支撑。

5.1 七种任务类型

Claude Code 将后台操作建模为七种任务类型:

类型用途
local_bash后台 Shell 命令
local_agent后台子 Agent
remote_agent远程会话
in_process_teammateSwarm 队友
local_workflow工作流脚本执行
monitor_mcpMCP 服务器监控
dream推测性后台思考(等待用户输入时让 Agent 默默思考)

其中local_bashlocal_agent是最常用的工作马。每个任务类型都有一个单字符 ID 前缀用于即时视觉识别。

用户可以通过/tasks命令查看当前后台运行的任务列表,实现“主对话继续,子任务在后台默默干活”的异步协作体验。


六、Swarm / Agent Teams——对等协作的“团队模式”

如果说 Fork 是“分身”,那 Swarm 就是“组队”

Swarm 模式(官方名称 Agent Teams)是一个实验性功能,默认禁用。需要通过将CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS添加到settings.json或环境变量来启用。

6.1 核心机制

一个 Claude Code 会话充当团队负责人,协调工作、分配任务和综合结果。队友独立工作,每个都在自己的 context window 中,并直接相互通信

与 subagents 不同——subagents 在单个会话中运行,只能向主代理报告——在 agent teams 中,队友共享任务列表、认领工作并直接相互通信

6.2 消息传递机制:Mailbox 系统

Swarm 最核心的设计就是它的消息传递系统

消息面接近点对点,控制面仍然以 lead 为中心。更具体地说:

  • 队友之间可以直接SendMessage,不需要经过负责人中转
  • 但团队创建、团队清理、成员发现、权限聚合、UI 呈现仍然围着 lead 打转
  • 这就是为什么它看起来比 Coordinator 更自由,但又没有真的变成一个“无主集群”

在代码层面,消息传递通过Mailbox(信箱)系统实现——一个基于文件的信箱系统,带有锁文件并发控制。团队和任务都存储在本地:Team lead 创建团队,teammates 各自处理分配的任务,Task list 是队友认领和完成的共享工作项列表,Mailbox 是代理之间通信的消息系统。

关键约束:你的文本输出别人看不到,必须通过SendMessage工具通信。模型必须明确知道:直接写回复文本不会让队友看到,必须调用工具。

6.3 三种 Backend(运行模式)

Swarm 的队友执行有三种 Backend:

Backend说明
tmux/iTerm2 分屏每个队友获得自己的窗格,你可以同时看到每个人的输出,并点击窗格直接交互
In-process队友跑在同一个 Node.js 进程里,走 leader queue 同步
Auto自动检测:如果已经在 tmux 会话中运行则使用分屏,否则使用 in-process

Swarm 的关键不是“一定多进程”,而是team file、mailbox、SendMessage 这套团队协议

6.4 任务分配与认领

共享任务列表协调整个团队的工作。负责人创建任务,队友完成它们。任务有三种状态:待处理、进行中和已完成。任务也可以依赖其他任务——具有未解决依赖关系的待处理任务在这些依赖关系完成之前无法被认领。

系统自动管理任务依赖关系。当队友完成其他任务依赖的任务时,被阻止的任务会自动解除阻止。

6.5 与 Subagents 的对比

维度SubagentsAgent Teams
Context自己的 context window;结果返回给调用者自己的 context window;完全独立
通信仅向主代理报告结果队友直接相互发送消息
协调主代理管理所有工作具有自我协调的共享任务列表
最适合只有结果重要的专注任务需要讨论和协作的复杂工作
令牌成本较低:结果汇总回主 context较高:每个队友是一个独立的 Claude 实例

6.6 使用场景

Agent teams 最适合用于并行探索能增加真实价值的任务

  • 研究和审查:多个队友同时调查问题的不同方面,然后分享和质疑彼此的发现
  • 新模块或功能:队友各自拥有一个独立的部分,不会相互干扰
  • 使用竞争假设进行调试:队友并行测试不同的理论,更快地收敛到答案
  • 跨层协调:跨越前端、后端和测试的更改,每个由不同的队友负责

6.7 缓存共享情况

Swarm 模式下,队友之间不共享 Prompt Cache。每个队友都是一个独立的 Claude 实例,拥有自己独立的 context window。令牌使用量随活跃队友数量而增加。


七、Coordinator Mode——最隐秘的“编排模式”

Coordinator Mode 是 Claude Code 中最隐秘也最强大的模式——它被隐藏在一个编译时的功能标志后面。

7.1 开启方式

通过环境变量激活:

CLAUDE_CODE_COORDINATOR_MODE=1claude

重要:Coordinator 和 Fork 是互斥的——开启 Coordinator 会自动禁用 Fork。

7.2 核心机制:彻底的上下文隔离

在 Coordinator 模式下,Claude Code 从单 Agent 转变为一个多 Agent 编排器

关键原则:工作 Agent 无法看到协调者的对话。每个工作 Agent 都以零上下文启动

这意味着协调者必须编写自包含的提示词——包含工作所需的一切信息:文件路径、行号、错误信息、什么算“完成”。这不是约定,而是架构层面的强制隔离。

7.3 协调者的工具箱

Coordinator 模式下,Agent 的工具集被严格限制:

工具用途
Agent生成一个新的工作 Agent
SendMessage向现有工作 Agent 发送后续消息
TaskStop终止一个正在运行的工作 Agent
SyntheticOutput合成输出
subscribe_pr_activity/unsubscribe_pr_activityGitHub PR 事件订阅(如果配置了 GitHub 集成)

注意缺失了什么BashToolFileReadToolFileWriteToolGrepTool——协调者把所有实际工作都委托给 workers。

7.4 四阶段工作流

Coordinator 的系统提示定义了一个 4 阶段工作流:

Phase 1: Research(研究)—— 多个 workers 并发调查代码库。协调者同时派出多个研究者 Agent,各自聚焦不同方面(数据模型、API 层、测试套件等)。

Phase 2: Synthesis(综合)—— 协调者综合研究发现,撰写实现规格说明。规格必须精确到每个文件、每个函数名、每行代码的改动。

Phase 3: Implementation(实现)—— 协调者派出实现者 Agent,按照规格编写代码。多个实现者不能同时编辑同一个文件。

Phase 4: Verification(验证)—— 协调者派出验证者 Agent,运行测试、检查类型、质疑实现。

7.5 通信机制:XML<task-notification>

Worker 的输出通过XML<task-notification>在 user-role 消息中回传。

这种模式的核心在于信息漏斗——用户只跟协调者对话,协调者把复杂信息压缩成人能理解的摘要。Worker 的输出可能是几千 token,但协调者只把关键信息提炼后告诉用户。

7.6 会话持久化与动态切换

Coordinator 模式支持会话持久化。当恢复一个会话时,模式必须匹配。但 Claude Code 可以动态切换模式——环境变量是实时读取的,不是缓存的。这意味着可以在进程中途切换模式以匹配恢复的会话。

7.7 缓存共享情况

Coordinator 模式下,workers 之间不共享任何上下文。每个 worker 都以零上下文启动。这是架构层面的强制隔离——不是约定,是代码强制。

7.8 使用场景

Coordinator 是 Claude Code 的“项目经理模式”。适合需要全局视野、多阶段流水线的大型任务——协调者自己不执行工具,只拆任务、派活、综合结果。比如复杂工程任务(研究→综合→实现→验证)。


八、三种模式完整对比

维度Fork SubagentSwarm / Agent TeamsCoordinator Mode
拓扑父进程分裂出 N 个子进程弱中心化:lead 管生命周期,队友可互发消息中心化:协调者 + N 个 worker
通信方式无横向通信,只回父进程SendMessage + mailboxXML<task-notification>回传
运行环境同进程异步tmux/iTerm2 面板或 in-process同进程异步
上下文共享完整继承父对话 + prompt cache无(队友独立会话)无(worker 独立 prompt,零上下文启动)
权限模型bubble 冒泡到父终端in-process 走 leader queue,pane 模式走 mailbox 同步worker 工具受限
互斥性与 Coordinator 互斥独立与 Fork 互斥
适用场景快速并行探索/微任务长期运行的并行团队复杂工程任务
令牌成本极低(共享 Cache)高(每个队友独立实例)高(每个 worker 独立)

九、总结

Claude Code 的子代理系统,本质上解决的是“如何让一个 AI 同时做多件事”的问题。

Claude Code 的答案是不是一种机制,而是一层层的编排模式堆栈,每一种都适合不同形状的工作:

  • Fork通过共享 Prompt Cache 实现了极低成本的分身,适合轻量级、高频的快速并行探索。
  • 内置子 Agent(Explore、Plan、Verification 等)提供了开箱即用的专业化能力。
  • Swarm / Agent Teams通过 Mailbox 系统和直接SendMessage让多个 Claude 实例像人类团队一样协作讨论,适合需要并行探索和讨论的复杂项目。
  • Coordinator Mode则是最彻底的自动化编排——协调者只负责调度,所有实际工作由零上下文启动的 workers 完成,适合需要全局视野、多阶段流水线的大型工程任务。

从“单线程”到“多线程”,从“一个人干活”到“组建团队”——Claude Code 的子代理系统正在重新定义 AI 编程助手的上限。理解这套系统,你就能让 Claude 不只是帮你写代码,而是帮你组织和管理一个 AI 团队

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/9 18:40:37

2026免费图片文字识别工具实操指南:在线网页、电脑软件完整使用教程

随着日常办公、学习场景中截图、纸质文档照片、课件图片的使用频次持续提升&#xff0c;图片文字提取成为高频需求。市面上各类免费图片文字识别工具分为在线网页端、电脑客户端、微信小程序、办公内置工具四大类&#xff0c;不同工具适配电脑、手机、离线、隐私处理等差异化场…

作者头像 李华
网站建设 2026/7/9 18:39:41

STM32F469II与L9958电机驱动系统设计与优化

1. L9958与STM32F469II电机驱动系统概述 在工业自动化和机器人控制领域&#xff0c;电机驱动性能直接决定了整个系统的响应速度、定位精度和能效表现。L9958是STMicroelectronics推出的一款专为有刷直流电机设计的高性能驱动芯片&#xff0c;而STM32F469II则是ST旗下基于ARM Co…

作者头像 李华
网站建设 2026/7/9 18:39:27

3DMAX ChaosLine插件 vs RandomSpline:电缆/蛛网生成效率与效果5维度对比评测

3DMAX ChaosLine插件 vs RandomSpline&#xff1a;电缆与蛛网生成工具深度评测在3D环境美术设计中&#xff0c;电缆、蜘蛛丝等细节元素往往能大幅提升场景的真实感。面对市面上多款曲线生成工具&#xff0c;如何选择最适合项目需求的插件成为美术师们的常见困扰。本文将针对两款…

作者头像 李华
网站建设 2026/7/9 18:39:15

编写自动化脚本,在自己后端服务中使用云原生Baas服务进行用户相关操作

在移动端自动化、设备集群运维、脚本分发运营等业务场景中&#xff0c;开发者往往需要一套完整的用户管理体系&#xff0c;包含主 / 子账户信息管理、脚本权限分配、设备绑定、卡密授权、数据存储等能力。传统开发模式下&#xff0c;开发者需要独立搭建用户数据库、封装 CRUD 接…

作者头像 李华
网站建设 2026/7/9 18:37:31

MySQL从入门到精通:实战指南与性能优化全解析

&#x1f680; 30款热门AI模型一站整合&#xff0c;DeepSeek/GLM/Qwen 随心用&#xff0c;限时 5 折。 &#x1f449; 点击领海量免费额度 如果你正在学习后端开发、数据分析&#xff0c;或者任何需要存储数据的应用&#xff0c;那么你大概率绕不开一个名字&#xff1a;MySQ…

作者头像 李华
网站建设 2026/7/9 18:36:41

SeanLib系列函数库-SDCache

查看其它库函数说明&#xff0c;请点击此处跳转到SeanLib主页 1. 本篇内容 在需要频繁地向SD卡中写入日志的项目中&#xff0c;为了减少SD卡实际的擦写频次&#xff0c;提高SD卡寿命&#xff0c;特别设计了本函数库&#xff0c;原理是在单片机的备份区SRAM中开辟一块缓存区&a…

作者头像 李华