Claude Code 子代理详解:工作原理与使用时机

Claude Code 子代理如何保持主会话清爽?本文详解其运行机制、配置文件、模型与工具权限、作用域优先级,以及它与 Skill、Fork 和 Agent team 的区别;同时说明哪些任务值得委派、哪些场景应留在主线程,并讲清上下文隔离、Token 成本、嵌套与持久记忆的真实取舍。

发布于

Claude Code 子代理详解:工作原理与使用时机

Claude Code 子代理是专门处理旁支任务的助手:它在自己的上下文窗口中工作,结束后只把摘要交回主会话。重点不在于“多开几个代理”,而在于保持主会话清爽,避免一次漫长的开发任务被搜索结果、日志和读到一半的文件拖垮。

可以把子代理理解成一个可委派的函数:Claude 给它一项任务,它在你看不到的独立窗口里完成,然后返回一份干净的答案。用对了,它是让 Claude Code 在数小时会话中始终保持思路连贯的最有效手段;用错了,只会白白消耗 Token、增加延迟。本文既讲清它的实际运行机制和定义文件,也给出一条务实标准:什么任务才值得交给子代理。

20 秒速览:Claude Code 子代理如何工作

一个 Claude Code 子代理会在隔离的上下文中独立完成一项任务,再把简短摘要返回主对话。核心就这么简单。它解决的是一个非常具体的问题:长时间的智能体式会话会不断堆积噪声——grep 结果、构建日志、只读过一次且不再引用的文件——最终模型花在整理杂乱信息上的注意力,反而超过了真正完成任务所需的注意力。

把这些高噪声工作交给子代理,杂乱内容就留在它的窗口里,主线程只接收结论。因此,正确的理解不是“一群 AI 工程师协同开发”,而是带返回值的上下文清理机制。抓住这一点,之后所有关于子代理的取舍都会容易得多。

Claude Code 子代理到底是什么

子代理拥有自己的上下文窗口、定制系统提示词、指定的工具访问权限,以及独立权限。当 Claude 遇到与某个子代理职责描述相符的任务时,就会发起委派;子代理独立执行并返回结果。这是官方定义,而其中真正重要的是“独立上下文窗口”和“返回结果”。

许多介绍在最关键的一点上说错了:子代理从零开始。它看不到你的对话历史、Claude 已经读过的文件,也不知道此前调用过哪些 Skill。Claude 会把任务浓缩成一条简短的委派消息;随后,子代理只能依靠自己的系统提示词,以及工作目录等基础环境信息来工作,而不会获得完整的 Claude Code 系统提示词。等它完成后,返回主会话的只有摘要。

这种隔离既有收益,也有代价。理解这笔交换,是用好子代理的关键:

  • 收益: 中间过程再啰嗦也不会进入主上下文——读过的十二个文件、失败的 grep、扫描过的日志都会留在子代理里;你只拿到答案。
  • 代价: 子代理必须重新收集你已经掌握的背景。如果任务离不开当前对话才能说清,从零启动的子代理往往会无所适从。

一个子代理由什么文件定义

自定义子代理就是一个带 YAML frontmatter 的 Markdown 文件。frontmatter 负责配置,Markdown 正文则会成为子代理的系统提示词。必填字段只有两个:name 和 description。

Markdown
---
name: code-reviewer
description: Reviews code for quality and best practices. Use immediately after writing or modifying code.
tools: Read, Glob, Grep
model: sonnet
---

You are a senior code reviewer. When invoked, run git diff to see recent
changes, focus on modified files, and review for clarity, naming, error
handling, exposed secrets, input validation, and test coverage. Group your
feedback by priority: critical issues, warnings, then suggestions.

这已经是一个完整可用的子代理。description 绝不是装饰:Claude 正是靠它判断何时委派任务。像“审查代码;编写或修改代码后立即使用”这样的描述,会在正确时机触发子代理;含糊的“代码助手”则很可能让它一直闲置。写描述时,不妨把它当成一份面向专才的岗位说明。

Claude Code 产品页面
Claude Code

文件不必手写。Claude Code 的 /agents 命令会打开一个用于管理子代理的分页界面:Running 标签页列出正在运行和最近完成的子代理,可以查看或停止;Library 标签页则用于创建、编辑和整理。需要注意的是,子代理会在会话启动时加载,因此如果直接修改磁盘上的文件,必须重启会话才能生效;通过 /agents 界面创建或编辑的子代理则会立即生效。

子代理文件放在哪里,重名时谁优先

同一个子代理文件放在不同位置,会决定谁能使用它;若名称冲突,位置还会决定采用哪一份定义。

