👁 138 次阅读
Claude Code 到 2026 年 9 月已经发展到 v2.1.261,而『后台代理』是这一年里最影响个人开发者吞吐量的功能组。2026 年 7 月 1 日发布的 v2.1.198 补齐了最后一个缺口——用 claude agents 启动的后台代理,现在在任务结束后会自动 commit、推送分支并打开 GitHub 草稿 PR,全程不用你盯着。多方公开报道把它形容成把异步任务器升级成了『近乎无人值守的 PR 生成器』。
但大多数人还在把它当『多开个终端跑任务』用,白白浪费了这套能力。这篇文章基于官方文档(code.claude.com)和已确认的版本发布记录,把四种并行方式讲清楚,并给出可复制的配置。
一、先搞懂四种并行方式,别一上来就跑
官方 Run agents in parallel 文档把 Claude Code 的并行能力分成四类,每一类解决的瓶颈完全不同。搞混了,任务不仅不快,token 还会翻倍。
| 方式 | 它给你的能力 | 适用场景 | 当前状态 |
|---|---|---|---|
| Subagents | 同一个会话内的委派工人,在独立上下文里跑侧任务,只返回摘要 | 侧任务会把搜索结果、日志、文件内容刷屏,而你之后不会再引用 | 稳定 |
| Agent view | 一个屏幕集中派发和监控所有后台会话(claude agents) |
有多个独立任务,想派出去、瞥一眼状态、只在需要时介入 | Research preview(v2.1.139+) |
| Agent teams | 多个协调会话,共享任务清单和代理间消息,由一个 lead 管理 | 想让 Claude 把项目拆成几块、分派下去并保持同步 | Experimental,默认关闭 |
| Dynamic workflows | 脚本化运行大量子代理并互相交叉校验结果 | 一次干不完、需要多轮的工作:全站审计、500 文件迁移、交叉校验型研究 | 需脚本编排 |
另外两个东西容易混淆,官方特别标注了它们不是跑代理的方式:Worktrees 只是给每个会话一个独立的 git 检出,保证并行会话不互相改同一批文件——Agent view 会自动把每个派发的会话挪进自己的 worktree;/batch 则是一个 skill,让 Claude 把一个大的改动拆成 5 到 30 个 worktree 隔离的子代理各自开 PR,它是子代理加 worktree 的封装用法,不是独立的协调风格。

二、5 分钟上手 agent view 控制台
第一步:打开控制台
claude agents
界面底部是一个输入框,上方是一张随着会话启动而填充的表格。任何时候按 Esc 都会回到 shell;如果你是用 ← 把某个会话丢到后台才打开的,那么 Esc 会回到那个会话。关键点是:你离开之后,会话继续跑,下次打开 agent view 它们还在。
第二步:一次派多个任务
在输入框写一句任务描述,按回车,一个新的后台会话就启动并变成表格中的一行,状态显示它在 working、waiting on you,还是 done。新会话使用 agent view 头部显示的模型,以及该目录下运行 claude 会获得的相同权限模式。
这里有个新手最容易误会的点:你在这里输入的每一个 prompt 都会启动一个全新的会话。再输一句按回车,启动的是第二个并行会话,而不是给第一个会话发追问。想跑几个并行任务,就是这么派出去的。
第三步:peek、reply 与 attach
- 用方向键选中某一行,按
Space打开 peek 面板,看这个会话最近做了什么、需要你怎么回应——不用退出控制台。 - 想直接参与某个会话的完整对话,attach 到那一行,就进入了完整的会话界面。
- agent view 里直接输入
! 后接命令可以就地启动一个新的后台会话。
官方文档给的典型用例:一次性派出『修一个 bug』『评审一个 PR』『排查 flaky test』三行,然后在另一个窗口继续干活,等某一行显示『需要你』或者『有结果』再回去。

三、命令行直接起后台代理:–bg 的四个关键参数
不想进 agent view 界面,可以在 shell 里直接起,返回会话 ID 后就脱离终端运行:
# 启动并立刻脱离(返回 session ID)
claude --bg "refactor the auth module to use the new token service"
# 加预算和轮次上限
claude --bg --max-turns 50 --max-budget-usd 5.00 "run all tests and fix failures"
# 在隔离的 worktree 里跑(防止与当前会话撞文件)
claude --bg --worktree "add input validation to all API endpoints"
# 指定模型和推理强度
claude --bg --model claude-opus-4-8 --effort high "rewrite the retry logic"
四个参数里最该养成习惯的是 --max-budget-usd。后台代理最大的风险不是代码写错,而是『没人看着它一直烧钱』。官方在 agent 文档里明确警告:同时跑多个会话或子代理,token 消耗是相乘的。
四、/fork 和 /subtask:7 月的语义变更最容易搞错
这两个命令在 v2.1.214(2026 年 7 月 18 日)做了拆分,很多人现在还按旧习惯用:
- /fork:现在把你的整个会话复制到一个新的后台会话里,让它作为平行会话继续跑,而你保留原来的窗口。
- /subtask:在会话内启动一个继承你完整上下文的 fork 子代理。子代理的提示词、工具、模型和历史都和父会话一致,所以它的首次请求能复用父会话的 prompt cache,比新起一个子代理更省 token。
官方文档补了一条实用细节:在 fork mode 开启(交互会话中从 v2.1.232 起默认开启)时,Claude Code 会把 Claude 自己派生的子代理跑在后台,fork 和非 fork 的都一样,而且 Claude 不能申请前台执行。反过来,如果把 agent view 关掉,那么 fork 子代理的命令会变成 /fork,而 /subtask 就不可用了。
所以判断用哪个的简单规则:任务需要『和当前对话共享全部上下文』就 /subtask;任务需要『把整个现场搬到平行会话去长期跑』就 /fork。
五、完整工作流:派 3 个代理,回来收 3 个草稿 PR
进入控制台:
claude agents
然后在输入框依次派发(每按一次回车就新增一行):
fix the race condition in cache/manager.ts, add a regression test
review the diff in PR #412 and leave actionable comments
investigate the flaky test in workers/pool.test.ts and root-cause it
三行全部启动后直接关掉控制台去写别的东西。v2.1.198 之后,跑在 git worktree 里的后台代理在结束时会自动 commit → push 分支 → 打开 GitHub 草稿 PR,不需要它停下来等你确认。三个代理全部 done 之后,回 GitHub 看三个草稿 PR,审 diff 直接合并,或者留评论让它们继续改。
注意:/commit-push-pr 在 v2.1.227–229(8 月 10–12 日)之后不再自动批准危险的 git flag(--force、--amend 等),这些会退回给你手动确认——这是个安全的收紧,不是 bug。

