1. 基本概念
Claude Code 通过 Subagents(子代理) 实现并行会话。每个子代理是独立的 Claude 实例,拥有独立的上下文窗口和工具权限,可以同时执行不同任务。
2. 三种并行方式
方式一:Agent 工具(内置)
在对话中,Claude Code 可以通过 Agent 工具同时启动多个子代理:
# 示例:同时研究两个问题
Agent 1: 搜索认证相关代码
Agent 2: 搜索数据库 schema
关键参数:
subagent_type— 指定代理类型(Explore、Plan等)isolation: "worktree"— 在隔离的 git worktree 中运行,避免冲突run_in_background: true— 后台运行,不阻塞当前对话
方式二:自定义 Subagent 文件
在 .claude/agents/ 目录下创建 .md 文件定义自定义代理:
.claude/
└── agents/
├── code-reviewer.md
├── security-checker.md
└── test-writer.md
示例 .claude/agents/code-reviewer.md:
---
name: code-reviewer
model: sonnet
allowed-tools: Read, Grep, Glob
---
你是一个代码审查专家。审查代码质量、可维护性和潜在 bug。
方式三:多终端窗口
最简单的方式 — 打开多个终端窗口,每个运行一个独立的 claude 实例:
# 终端 1
cd ~/project && claude
# 终端 2
cd ~/project && claude
注意:多个实例同时编辑同一文件可能产生冲突,建议配合 git worktree 使用。
3. Git Worktree 隔离(推荐)
Worktree 让每个并行会话在独立的代码副本中工作,避免冲突:
# 在 Claude Code 中输入
/worktree
或通过命令行手动创建:
git worktree add .claude/worktrees/feature-a -b feature-a
git worktree add .claude/worktrees/feature-b -b feature-b
每个 worktree 有独立的工作目录和分支,完成后各自提交 PR。
4. 实用场景示例
| 场景 | 做法 |
|---|---|
| 同时修多个独立 bug | 每个 bug 一个 worktree + 一个 claude 实例 |
| 代码审查 + 写新功能 | 一个会话审查,另一个会话开发 |
| 并行探索多种方案 | 用 Agent 工具同时启动多个 Explore 代理 |
| 大规模重构 | 多个 worktree 代理分别处理不同模块 |
5. 最佳实践
- 用 worktree 隔离写操作 — 多个代理同时写同一目录容易冲突
- 只读任务可以直接并行 — 搜索、分析、审查不需要隔离
- 选择合适的模型:
haiku— 简单检查,速度快成本低sonnet— 常规分析和审查(推荐默认)opus— 复杂架构设计
- 注意 API 成本 — 并行会话意味着多倍的 token 消耗
- 使用绝对路径 — worktree 中的工作目录不同,相对路径可能出错
6. 快速上手
最快的方式是在对话中让 Claude 并行处理:
"请同时帮我:1) 查找所有未使用的导入 2) 检查是否有安全漏洞 3) 分析测试覆盖率"
Claude Code 会自动启动多个子代理并行执行这些任务。