跳到正文
Claude Code 子智能体

Claude Code 子智能体还是并行会话:该用哪个?

如果 Claude 只需把一个独立的支线任务交给助手、再拿回摘要,就用子智能体。如果你想亲自引导每个任务、保留它的完整上下文,或在 Claude 旁边运行另一家提供方的智能体,就用多个独立会话,每个会话各有自己的 Git 工作树。当这些会话还需要互相沟通时,MAO 就是合适的选择。

  • 子智能体在自己的上下文中运行并返回摘要
  • 每个并行会话都有自己的 Git 工作树
  • Claude Code 自带的并行功能只运行 Claude
作者:更新于 阅读约 9 分钟

当一个会话需要把独立的支线任务(一次搜索、一次测试运行、一次审查)交给助手、并且只需要拿回摘要时,就用 Claude Code 子智能体。当每个任务大到值得你亲自引导、需要自己完整的上下文,或者应该运行在 Codex 等另一家提供方上时,就并行运行多个会话,每个会话各有自己的 Git 工作树。MAO 面向的是第二种情况:每个会话都是画布上的一个真实终端,位于自己的分支上,连线的会话之间可以互相发送任务。

Claude Code 子智能体是什么?

子智能体是 Claude 在你的会话内部启动的助手。每个子智能体都在自己的上下文窗口中运行,拥有自己的系统提示词、工具权限和权限设置,在那里完成工作,再把摘要返回给主对话。

Claude Code 自带一些内置子智能体,其中包括 Explore(用于搜索代码库的快速只读智能体)、Plan(计划模式下的只读调研)以及一个既能探索又能执行操作的通用智能体。不是分叉(fork)出来的子智能体看不到你的对话历史;分叉的子智能体则会继承它。

你可以把自己的子智能体定义为一个带 YAML 前置元数据的 Markdown 文件,放在 .claude/agents/(当前项目)或 ~/.claude/agents/(你的所有项目)中。只有 name 和 description 是必填的。文档中示例审查者的前置元数据如下:

name: code-reviewer
description: Reviews code for quality and best practices
tools: Read, Glob, Grep
model: sonnet

这四个字段写在 .claude/agents/code-reviewer.md 文件顶部的两行 --- 之间,下面的说明("You are a code reviewer...")就成为系统提示词。Claude 会读取每个子智能体的 description 来决定何时委派。你也可以按名字点名要用某个子智能体("use the code-reviewer subagent on the auth changes"),用 @ 提及它,或者用 claude --agent code-reviewer 让整个会话以该智能体身份运行。

根据 Claude Code 的文档,子智能体的运行方式如下:

  • 前台或后台。前台子智能体会阻塞主对话,直到它完成;后台子智能体则在你继续工作时运行。如果没有任何配置,Claude 从主对话中启动的子智能体会在后台启动。
  • 可同时运行多个。默认情况下,一个会话中最多可同时运行 20 个子智能体(CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS 可修改这个上限),子智能体还可以再启动自己的子智能体,最多到主对话以下三层。
  • 除非隔离,否则共用同一个检出目录。子智能体从主对话的工作目录启动。在它的前置元数据中写上 isolation: worktree,它就会改用一个临时的 Git 工作树;如果它没有做任何改动,这个工作树会被自动删除。
  • 相同的用量限制。子智能体的请求与主对话计入相同的用量限制,文档还提醒:许多子智能体各自返回详细结果,会占用大量上下文。

Claude Code 文档中有哪些并行功能?

除了子智能体,Claude Code 的文档还介绍了几种并行运行工作的方式,它们都由 Claude 会话组成。按文档的说法,要让其他工具参与,需要把它作为 MCP 服务器提供给 Claude。

功能是什么文档中的状态
子智能体在一个会话内工作并返回摘要的工作者可用
claude --worktree <name>在 .claude/worktrees/<name>/ 下的独立工作树中启动会话,使用新分支 worktree-<name>可用
Agent view(claude agents)一个用于派发和监控后台会话的界面;每个会话在编辑文件之前会进入自己的工作树研究预览
Agent teams一个主导会话启动多个队友,它们共享任务列表并直接互相发消息实验性,默认关闭
跨会话消息Claude 可以列出你的其他 Claude Code 会话并给它们发消息;消息只是文本,从不包含历史或文件自 v2.1.224 起可用(原生 Windows 上为 v2.1.234)

文档还列出了动态工作流(一个运行多个子智能体的脚本)和项目(从 claude.ai/code 或桌面应用启动的并行会话串)。Agent teams 通过 CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 开启,文档指出队友之间不会用工作树隔离,因此每个队友应负责一组不同的文件。

独立的并行会话能带给你什么?

独立会话就是每个任务一段完整的对话,你可以直接引导它,它有自己的检出目录,运行你选择的任何智能体。代价是协调它们的工作要由你或你的工具来完成。

  • 独立的上下文。每个会话保留自己的整段对话,而不是交回给别人的一份摘要,你随时都可以和它对话。这适合需要多轮来回沟通的长任务,子智能体文档也说这类任务应放在主对话中。
  • 独立的工作树。给每个会编辑代码的会话分配自己的工作树,这样任何会话改到一半的内容都不会出现在另一个会话脚下。Claude Code 可以替你创建,你也可以直接用 Git:
