Claude Code 官方文档把”同时处理多个任务”拆成四种并行方式:Subagents、Agent view、Agent teams、claude-code-usage。选哪种取决于你想自己盯着每个对话、把任务甩出去晚点回来看,还是让 Claude 协调一组工作者。
四种并行方式对照
| 方式 | 提供什么 | 何时用 |
|---|---|---|
| Subagents | 同一会话内的委派工作者,在自己的上下文里做侧任务,只返回摘要 | 侧任务会用搜索结果、日志、文件内容淹没主对话,且不会再引用这些细节 |
Agent view(claude agents,研究预览) | 一个屏幕调度和监控后台运行的会话 | 有多个独立任务想甩出去,一览状态,只在需要时介入 |
| Agent teams(实验性,默认关闭) | 多个协同会话,共享任务列表和 Agent 间消息,由 lead 管理 | 想让 Claude 把项目拆成多块分配下去,并保持 worker 同步 |
| Dynamic workflows | 运行多个 subagent 并互相交叉验证结果的脚本 | 任务规模超出逐轮协调几个 subagent 的能力,或需要结果互相校验:全代码库审计、500 文件迁移、交叉验证的研究、多角度草拟方案 |
所有方式里的工作者本质都是 Claude 会话;要接入其他工具,把它暴露成 MCP server。
两个辅助工具(不算独立的运行方式):
- Worktrees:给每个会话一个独立 git checkout,避免并行会话互相改同一文件。Agent view 会自动把每个派发的会话放进独立 worktree,subagent 也可以各配一个
/batch:一个把大改动拆成 5-30 个 worktree 隔离 subagent、各自开 PR 的 skill,是 subagent + worktree 的打包用法,不是独立协调方式
选择依据三个问题:谁协调工作、worker 之间要不要互相通信、任务是否会碰到同一批文件(碰到就要用 worktree 隔离)。
Subagents 详解
Subagent 是处理特定类型任务的专业化 AI 助手。当侧任务会用你不会再引用的搜索结果、日志、文件内容淹没主对话时用它——subagent 在自己的上下文里做完这些工作,只把摘要带回来。当你反复用同样的指令派生同一类 worker 时,值得把它定义成自定义 subagent。
每个 subagent 运行在独立上下文窗口,有自己的 system prompt、工具权限和独立权限设置。Claude 遇到匹配某个 subagent description 的任务时会委派给它,该 subagent 独立工作后返回结果。
内置 subagent 包括 Explore(只读、专门搜索分析代码库,Explore 和 Plan 会跳过 CLAUDE.md 和主会话的 git status 以保持研究快且省 token)、Plan、general-purpose。其他所有内置和自定义 subagent 都会加载 CLAUDE.md 和 git status。
Subagent 文件存放位置与优先级
| 位置 | 范围 | 优先级 | 创建方式 |
|---|---|---|---|
| Managed settings | 组织级 | 1(最高) | 通过 managed settings 部署 |
--agents CLI flag | 当前会话 | 2 | 启动时传 JSON |
.claude/agents/ | 当前项目 | 3 | 让 Claude 写,或手动创建 |
~/.claude/agents/ | 所有项目 | 4 | 让 Claude 写,或手动创建 |
插件的 agents/ 目录 | 插件启用范围 | 5(最低) | 随插件安装 |
项目 subagent 通过从当前工作目录向上遍历发现,中间每一层的 .claude/agents/ 都会被扫描;多个同名定义时优先用离工作目录最近的那个。identity 只由 frontmatter 的 name 字段决定,子目录路径不影响。
Frontmatter 字段
只有 name 和 description 是必填:
| 字段 | 必填 | 说明 |
|---|---|---|
name | 是 | 小写字母+连字符的唯一标识 |
description | 是 | Claude 何时应委派给这个 subagent |
tools | 否 | 可用工具列表,省略则继承全部工具 |
disallowedTools | 否 | 要拒绝的工具,从继承/指定列表中移除 |
model | 否 | sonnet/opus/haiku/fable/完整模型 ID/inherit,默认 inherit |
permissionMode | 否 | default/acceptEdits/auto/dontAsk/bypassPermissions/plan/manual |
maxTurns | 否 | 停止前的最大 agentic turn 数 |
skills | 否 | 启动时预加载进上下文的 Skills(注入完整内容而非只有 description) |
示例(个人级 code-improver subagent):
---
name: code-improver
description: Scans files and suggests improvements for readability, performance, and best practices. Use after writing or modifying code.
tools: Read, Grep, Glob
model: sonnet
---
You are a code improvement specialist. For each issue you find, explain
the problem, show the current code, and provide an improved version.与 Dynamic Workflows / Skills 的定位区分
Subagent 是”Claude 生成的工作者,逐轮由 Claude 决定下一步,中间结果存在 Claude 上下文里”;而 claude-code-usage 是”脚本掌握计划,中间结果存在脚本变量里”,规模能到每次运行数十到数百个 Agent,且支持”对抗验证”这类质量模式。理论上二者分别对应 Anthropic building-effective-agents 一文中的 Agent 循环与 Orchestrator-Workers/Evaluator-Optimizer workflow 模式。