位置作用域是否提交到 git?
.claude/agents/仅当前项目是,与团队共享
~/.claude/agents/你的所有项目(个人)否(这是你的主目录)
Plugin agents/安装该 Plugin 的用户随 Plugin 分发
托管配置(组织管理员)组织内所有人由组织控制

两个子代理重名时,优先级更高的位置胜出:托管定义高于项目定义,项目定义又高于用户定义。Claude Code 会从当前工作目录逐级向上查找项目子代理;从 v2.1.178 开始,若发生重名,离工作目录最近的定义优先。还有一种只在当前会话存在的方案:启动 Claude Code 时通过 --agents 参数传入 JSON。它不会把文件写入磁盘,很适合自动化脚本和快速测试。

实用原则很简单:如果子代理承载的是这套代码库特有的审查或测试规范,就把它放进 .claude/agents/ 并纳入版本控制,让全团队共用;如果它只代表你个人的工作偏好,就放进 ~/.claude/agents/,随你在不同项目间使用。

模型与工具:最关键的两个调节项

真正决定效果和成本的,主要是 frontmatter 中的两个字段。把它们配好,子代理才会从“有意思”变成真正划算。

模型。 model 字段可以填写别名(sonnet、opus、haiku、fable)、完整模型 ID(例如 claude-opus-4-8),或 inherit。省略时默认使用 inherit,也就是沿用主会话的模型。这里藏着一个重要的成本开关:如果子代理的全部工作只是“用 grep 扫描代码库并总结发现”,就没必要动用前沿模型。把它设为 model: haiku,机械工作会交给更便宜、更快的模型,而主会话仍可用 Opus 负责判断。

工具。 默认情况下,子代理会继承主会话可用的全部内部工具和 MCP 工具。可以用两个字段之一收窄范围:tools 是允许列表,disallowedTools 是拒绝列表。比如,不应修改文件的研究子代理可以设置 tools: Read, Grep, Glob, Bash,这样它在物理上就无法编辑任何内容。这不只是为了整洁,而是一道真正的安全边界:只读审查者不会意外改写自己正在审查的文件。

还有一个值得了解的配置:isolation: worktree 会让子代理在临时 git worktree,也就是仓库的一份隔离副本中运行。如果子代理没有产生改动,这个 worktree 会自动清理。需要让子代理尝试有风险的操作,又不希望它干扰当前工作树时,就适合使用它。

什么时候该用子代理,什么时候不该用

GitHub 上那些堆满配置的示例往往略过这一节,但真正省时间、省成本的恰恰是这里。子代理并非零成本,所以问题从来不是“这件事能不能交给子代理”,而是“隔离带来的收益,是否足以覆盖它的成本”。

  1. 先问:输出是否冗长,而且用完即可丢弃?

    最典型的高收益场景,是任务会产生大量之后不再需要的中间结果:扫描大型代码库、为了回答一个问题读取十几个文件、从嘈杂日志里筛选线索。子代理可以消化全部过程,只交回一段结论。

  2. 再问:任务能否独立说清?

    子代理从零开始,因此最适合那些能在委派消息中完整说明的工作。“找出所有调用计费 API 的位置并列出来”足够独立;“接着做我们刚才讨论的事”则不行,因为子代理从未看过那段讨论。

  3. 最后问:是否需要强制工具边界?

    如果必须确保某项工作严格只读,可以给子代理配置 tools 允许列表。边界由系统强制执行,而不是寄希望于模型自觉遵守。

从这套机制出发,以下场景并不适合子代理:

  • 需要反复迭代。 如果任务要频繁调整,并且始终需要你的判断,就留在主会话中。委派会打断反馈循环。
  • 多个阶段共享上下文。 规划、实现、测试依次推进,而且后一阶段依赖前一阶段背景时,应放在同一线程中;不要拆给三个彼此从零开始的子代理。
  • 快速、明确的小改动。 为修正一个拼写错误启动子代理,成本比直接修改更高。
  • 对延迟敏感。 子代理必须从头收集背景,天然需要时间。如果答案要得很急,直接在当前会话处理更快。

子代理、Skill、Fork 与 Agent team 有什么区别

Claude Code 现在提供四种组织工作的方式,它们很容易混淆;真正的区别全在上下文。

机制上下文适用场景
Skill在主会话中运行需要一套可复用的指令或工作流,并且它要看到完整上下文
子代理(Subagent)全新的隔离窗口;返回摘要工作冗长、独立,希望把过程移出主上下文
Fork继承完整对话希望在无需重述背景的前提下完成旁支任务
Agent team每个成员都有独立上下文需要超出单一上下文窗口承载能力的持续并行处理

