后台会话
有些任务不是「问一句答一句」能搞定的:排查一个 flaky 测试要跑十几分钟、跨几百个文件做模式迁移要半小时、把一个长 issue 拆成可执行的 PR 需要研究 + 实现 + 写测试一整套。如果你盯着终端等结果,效率为零。
后台会话解决的就是这个——你把任务甩给 Claude,它自己起一个 agent 在后台跑,立刻返回给你一个 session ID。你可以关终端、去开会、跑别的任务,回头来再 attach 进去看进度。
启动后台 agent:claude –bg
Section titled “启动后台 agent:claude –bg”--bg 让 Claude Code 立刻 fork 出一个后台会话,主进程马上返回。打印出来的是 session ID 和管理命令清单:
claude --bg "investigate the flaky test in auth module"输出大致长这样:
Started background session: 7c5dcf5d
Manage with: claude attach 7c5dcf5d claude logs 7c5dcf5d claude stop 7c5dcf5d claude rm 7c5dcf5d--bg 还能配 --agent 指定一个子代理来跑这次任务(详见 Subagents 深入):
claude --bg --agent security-reviewer "审查这个 PR 的依赖"管理命令家族
Section titled “管理命令家族”后台会话有一整套配套命令:
| 命令 | 作用 |
|---|---|
claude --bg "..." |
启动一个后台 agent |
claude agents |
打开 agent view,监控并行的多个后台会话 |
claude attach <id> |
附加到某个后台会话(接管终端,进入完整对话) |
claude logs <id> |
查看某个会话最近的输出(不接管) |
claude stop <id> |
停止某个后台会话(别名 claude kill) |
claude respawn <id> |
重启一个已停止的会话,保留对话历史 |
claude rm <id> |
从会话列表移除(不删数据,只是不再显示) |
# 启动claude --bg "跑全量测试并修失败用例"
# 查看输出(不接管终端)claude logs 7c5dcf5d
# 看到要追问了,attach 进去对话claude attach 7c5dcf5d
# 在 attach 状态下按 ← 退回 shell,会话继续在后台跑
# 跑偏了,停掉claude stop 7c5dcf5d
# 想换个思路接着跑,重启(保留对话)claude respawn 7c5dcf5drespawn 是亮点——它不像 --resume 那样只能续会话,而是把已停止的进程重新拉起来,对话历史原封不动。适合「让它先停,我想想再让它继续」的场景。
agent view:一屏看全部并行任务
Section titled “agent view:一屏看全部并行任务”claude agents 是后台会话的「指挥中心」——一屏列出所有正在跑、需要你输入、已完成的后台会话:
claude agents它会占满整个终端,每行一个会话,显示状态、当前活动、上次更新时间。状态分几类:
| 状态 | 图标 | 含义 |
|---|---|---|
| Working | 动画 | 正在跑工具或生成回答 |
| Needs input | 黄色 | 等你回应某个具体问题或权限决策 |
| Idle | 灰暗 | 没事干,等下一个 prompt |
| Completed | 绿色 | 任务完成 |
| Failed | 红色 | 出错结束 |
| Stopped | 灰色 | 被 Ctrl+X 或 claude stop 停了 |
行末的 PR #1234 是会话开的 PR,颜色表示 PR 状态(黄=待审/红 CI、绿=通过、紫=已合并、灰=draft)。
- ↑/↓:选择会话
- Space:打开 peek 面板,看最近输出或它在等什么——可以直接回复,不离开 agent view
- Enter 或 →:attach 进去,进入完整对话
- ←(空 prompt 时):detach 退回表格,会话继续后台跑
- Esc:退回 shell
# 只看某个项目的会话claude agents --cwd ~/projects/my-appagent view 不只看新派的——也能把已有交互会话挪进来:在会话里跑 /bg 或在空 prompt 上按 ←,就把它背景化并打开 agent view。
Row summaries 的来源
Section titled “Row summaries 的来源”每行的一句话摘要是用 Haiku-class 模型生成的(每 15 秒刷新一次 + 每轮结束时刷新),让你不用打开 transcript 也能知道这个会话在干啥。Bedrock/Vertex/Foundry 等第三方 provider 上若没配 Haiku 模型,会回退到主模型——可以用 ANTHROPIC_DEFAULT_HAIKU_MODEL 指定。
后台会话的甜区是「需要 Claude 自己走很远的活」:
| 场景 | 为什么适合后台 |
|---|---|
| 排查 flaky 测试 | 要跑测试、读日志、改代码、再跑——十几轮 |
| 大型重构 | 跨多文件、多模块,主会话上下文会爆 |
| 跨 repo 调研 | 探索很多代码,结论摘要才值得回主会话 |
| PR 全流程 | 实现 + 写测试 + 修 lint + 开 PR |
| 长时间监控 | /loop 持续轮询某个状态(详见 定时任务) |
把这种活甩后台,你腾出手干别的,需要输入时 agent view 会标黄提醒你。
文件改动的隔离
Section titled “文件改动的隔离”后台会话默认在你的工作目录里改文件——多个会话同时改会冲突。要真正并行不互相踩,配 --worktree 给每个会话一个独立工作树:
claude --bg --worktree "重构 src/legacy"或者用 agent view 里的 worktree 隔离机制:派发时让每个 agent 在独立 worktree 里跑。
supervisor 进程
Section titled “supervisor 进程”后台会话不需要终端开着就能继续跑——一个独立的 supervisor 进程托管它们。你可以关 agent view、关 shell、开新会话,派出去的任务照样在跑。会话状态持久化到磁盘,跨自动更新和 supervisor 重启都活着;机器睡眠也不会丢,唤醒后从原处继续。彻底关机时运行中的会话会停,重启后可以 respawn 恢复。
后台会话是 Claude Code 的「分身」:
--bg派出去,agents看全景,attach进去对话,respawn失败重拉。把长任务甩给后台,你腾出手干别的——这是吞吐量提升的关键一招。
下一篇看 Git Worktrees 并行,用 --worktree 给每个并行任务一个隔离的工作空间。🌳