六、Notification hook:让代理主动找你,而不是你去盯
v2.1.198 给现有的 Notification hook 加了两个新触发事件:agent_needs_input(会话被阻塞在等你回应)和 agent_completed(会话已跑完)。这俩事件挂在原有的 Notification hook 同一个配置块上,不用重构。
在项目里写一个文件 .claude/settings.json(也可以写到用户全局配置):
{
"hooks": {
"Notification": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "curl -s -X POST -H 'Content-Type: application/json' -d '{\"text\":\"Claude agent done: $CLAUDE_NOTIFICATION_MESSAGE\"}' $SLACK_WEBHOOK_URL"
}
]
}
]
}
}
两个要点:第一,matcher 留空字符串表示对任意 Notification 事件都触发,而 Notification 现在包含了 agent_completed;第二,如果你已经有一个 hooks 键,把 Notification 作为同级兄弟加进去,不要覆盖整个 hooks 对象——这是最常见的踩坑。
上线前先单独跑一次那条 curl 验证 webhook 本身通了,再派一个小代理跑完,确认能收到推送。两个事件适合分不同优先级:公开实践建议 agent_completed 走低噪声频道(工作已暂存,不阻塞),agent_needs_input 走高优先级频道甚至配手机通知(代理卡住了等你决策)。
七、成本与稳定性:三个必须知道的坑
坑一:配额是逐会话独立消耗的
agent view 文档在 Limitations 一节明确写了:每个会话独立消耗你的订阅配额。派 5 个后台代理等于同时烧 5 份配额,这也是为什么要配 --max-budget-usd 而不是靠感觉。另外后台代理的会话会继承父会话正在用的模型(v2.1.198 之后),所以主会话跑 Opus 时,后台代理也跑 Opus。
坑二:后台子代理的权限弹窗会冒到主会话
后台子代理跑到了需要授权的调用时,Claude Code 会把弹窗抬到主会话并标注是哪个子代理在申请;批准让它继续,按 Esc 只拒绝那一次调用而不杀掉整个子代理。在 v2.1.186 之前,后台子代理遇到需要弹窗的调用是直接自动拒绝的——老用户迁移过来时这里的行为差异很大。
坑三:提示词要写清完成标准
后台代理看不见你的意图边界,所以派任务时必须给出明确的分支名和完成判据。公开实践建议的流程就是:起一个后台会话,给出清晰分支名加完成条件,然后走开;等 agent_completed 触发时,草稿 PR 已经等你了。
八、写在最后:一张表看完该用哪个
| 你的需求 | 用什么 | 版本要求 |
|---|---|---|
| 派多个独立任务,稍后回来收 | claude agents(agent view) |
v2.1.139+ |
| shell 里直接起后台任务 | claude --bg |
— |
| 让代理自己提 PR 不找你 | agent view 派发 + worktree | v2.1.198+ |
| 把当前会话搬到平行会话 | /fork |
v2.1.214+ 语义变更 |
| 会话内派带上下文的侧任务 | /subtask |
v2.1.214+ |
| 别让它偷偷烧钱 | --max-budget-usd |
— |
| 跑完主动通知我 | Notification hook | v2.1.198+ |
最后提醒一句:agent view 目前仍是 research preview,界面和快捷键会随功能演进变化,用 claude --version 先确认你至少到了 v2.1.139;agent teams 则是 experimental 且默认关闭,需要显式开启才可用。后台代理这套东西本质上是把『你等着看』的时间挪走,真正的杠杆在于把任务拆成互不依赖的几块,然后一次派出去。
本文依据 Claude Code 官方文档(code.claude.com/docs/en/agents、/agent-view、/sub-agents)以及 v2.1.198(2026-07-01)、v2.1.214(2026-07-18)、v2.1.232(2026-08-13)等已发布版本记录撰写,最新版本号为 v2.1.261(2026-09-04)。界面细节以你本地 claude --version 实际行为为准。