最容易混淆的是 Skill 与子代理,因为两者看起来都像“保存下来的专业能力”。Skill 是在主会话上下文中运行的可复用指令,因此能看到你正在做的一切;子代理的设计恰好相反:它与主会话隔离,只知道收到的任务。如果希望 Claude 一边与你协作,一边持续应用团队写作规范,那应该使用 Skill;如果希望一次嘈杂的调查在后台独立完成并只汇报结论,就该使用子代理。

Fork 是两者之间很实用的折中:它会继承截至当前的完整对话(包括相同的系统提示词、工具、模型和消息历史),所以无需重新解释背景;不过,它的工具调用仍留在主上下文之外,最终只有结果返回。若某个具名子代理需要的背景太多,难以靠一条委派消息讲清,就使用 Fork。(Fork 模式需通过 CLAUDE_CODE_FORK_SUBAGENT 环境变量启用。)

强大功能及其边界

两项较新的能力显著拓宽了子代理的用途,但各自也有必须尊重的边界。

嵌套。 从 Claude Code v2.1.172 开始,子代理可以继续创建自己的子代理。例如,审查子代理可以为每条发现分别派出一个验证者;所有中间输出都留在内部,只有顶层子代理的摘要会返回给你。嵌套深度固定为五层,不能配置;位于第五层的子代理不会获得 Agent 工具,因此无法继续创建。这个上限有充分理由:层层向外扩散,很容易在不经意间启动一整群代理,Token 开销也会迅速上升。把深度当作预算,不要当作目标。

记忆。 加上 memory: project(也可以是 user 或 local),子代理就会获得一个可跨会话读写的持久记忆目录。带项目记忆的代码审查子代理,会逐步积累团队规范和反复出现的问题,用得越久越准确。推荐默认选择 project,因为它可以通过版本控制共享。启用记忆后,Claude Code 会在启动时把子代理 MEMORY.md 的前 200 行(或 25KB)注入系统提示词,因此这个文件需要持续整理。

优势
做得好的地方
8 points

  • 把高噪声工作隔离出去,让长会话始终保持连贯
  • 工具边界真正可控:只读就是只读
  • 机械工作用便宜模型,关键判断留给前沿模型
  • 记忆让子代理逐步学会你的代码库
  • 从零开始意味着重新收集上下文,会增加延迟和 Token 消耗
  • 返回主线程的摘要仍占用上下文;同时启动太多会适得其反
  • 它是委派,不是协作团队,不能按代理间互聊来设计架构
  • 嵌套若不加节制,会迅速扩散成真实开销

一个稳妥的起点,是先做一个职责明确的子代理——只读的 code-reviewer 就是经典例子——把它提交到 .claude/agents/,每次改动后调用。确认确有价值之后,再增加一个使用便宜模型的研究子代理。真正从中获益的团队,并不是同时运行三十个代理,而是只保留三个各自专注于一项工作的代理。如果你首先还在挑选编码工具,那是另一套决策,可以阅读 Codex、Claude Code 与 Cursor 对比,以及更全面的 AI 编码智能体推荐。

Claude Code 子代理和 Skill 有什么区别?

Skill 是在主会话上下文内运行的可复用指令或工作流,因此能看到你正在做的一切。子代理则会启动一个独立、隔离的上下文窗口,在没有对话历史的情况下完成任务,最后只返回摘要。需要在当前工作中持续应用某项专业能力时用 Skill;需要把嘈杂且独立的工作移出主上下文时用子代理。

Claude Code 子代理最多能嵌套多少层?

从 v2.1.172 开始,子代理可以继续创建子代理,固定上限为五层。第五层的子代理不再获得 Agent 工具,无法继续创建;该上限不可配置。返回主会话的只有顶层子代理摘要。

Claude Code 子代理会产生额外费用吗?

没有单独的功能收费:子代理内置于 Claude Code。但每个子代理都会在自己的上下文中消耗 Token,摘要返回后也会占用主线程上下文。把大型调查委派出去可能更划算;为一项微小改动启动子代理,通常反而更贵。

子代理文件应该放在哪里?

项目专用的子代理放在 .claude/agents/,并提交到版本控制,供团队共享;个人子代理放在 ~/.claude/agents/,即可跨项目使用。发生重名时,优先级更高的位置胜出,顺序是托管配置、项目配置、用户配置。

可以让子代理使用更便宜的模型吗?

可以。在子代理 frontmatter 的 model 字段中填写 haiku、sonnet、opus、fable 等别名,也可以填写完整模型 ID。默认值是 inherit,也就是沿用主会话模型。把量大但不依赖复杂判断的工作交给更小的模型,是控制成本的主要方式。

