Claude Code 子智能体还是并行会话:该用哪个?
如果 Claude 只需把一个独立的支线任务交给助手、再拿回摘要,就用子智能体。如果你想亲自引导每个任务、保留它的完整上下文,或在 Claude 旁边运行另一家提供方的智能体,就用多个独立会话,每个会话各有自己的 Git 工作树。当这些会话还需要互相沟通时,MAO 就是合适的选择。
- 子智能体在自己的上下文中运行并返回摘要
- 每个并行会话都有自己的 Git 工作树
- Claude Code 自带的并行功能只运行 Claude
当一个会话需要把独立的支线任务(一次搜索、一次测试运行、一次审查)交给助手、并且只需要拿回摘要时,就用 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.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 任务:设置了
isolation: worktree的子智能体,或者从 Agent view 派发的后台会话,它们各自都有工作树。 - 你想逐个任务引导的工作,或来自另一家提供方的审查者:运行独立会话,每个会话各有自己的工作树。
- 必须互相交接工作的会话:为它们加上沟通方式,例如 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。
资料来源
- Create custom subagents:子智能体是什么、它们自己的上下文窗口、内置子智能体、文件位置和前置元数据、调用方式、前台与后台、并发和嵌套上限、
isolation: worktree、用量限制,以及何时改用主对话。 - Run agents in parallel:Claude Code 的并行方式列表、工作者始终是 Claude 会话、通过 MCP 接入其他工具,以及多个会话或子智能体会成倍增加 token 用量。
- Run parallel sessions with worktrees:
claude --worktree、.claude/worktrees/的位置和分支名称,以及子智能体的工作树。 - Manage multiple agents with agent view:
claude agents、研究预览状态,以及每个派发会话进入的工作树。 - Orchestrate teams of Claude Code sessions:Agent teams、如何开启、与子智能体的对比、文件冲突和 token 用量。
- Message your other Claude Code sessions:跨会话消息、版本要求,以及消息包含的内容。
- Manage costs effectively:子智能体请求消耗你的用量、为子智能体选用更小的模型,以及 Agent teams 的 token 费用。
- 如何并行运行多个 Claude Code 智能体和编程智能体的多智能体编排:MAO 的图层、连线、
mao命令和关注。 - 运行 Shell 或智能体、创建工作树图层、连接智能体、笔记和门户、在 CLI 中使用已连接的笔记和添加并选择提供方账号:MAO 的智能体节点、图层、连接、笔记和账号。
检查日期:2026-10-28。
有问题?可以在 Discord 提问,或发邮件到 hello@miguer.com。