Claude Code 学习站
Mingyu's Library

学习站 / 实战 Tip / B · 并行与效率

多session还是多agent能有效提高开发效率

手头的事一多,是该开更多终端窗口,还是让 Claude 派更多 agent?这页给一个可直接套用的判断方法。

这两个东西经常被当成同一件事的两种做法,其实它们解决的是两个不同方向的问题,不冲突,也不能互相替代。

一句话结论

结论 本站观点不是二选一:多 agent(subagent)解决一次任务内部的宽度——把搜索、测试、研究这类旁支放进独立上下文并行做,只把摘要带回主对话;多 session 解决跨时间的长度——每件独立的事各占一个可命名、可恢复的会话。先问「这是当前任务的旁支,还是另一件事」,答案就出来了。

做法步骤

  1. 先给手头的事分类。官方subagent 的适用条件是:一个旁支任务会用搜索结果、日志、你不会再引用的文件内容淹没主对话——它在自己的 context window 里干完,只返回摘要。反过来,如果是和当前工作无关的另一件事,它就该有自己的 session。
  2. 同一任务要宽度,用 subagent。直接在对话里说「用 subagent 并行研究 auth、database、API 三个模块」即可。官方自 v2.1.198 起 subagent 默认在后台运行,主对话不被阻塞;但注意每个 subagent 的结果最终会回流主对话,开太多、每个都返回长报告,一样挤占上下文。
  3. 跨时间多任务,用多 session。官方session 是绑定项目目录、持续落盘的会话:启动时 claude -n auth-refactor 命名,之后 claude --resume auth-refactor 按名恢复;会话内 /branch 可以复制当前对话去试另一条路,原对话不动。会话管理的完整玩法见 D6 · 会话管理
  4. 多 session 同时改同一个仓库会互踩文件——解法是每个 session 一个 worktree,见 worktree 让多会话不打架
  5. 规模再大,按「谁来协调」升级。官方文档给了四种并行方式的选择标准:
    方式谁协调适用场景
    SubagentsClaude 在一个对话内派发、收结果旁支任务会淹没主对话
    Agent view(claude agents)你把独立任务丢到后台,回头看状态几件互不相关的事同时推进(research preview)
    Agent teams一个 lead agent 拆分、指派、盯进度要 Claude 自己协调一组 worker(实验特性,默认关闭)
    Dynamic workflows一段脚本持有计划,跑几十上百个 subagent全库审计、大规模迁移这类超出单对话协调能力的活
  6. 本站实测佐证。本站观点我们跑了 27 个 agent 做对照实验,结论与上面一致:多 agent 管一次任务内部的宽度,多 session 管跨时间的长度与上下文总量,两轴正交;真正决定并行开发成败的是有没有一份人人遵守的接口契约。全文见《多 Session 还是多 Agent?我跑了 27 个 agent 来回答这个问题》
  7. 成本提醒。官方同时跑多个 session 或 subagent 会成倍消耗 token,计入你套餐的用量与速率限制。

可直接抄的 prompt

我现在有这几件事要做:
1. <任务 A>
2. <任务 B>
3. <任务 C>

请先帮我分类,不要直接开工:
- 哪些是同一个任务内部可以并行的旁支?这类由你用 subagent 在后台做,
  每个 subagent 只返回结论和改动清单,不要把过程输出带回主对话;
- 哪些是相互独立的任务?这类列出来还给我,
  我自己用 claude -n <名字> 各开一个 session 处理。

分类结果先给我确认,确认后再执行属于本会话的部分。

来源与最后核实日期