[控场AI]
· 4 分钟阅读· 2,304 字

Claude Code子代理实战:主会话减负,脏活外包给AI分身

Claude Code子代理实战:主会话减负,脏活外包给AI分身

Claude Code子代理用独立上下文外包重读取任务,保持主会话干净并支持并行隔离开发。

Claude Code 的子代理功能通过为子任务分配独立上下文窗口,解决主会话上下文被大量临时文件挤占的问题。子代理领任务后自行读取文件、执行操作,仅将摘要返回主会话,实现“读”与“想”的解耦。内置探索、规划、通用三种代理,分别负责只读搜索、规划材料收集和全能查改。用户还可通过 Markdown 文件自定义代理,配置工具白名单、模型和思考力度。子代理支持并行调查多个模块,结合 git worktree 可在隔离目录和分支中并行开发,互不干扰。后台任务可通过 /task 查看进度,权限提示汇总到主会话。agent teams 多代理自动组队仍处实验阶段且默认关闭。

在深度对话中,主会话的上下文窗口是稀缺资源。当需要查找某个函数定义时,让AI助手直接搜索几十个文件,大量临时内容会瞬间塞满上下文——更亏的是,这些文件读完就没用了,却持续占用宝贵空间。Claude Code 的子代理(Subagent)功能正是为此而生:把重读取、重搜索的"脏活"外包给独立上下文的分身,主会话只保留判断和决策。

子代理是什么:带独立上下文的AI分身

子代理可以理解为一个拥有自己上下文窗口的"分身"。它领任务、自己读文件、自己执行,完成后只把摘要带回主会话。据B站UP主"马上花生"的演示,即使子代理读取了上百个文件,你的主对话也只会看到最终结论。这相当于对上下文焦虑"釜底抽薪",同时成本也可控——分身使用什么模型、什么思考力度,都能单独配置。

子代理跳过项目手册和状态检查

这种设计把"读"和"想"解耦:子代理负责消化原始信息,主会话负责基于摘要做决策。对于需要频繁查阅代码库的开发者,这意味着主会话不再被无关文件污染,可以持续聚焦在核心任务上。

上下文窗口是大型语言模型单次推理能“看到”的全部文本范围,包含系统提示、对话历史、读取的文件内容以及模型已生成的输出。它由模型的架构决定,存在硬性上限(例如数十万token)。一旦超出,早期内容会被截断或需要压缩,导致模型“遗忘”关键信息。在编码场景中,一次文件搜索可能返回数万token的代码,迅速挤占窗口,使真正需要模型关注的指令和推理空间被稀释。因此,把重读取任务隔离到独立窗口,是保持主会话推理质量的关键手段。

内置三兄弟:探索、规划、通用

Claude Code 预置了三种子代理,各有明确分工:

  • 探索代理(Explore) :只读不写,专管找东西。它会跳过项目手册和状态检查,为快速摸底而生。
  • 规划代理(Plan) :在规划模式中收集材料,保持主线干净。
  • 通用代理(General) :全能型,能查也能改,平时无需点名,它会根据任务自行选择。

使用时直接用自然语言下达指令即可,例如"用子代理去调查令牌刷新怎么处理的""有没有现成工具能复用",它会自行决定派谁、怎么查。你继续聊主线,需要时再把它叫回来接着用。

定义专属代理:像写员工简历

除了内置代理,你还可以在代理目录中放置一个 Markdown 文件来定义自己的子代理,相当于一份"员工简历":叫什么名字、擅长什么、能用哪些工具(工具白名单)、使用哪个模型、思考力度如何,都能按岗位定制。

自定义代理就像一份员工简历

简历里还能声明隔离方式,让代理永远在自己的隔离目录里干活。例如定义一个"只读的安全审查员",只看代码报问题,一个字不改。这种按需定制的模式,让子代理能够适配不同团队的工作流和权限边界。

并行与隔离:成建制地派活

子代理可以并行使用:让它们同时调查三个模块——认证、数据库、接口——各回一份摘要,主线同时收到三份情报,上下文依然干净。后台默认并行执行,结果返回时会提醒你。

多个子代理各自一个分支

当多个完整会话并行修改代码时,可以使用 git worktree:一条命令开启一个隔离的工作目录,各自一个分支。这条终端修 bug,那条做新功能,互不踩脚。从合并请求也能直接创建,后面跟编号即可拉取对应分支。退出时若目录干净,会自动回收。

有两个细节需要注意:第一,worktree 是全新检出,依赖需要重新安装;第二,被忽略的环境文件不会自动带过去,需要时用配置声明拷贝名单。目录里的改动推上去与平时一样,没有新流程要学。

git worktree 是 Git 自 2.5 版引入的原生功能,允许同一个仓库同时检出多个工作目录,每个目录绑定不同的分支。与 git clone 不同,worktree 共享同一个 .git 对象库,因此创建成本极低、磁盘占用小,且分支间的提交历史完全互通。典型用法是 git worktree add ../hotfix-branch hotfix,随后在独立目录中修改代码而不影响主工作区。清理时使用 git worktree remove,若目录有未提交改动则需加 --force。它特别适合需要并行处理多个任务又不想频繁切换分支的开发者。

监控、权限与实验性团队协作

后台运行的任务可以通过 /task 快捷命令查看全部进度。子代理的权限提示会汇总到主会话,并点名是哪个分身在询问,你可以逐个批准。

多代理自动组队协作仍在实验阶段

至于多个代理自动组队协作的 agent teams 功能,目前仍处于实验阶段且默认关闭,知道有这回事即可。

实践建议:把上下文花在刀刃上

官方最佳实践指出:调查类工作交给子代理并行处理,不是炫技,而是把上下文用在刀刃上。一个可立即执行的行动是:找一个你没接触过的代码库,让探索代理去摸一遍,要一份结构汇报。你会感受到——主会话一句文件路径都没进,结论却全有了。

对于重度使用 Claude Code 的开发者,子代理不仅是省 token 的技巧,更是一种工作流重构:让主会话负责判断与决策,让分身负责信息消化与并行执行。

分享:

相关推荐