claude --worktree feature-auth      # terminal 1
claude --worktree fix-session-bug   # terminal 2

# or with git directly
git worktree add ../myapp-api -b agent/api
cd ../myapp-api && claude
  • 混用提供方。一个独立的终端可以在 Claude Code 旁边运行 Codex、Gemini CLI 或其他 CLI 智能体,而 Claude Code 的内置功能都做不到这一点。

同时运行多个会话或子智能体会成倍增加 token 用量,因此文档建议查看其费用页面了解用量和速率限制。尤其是 Agent teams,它使用的 token 明显多于单个会话,因为每个队友都是一个独立的 Claude 实例。

子智能体和并行会话相比如何?

子智能体并行会话(每个一个工作树)
任务规模以摘要结束的独立支线任务需要你多轮引导的任务
由谁协调Claude,从主对话中协调你,或者 Agent view、跨会话消息、编排应用
上下文自己的窗口;只返回摘要每个会话保留完整对话
文件隔离共用检出目录,除非设置了 isolation: worktree每个会话一个工作树
互相沟通向调用者汇报;Claude 命名过的子智能体之间可以互发消息Claude Code 会话之间的跨会话消息
提供方仅 Claude任何 CLI 智能体,各自在自己的终端中
用量计入相同的限制;可以运行在 Haiku 等更小的模型上每个会话消耗自己的 token;同时运行多个会成倍增加用量

应该用哪一种?

从能满足需求的最轻量方案开始,只有任务需要时才升级。

  1. 一次快速改动,或需要大量来回沟通的任务:留在一段主对话中。
  2. 会塞满你上下文的支线任务(搜索大型代码库、阅读日志、运行测试):使用子智能体,只保留它的摘要。
  3. 同时编辑文件的多个独立 Claude 任务:设置了 isolation: worktree 的子智能体,或者从 Agent view 派发的后台会话,它们各自都有工作树。
  4. 你想逐个任务引导的工作,或来自另一家提供方的审查者:运行独立会话,每个会话各有自己的工作树。
  5. 必须互相交接工作的会话:为它们加上沟通方式,例如 Claude Code 会话之间的跨会话消息、Agent teams,或者在会话包含其他提供方时使用 MAO。

MAO 适合在哪里发挥作用?

MAO 属于并行会话这一侧。每个会话都是画布上的一个真实终端,MAO 补上了普通终端缺少的分支、连接和通知。

  • 每个节点都是智能体自己的 CLI。一个节点运行 Claude Code、Codex、Gemini CLI、Grok、OpenCode、Antigravity 或 Shell,使用该智能体自己的登录和模型。由于 Claude Code 节点就是真实的 CLI,它仍然可以委派给自己的子智能体。
  • 图层就是 Git 工作树。把智能体放到一个图层上,它就在自己的分支、自己的工作目录中工作。你在画布上查看差异(diff),准备好后把图层合入 Ground。
  • 连线让会话互相沟通。连接两个智能体后,它们就能用 mao 命令互相发送任务并取回结果。一条连线只授予对另一端节点的访问权限。
  • 共享上下文放在笔记里。与笔记连线的智能体可以读取并追加内容,这样规格说明只需写一次。
  • 关注会主动找到你。当智能体完成、失败或等待批准时,它的节点会显示出来,你还会收到桌面通知。
  • 每个节点一个账号。每个智能体节点都可以使用自己的提供方账号,因此两个 Claude Code 会话可以用两个账号并排运行。

一个工作者在自己的终端里询问连线的审查者,并记录进度:

mao peers
mao ask reviewer "Review the session refresh changes on this branch"
mao note append progress "Refresh path done; reviewer is on it"

常见问题

不会。每个子智能体都在自己的上下文窗口中运行,看不到你的对话历史,并返回一份摘要。分叉的子智能体是例外:它会继承对话。

可以,前提是每个子智能体都有自己的工作树。在子智能体的前置元数据中加上 isolation: worktree,或者让 Claude 为它的智能体使用工作树;否则子智能体会在主对话的检出目录中工作。

子智能体能让你的主上下文更小,因为只有摘要会返回,但它们的请求计入相同的用量限制,你也可以让它们运行在 Haiku 等更小的模型上。无论哪种方式,同时运行多个会话或子智能体都会成倍增加 token 用量。

不能。在 Claude Code 的每种方式中,工作者都是 Claude 会话,其他工具只能作为 MCP 服务器接入。要让 Codex 或 Gemini CLI 作为独立的智能体运行,就在它自己的终端里启动,或者在 MAO 中作为一个节点,并与你的 Claude Code 会话连线。

子智能体把结果汇报回主对话,由主对话管理所有工作。在 Agent teams 中,一个主导会话启动多个队友,它们共享任务列表并直接互相发消息;该功能是实验性的,默认关闭,并且消耗更多 token。

资料来源

检查日期:2026-10-28。

有问题?可以在 Discord 提问,或发邮件到 hello@miguer.com。

在你自己的仓库里试试

把你的智能体放到同一块画布上。

7 天试用,包含画布的全部功能。无需银行卡。

下载 MAO