如果你正在把 Claude Code 真正接入日常交付流程,这基本就是我持续研究的主题。订阅 Newsletter,获取可以直接落地的工作配置,而不是首发当天的热闹消息。

发布日期
分类
AI
Julius AI 评测:数据分析、价格与选购建议

Julius AI 评测:数据分析、价格与选购建议

Julius AI 适合把业务数据反复整理成可核对的图表与报告吗?本文依据官方文档,梳理数据连接、分析与报表功能、月付和年付价格,并比较 ChatGPT、Claude 的适用场景。重点说明 Notebooks 下线、七天文件存储、积分消耗和数据处理限制,帮助你判断现有工作流程是否值得迁移,以及购买前该验证什么。2026年10月15日AI
SLM 小语言模型怎么选?从适用场景到本地部署

SLM 小语言模型怎么选?从适用场景到本地部署

SLM 小语言模型适合哪些工作,何时仍需大模型?本文梳理分类、抽取、路由、端侧助手和模板写作五类场景,对比 Gemma、Phi、Qwen、Llama 与 Ministral 的参数规模和许可证,说明内存预算、Ollama 与 LM Studio 本地部署、托管 API,以及如何用同一批样例评估质量、延迟和审核成本。2026年10月14日AI
Gemini 免费吗?免费版功能、额度与付费升级怎么选

Gemini 免费吗?免费版功能、额度与付费升级怎么选

Gemini 免费版能做什么,什么时候值得付费?本文梳理 Auto 模型选择、图像编辑、研究功能、32k 上下文和用量限制,对比 Google AI Plus、Pro、Ultra 的美国月费与新增权益,并说明 Gemini API 免费层和学生优惠的适用范围,帮你按实际工作需求判断是否值得升级。2026年10月14日AI
Gemini vs Claude:Gemini 4 Argon 与 Opus 5.5 怎么选?

Gemini vs Claude:Gemini 4 Argon 与 Opus 5.5 怎么选?

Gemini vs Claude 怎么选?本文对比 Gemini 4 Argon 与 Claude Opus 5.5 的编程、研究、智能体任务、API 价格及使用门槛,按相同任务用量测算优惠期和十二月调价后的成本,并拆解缓存、共享上下文、长输出与续写计费,帮你结合验收结果和人工审核成本判断是否值得迁移。2026年10月14日AI
NotebookLM 教程:从资料整理到业务简报的完整用法

NotebookLM 教程:从资料整理到业务简报的完整用法

这篇 NotebookLM 教程带你从创建笔记本、导入资料开始,学会提问、核对引用,并用 Studio 制作可供团队审核的简报。文中梳理免费版、付费套餐与 Workspace 权限,介绍 RFP 应答、客户调研、新人培训、会议决策和竞品分析五种用法,帮助你把准备与审核时间一起计入成本,再判断是否值得升级。2026年10月14日AI
Agentic AI 是什么?企业应用、选型与成本指南

Agentic AI 是什么?企业应用、选型与成本指南

Agentic AI 是什么,和聊天机器人、固定工作流、生成式 AI 有何区别?本文面向企业负责人,结合具体产品,梳理适合试点的业务任务、权限与审批边界、供应商评估问题,并用假设案例计算审核和返工后的单任务成本,帮助判断何时采用 AI 智能体、何时保留现有自动化,以及试点该如何验收。2026年10月14日AI
2026 企业 AI Agent 选型:6 大平台的价格、权限与治理对比

2026 企业 AI Agent 选型:6 大平台的价格、权限与治理对比

企业 AI Agent 怎么选?对比 Gemini Enterprise、Copilot Studio、ChatGPT Work、Claude Enterprise、Agentforce 与 Airia 的连接能力、搭建方式、权限、审批、审计和数据保留,拆解席位与用量成本,按技术栈确定候选平台,用试点验证业务流程。2026年10月14日AI
Grok 与 Claude 价格对比:编程、文档与团队选型

Grok 与 Claude 价格对比:编程、文档与团队选型

Claude 价格与 Grok 相比,哪款更适合小团队?本文对比个人与团队订阅、Grok 4.7 和 Claude 5.5 模型、API 费率、上下文窗口、编程智能体、实时 X 研究、文档工作流和商业数据政策,并通过短请求、长提示词与缓存示例算清成本,说明共享额度、API 赠送额度和捆绑订阅如何影响选型。2026年10月13日AI
订阅通讯

每周日,一封信。写运转中的系统,不写热评。

每周一期。无垃圾邮件。随时退订。