Appearance
在 Claude Code 的代理视图(claude agents)中,你可以从单一屏幕查看所有后台会话的状态:哪些正在运行、哪些需要你输入、哪些已完成。通过箭头键选择行、空格键展开详情并直接回复,无需离开视图。按 ← 可将当前会话放入后台并回到代理视图。需要 claude --version 确认版本 ≥2.1.139。后台会话由独立 supervisor 进程托管,关闭终端后仍继续运行。
Claude Code 代理视图:管理多个后台会话
从单一屏幕调度和管理多个 Claude Code 会话。代理视图显示每个会话正在做什么以及哪些需要你输入。
代理视图通过 claude agents 打开,是所有后台会话的统一界面:正在运行的、需要你输入的、以及已完成的任务。你可以快速调度新会话,一目了然地查看状态,而不是滚动查看完整对话记录。仅在需要时才介入。每个后台会话都是一个完整的 Claude Code 对话,无需绑定终端即可持续运行。


当你有一系列独立任务不需要全程盯梢时,就用代理视图。把 bug 修复、PR 审查、不稳定测试调查等分配为三行,你可以在另一个窗口继续工作,等哪一行显示需要你或出结果时再回来看。
想要更直接地与某个代理交互时,附着到该行即可进入完整对话。
关于子代理、代理团队和 worktree 的对比,参见并行运行代理。
代理视图处于研究预览阶段,需要 Claude Code v2.1.139 或更新版本。使用
claude --version检查版本。界面和快捷键可能随功能演进而变化。
本页包含:
- 快速开始:让 Claude 在后台处理一个任务,检查进度,需要时介入
- 监控会话状态:状态图标、预览回复、附着、整理、快捷键
- 调度新代理:从代理视图、会话内部或 shell 启动
- [从 shell 管理会话](#从 shell 管理会话)
- 后台会话托管方式:supervisor 进程的工作原理
快速开始
这个步骤演示核心的代理视图循环:调度一个任务,观察其行更新,预览并回复,附着到完整对话。你调度后关闭代理视图,会话仍在后台运行,下次打开时它还在。
在 shell 中运行:
bashclaude agents代理视图打开,底部有输入框,表格会随着会话启动逐步填充。按
Esc随时返回 shell。离开时会话继续运行,下次打开代理视图时重新出现。输入一个描述任务的提示词并按
Enter。一个新的后台会话开始处理该任务,并显示为一行,状态为工作、等待你或已完成。新会话使用代理视图头部显示的模型,以及在该目录下运行claude时相同的权限模式。你在此输入的每个提示都启动一个全新的会话。再输入一个提示并按
Enter会启动第二个会话,而不是向第一个会话发送后续消息。你可以用这种方式并行运行多个会话。每个会话独立消耗订阅配额,因此在大量调度前请先查看限制。
用方向键选中某行,按
Space打开预览面板。它显示会话最近的输出,或它正在等待的问题,而不是完整对话记录。输入回复并按Enter发送,无需离开代理视图。当你需要完整对话时,按
Enter或→附着到该行。会话将接管终端,就像你运行了claude一样。在空提示行按←即可分离并返回表格。如果你已经有一个打开的会话想放入后台,在会话内运行
/bg,或在空提示行按←,一步完成后台化和打开代理视图。该会话继续运行并作为一行出现在列表中。
你可以把 claude agents 作为主要入口点,而不是 claude:从代理视图调度每个任务,需要完整对话时附着,按 ← 返回表格。
监控会话状态
运行 claude agents 打开代理视图。它占据整个终端,按状态分组列出所有会话,置顶的会话和需要你的会话排在顶部。每行显示会话名称、当前活动和上次变化的时长。
默认情况下,列表显示你启动的所有后台会话,跨项目。一个在工作目录 A 中运行的会话和另一个在不同 worktree 中运行的会话都会出现在这里,无论你从哪个目录打开代理视图。要限定到一个项目,传递 --cwd(需要 Claude Code v2.1.141 或更新版本):
bash
claude agents --cwd ~/projects/my-app这只会显示在该目录下启动的会话。已经移入 worktree(位于 ~/projects/my-app/.claude/worktrees/)的会话仍然算作属于 ~/projects/my-app。
你在其他终端中打开的交互式会话不会出现,直到你将其放入后台。子代理和队友不会单独列出。
Pinned
✽ clawd walk cycle Write assets/sprites/clawd-walk.png 3m
Ready for review
∙ jump physics github.com/example/game/pull/2048 ● 2h
Needs input
✻ power-up design needs input: double jump or wall climb? 1m
Working
✽ collision detection Edit src/physics/CollisionSystem.ts 2m
✢ playtest level 3 run 12 · all checkpoints cleared in 4m
Completed
✻ title screen result: menu, options, and credits done 9m
∙ sound effects result: 14 SFX exported to assets/audio 4h
… 6 more读取会话状态
每行开头的图标颜色和动画表示会话状态:
| 状态 | 图标显示 | 含义 |
|---|---|---|
| 工作中 | 动画 | Claude 正在运行工具或生成响应 |
| 需要输入 | 黄色 | Claude 正在等待你的具体问题或许可决定 |
| 空闲 | 变暗 | 会话无任务,等待下一条提示 |
| 已完成 | 绿色 | 任务成功完成 |
| 失败 | 红色 | 任务出错 |
| 已停止 | 灰色 | 会话被 Ctrl+X 或 claude stop 停止 |
另外,图标形状表示底层进程是否在运行:
| 形状 | 含义 |
|---|---|
✻ 或动画 ✽ | 会话进程存活,可立即回复 |
∙ | 进程已退出。仍可预览、回复或附着,Claude 会从断点重启 |
✢ | 一个 /loop 会话在迭代之间休眠。显示运行次数和倒计时 |
行右侧可能出现的 ● 是拉取请求状态指示器,不是状态图标的一部分。前面的数字是该会话已打开的 PR 数量。
代理视图打开时,终端标签栏会显示等待输入的数量:2 awaiting input · claude agents,或 claude agents(无等待)。
后台会话不需要任何终端保持打开状态就能继续工作。一个独立的[supervisor 进程](#supervisor 进程)负责管理它们,因此你可以关闭代理视图、关闭 shell 或启动新的交互式会话,已调度的任务会继续运行。
会话状态在自动更新和 supervisor 重启后持久保存在磁盘上。机器休眠时会话也会保留。唤醒后会话进程恢复,supervisor 会重新连接,不会将时间间隔视为空闲。关机仍会停止运行中的会话;参见关机后会话显示为失败了解如何恢复。
行摘要
每行的一行摘要由一个 Haiku 级别模型生成,这样即使不打开对话记录,你也能知道会话在做什么、需要什么或产生了什么。在会话积极工作时,摘要每 15 秒最多刷新一次,再加上每次 turn 结束时刷新一次。
每次刷新都是通过你的正常 provider 发起一次简短的 Haiku 级别请求,计费和数据使用条款与会话本身相同。
拉取请求状态
当一个会话打开拉取请求时,右侧会出现一个状态点,链接到 PR(在支持超链接的终端中)。如果会话打开了多个 PR,数字会出现在点之前,颜色反映最需要关注的那个。
| 点颜色 | 拉取请求状态 |
|---|---|
| 黄色 | 等待检查或审查,或检查失败 |
| 绿色 | 检查通过且无阻碍审查 |
| 紫色 | 已合并 |
| 灰色 | 草稿或已关闭 |
对大多数任务来说,这一行就是你获取结果的地方:当点变绿时,审查并合并 PR。
预览和回复
在选中的行上按 Space 打开预览面板。它会显示会话需要你做什么、最近的输出以及它打开的任何 PR。大多数情况下这就够了,你不需要打开完整对话记录。
在预览面板中键入回复并按 Enter 发送给该会话。当会话正在询问一个多项选择题时,预览面板会显示选项,你可以按数字键选择。对于其他被阻塞的会话,按 Tab 填充输入框一个建议回复,编辑后再发送。在回复前加 ! 可以发送 Bash 命令。
使用 ↑ 和 ↓ 在不关闭面板的情况下预览相邻会话,或按 → 附着。
附着到会话
在选中的行上按 Enter 或 → 附着。代理视图被完整的交互式会话取代,就像你在这个目录下运行了 claude 一样。附着时,Claude 会发布一个简短的回顾,说明你不在时发生了什么。
附着后,会话的行为与其他任何 Claude Code 会话相同:所有命令、快捷键和功能都可用。
在空提示行按 ← 分离并返回代理视图。如果对话框获得焦点且不响应 ←,按 Ctrl+Z 立即分离。
分离从不停止后台会话:←、Ctrl+C、Ctrl+D、Ctrl+Z 和 /exit 都让它继续运行。要从内部结束会话,运行 /stop。
在你已调度或转入后台一个会话后,在任何 Claude Code 会话中(不仅仅是那些从代理视图附着的)按空提示行上的 ← 都会将当前会话放入后台并打开代理视图,选中该行。这样你就可以在不离开终端的情况下切换会话。即使是没有对话历史的全新会话也会创建该行,因此按 → 可以返回它。当该行是唯一一行时,代理视图会在其下方显示一个入门提示。你可以在 /config 中关闭此快捷键(leftArrowOpensAgents 设置)。
整理列表
代理视图按组排列会话,需要输入的在最上面,Ready for review 和 Needs input 在 Working 和 Completed 之上。这些组名与上面的状态并非一一对应:当会话有打开的 PR 时,它会移到 Ready for review;Completed 集合了已完成、失败和已停止的会话。按 Ctrl+S 切换为按目录分组。你的选择会在不同运行间保持。
在组内:
- 按
Ctrl+T将会话置顶并[保持其进程运行](#supervisor 进程)(空闲时) - 按
Shift+↑或Shift+↓重新排序会话 - 按
Ctrl+R重命名会话 - 按组标题上的
Enter折叠该组
要从列表中移除会话,先按 Ctrl+X 停止它,再在两秒内按 Ctrl+X 删除。按组标题上的 Ctrl+X 会在确认后删除该组中的所有会话。
删除会将会话从代理视图中移除。如果 Claude 为会话创建了一个 worktree,删除也会移除该 worktree,包括其中所有未提交的更改,因此请先推送或提交你想保留的工作。你自己创建并在其中启动会话的 worktree 会保留原样。对话记录保留在你的本地机器上,可通过 claude --resume 使用。
较旧的已完成会话会折叠成一行 … N more,保持列表简短。失败和有打开 PR 的会话始终保持可见。
过滤会话
在调度输入框中键入内容即可过滤,而不是调度:
| 过滤条件 | 显示 |
|---|---|
a:<name> | 运行指定代理的会话 |
s:<state> | 处于给定状态的会话,例如 s:working。也接受 s:blocked 表示所有等待你的会话 |
#<number> 或 PR URL | 正在处理该 PR 的会话 |
快捷键
在代理视图中按 ? 查看所有快捷键。下表总结了它们。
| 快捷键 | 操作 |
|---|---|
↑ / ↓ | 在行间移动 |
Enter | 附着到选中的会话,如果输入框中有文本则调度 |
Space | 打开或关闭选中会话的预览面板 |
Shift+Enter | 调度并立即附着到新会话 |
→ | 附着到选中的会话 |
Alt+1..Alt+9 | 附着到当前聚焦会话所在目录中的第 1-9 个会话 |
Tab | 在空输入框时浏览所有子代理。否则应用高亮的建议 |
Ctrl+S | 切换分组方式:按状态或按目录 |
Ctrl+T | 置顶或取消置顶选中的会话 |
Ctrl+R | 重命名选中的会话 |
Ctrl+G | 在 $VISUAL 或 $EDITOR 中打开调度提示 |
Ctrl+X | 停止会话;两秒内再次按下则删除 |
Shift+↑ / Shift+↓ | 重新排序选中的会话 |
Esc | 关闭预览面板、清空输入或退出 |
Ctrl+C | 清空输入;按两次退出 |
? | 显示所有快捷键 |
调度新代理
你可以从代理视图、从现有的交互式会话发送到后台,或直接从 shell 启动新的后台会话。
从代理视图
在代理视图底部的输入框中输入提示并按 Enter 即可启动新的后台会话。会话名称自动从提示中生成;之后可以用 Ctrl+R 重命名。
将图片粘贴到提示中,可以将截图或示意图与任务一起发送。
在提示前添加特定前缀或提及内容可控制会话的启动方式:
| 输入 | 效果 |
|---|---|
<agent-name> <prompt> | 如果第一个词匹配自定义子代理名称,则该子代理作为会话的主代理运行 |
@<agent-name> | 在提示中任意位置提及自定义子代理,作为主代理运行 |
@<repo> | 提及你打开代理视图的目录下的仓库,在该仓库目录下运行会话 |
/<skill> | 建议技能作为提示进行调度 |
#<number> 或拉取请求 URL | 如果已有会话正在处理该 PR,则选中它而不是调度新会话 |
Shift+Enter | 调度并立即附着到新会话 |
将重复性任务打包成技能,可以让你在代理视图中反复启动相同的工作流,而无需重新输入提示。
当同一个 @name 同时匹配子代理和同级别的仓库时,子代理优先。第一个词的裸匹配也适用:如果提示恰好以你的一个子代理名称开头,则会调度该子代理而不是作为纯文本处理。明确时使用 @ 形式,或以不同的词开头以避免匹配。
调度到特定目录
新会话在你打开代理视图的目录中运行。要指向不同目录:
- 在该目录中运行
claude agents。 - 在包含多个仓库的父目录中运行
claude agents,在提示中通过@<repo>指定仓库在该目录下运行会话。 - 从 shell
cd进入该目录并运行claude --bg "<prompt>"。
当代理视图按目录分组时,高亮行的目录会成为调度目标,因此你可以滚动到某个组,直接调度到该组中而无需重新键入路径。
从会话内部
运行 /background 或其别名 /bg 将当前对话移入后台会话。传递提示如 /bg run the test suite and fix any failures 可先给出一个指令。
从交互式会话移入后台会启动一个新进程,从已保存的对话恢复,因此正在运行的子代理、监视器和后台命令不会随之迁移。如果有任何正在运行,Claude 会要求你确认后再移入后台。一旦进入后台,会话可以启动新的子代理、监视器和后台命令,这些会在后续分离和重新附着时持续运行。
原始启动时的配置标志会传递给后台会话,因此其 MCP 服务器、设置和回退模型仍然生效:
--mcp-config和--strict-mcp-config--settings--add-dir--plugin-dir--fallback-model--allow-dangerously-skip-permissions
在会话期间通过 /add-dir 添加的目录也会传递。
携带 --allow-dangerously-skip-permissions 进入后台使得 bypassPermissions 在后台会话中可达,但不会授予任何新东西。该模式仍然要求一次性的交互式接受,如同权限模式、模型和努力程度中所述。
从 shell
传递 --bg 启动一个直接进入后台的会话:
bash
claude --bg "investigate the flaky SettingsChangeDetector test"要运行特定子代理作为会话的主代理,结合 --bg 和 --agent:
bash
claude --agent code-reviewer --bg "address review comments on PR 1234"传递 --name 设置会话在代理视图中的显示名称(而不是自动生成的名称):
bash
claude --bg --name "flaky-test-fix" "investigate the flaky SettingsChangeDetector test"后台化后,Claude 会打印会话的短 ID 和管理命令。当传递 --name 时,名称显示在短 ID 之后:
backgrounded · 7c5dcf5d · flaky-test-fix
claude agents list sessions
claude attach 7c5dcf5d open in this terminal
claude logs 7c5dcf5d show recent output
claude stop 7c5dcf5d stop this session文件编辑如何隔离
每个后台会话(无论从代理视图、/bg 还是 claude --bg 启动)都从你的工作目录开始。在编辑文件之前,Claude 将会话移入一个隔离的 git worktree,位于 .claude/worktrees/ 下,这样并行会话可以读取同一个 checkout,但各自写入自己的副本。
在以下情况下,Claude 会跳过 worktree:
- 会话已经在链接的 git worktree 内(无论是 Claude 在
.claude/worktrees/下创建的,还是你使用git worktree add在其他地方创建的) - 工作目录不是 git 仓库且没有配置
WorktreeCreate钩子 - 写入操作发生在工作目录之外
要关闭某个仓库的 worktree 隔离(当 git worktree 不实用时),将 worktree.bgIsolation 设置为 "none"。后台会话随后直接编辑你的工作副本,而不会先移入 worktree。将该设置添加到项目的 .claude/settings.json:
json
{
"worktree": {
"bgIsolation": "none"
}
}
worktree.bgIsolation设置需要 Claude Code v2.1.143 或更新版本。
在非 git 仓库中,会话直接写入工作目录,彼此之间没有隔离,因此避免调度并行编辑相同文件的会话。如果你使用不同的版本控制系统,配置一个 WorktreeCreate 钩子,Claude 会像对待 git 那样隔离编辑。
在代理视图中删除会话(两次 Ctrl+X)会移除 Claude 为其创建的 worktree,包括所有未提交的更改,因此先合并或推送你想保留的更改。从 shell 使用 [claude rm](#从 shell 管理会话) 删除会保留有未提交更改的 worktree,并打印其路径以便你自行清理。你自己创建的并在其中启动会话的 worktree 无论哪种方式都会保留。
要查找会话的 worktree 路径,预览会话或附着并检查其工作目录。
要让子代理始终在其自己的 worktree 中运行(无论它如何启动),在其 frontmatter 中设置 isolation: worktree(参见子代理支持的 frontmatter 字段)。
设置模型
代理视图头部显示的模型名称是调度的默认值。你从输入框启动的新会话使用此模型,该模型来自你的用户设置中的 model 设置。通过在 /model 选择器中按 d 设置为模型,或直接编辑设置。要为整个代理视图会话覆盖它,在打开代理视图时传递 --model。参见权限模式、模型和努力程度。
每个后台会话可以运行不同的模型。要为单个会话覆盖:
- 从 shell 传递
--model配合claude --bg。 - 附着到正在运行的会话并在其中运行
/model。更改在会话被重新 spawn 后仍然保留。 - 调度一个在其 frontmatter 中设置了
model字段的子代理。
权限模式、模型和努力程度
后台会话从其运行的目录读取设置,就像你在那里启动 claude 一样。
权限模式取决于你如何启动会话。使用 /bg 或 ← 将现有会话放入后台会保持当前的权限模式,因此你切换到 acceptEdits 或 auto 的会话在分离后仍处于该模式。从代理视图输入框调度或从 shell 运行 claude --bg 使用该目录设置中的 defaultMode,或已调度子代理的 frontmatter 中的 permissionMode。
你启动后台会话时的权限模式会在 supervisor 后来[停止并重启](#supervisor 进程)会话进程时保留。使用 claude --bg --dangerously-skip-permissions 或 claude --bg --permission-mode bypassPermissions 启动的会话在该重启后仍保持 bypassPermissions,而不是回退到目录的 defaultMode。
要为从代理视图调度的每个会话设置默认值,在打开它时传递 --permission-mode、--model 或 --effort 中的任意一个:
bash
claude agents --permission-mode plan --model opus --effort highclaude agents 也接受 --dangerously-skip-permissions 作为 --permission-mode bypassPermissions 的简写,以及 --allow-dangerously-skip-permissions 使 bypassPermissions 在每个已调度会话的 Shift+Tab 循环中可用,而无需以该模式启动。两者都匹配顶级 CLI 标志。
将
--permission-mode、--model、--effort或--dangerously-skip-permissions传递给claude agents需要 Claude Code v2.1.142 或更新版本。--allow-dangerously-skip-permissions在claude agents上需要 v2.1.143 或更新版本。早期版本会拒绝这些标志并报未知选项错误。
活动默认值显示在调度输入框下方的页脚中。
如果没有这些标志,会话使用该目录设置中的 defaultMode 或已调度子代理的 frontmatter 中的 permissionMode,以及代理视图头部显示的模型。
使用 bypassPermissions 或 auto 会被拒绝,直到你以交互方式运行 claude 并使用该模式一次并接受,因为这些模式会允许你不在场时未经批准就执行操作。无论你是将模式传递给 claude agents 还是 claude --bg --permission-mode,同样适用。
设置、插件和 MCP 服务器
代理视图接受与 claude 相同的配置标志来加载设置、插件、MCP 服务器和额外目录。这些标志需要 Claude Code v2.1.142 或更新版本。每个标志应用于代理视图本身,并传递给你从它调度的每个会话,因此以这种方式加载的插件或 MCP 服务器在那些会话中也可用。
| 标志 | 效果 |
|---|---|
--settings <file-or-json> | 覆盖代理视图和已调度会话的设置 |
--add-dir <path> | 授予对额外目录的文件访问权限 |
--plugin-dir <path> | 从本地目录加载插件 |
--mcp-config <file-or-json> | 从配置文件或 JSON 字符串加载 MCP 服务器 |
--strict-mcp-config | 仅使用 --mcp-config 中的 MCP 服务器,忽略其他 MCP 配置 |
对 --add-dir、--plugin-dir 或 --mcp-config,每个值重复一次。空格分隔的形式(如 --add-dir a b c)在 claude agents 中不受支持。
以下示例用设置覆盖和一个额外目录打开代理视图:
bash
claude agents --settings ./ci-settings.json --add-dir ../shared-lib从 shell 管理会话
每个后台会话都有一个短 ID,可以在 shell 中使用。当你用 claude --bg 启动会话时,会打印该 ID,同时每个会话的 ID 是其目录名位于 ~/.claude/jobs/ 下。以下命令在脚本编写或不想打开代理视图时非常有用。
| 命令 | 目的 |
|---|---|
claude agents | 打开代理视图 |
claude agents --cwd <path> | 打开代理视图,范围限定在 <path> 下启动的会话 |
claude agents --json | 以 JSON 数组打印实时会话并退出。每个条目包含 pid、cwd、kind、startedAt,以及 sessionId、name 和 status(如果设置)。可结合 --cwd <path> 过滤 |
claude attach <id> | 附着到该终端的会话 |
claude logs <id> | 打印会话最近的输出 |
claude stop <id> | 停止会话。也接受 claude kill |
claude respawn <id> | 重启会话(运行中或已停止),保留对话,例如为了使用更新的 Claude Code 二进制文件 |
claude respawn --all | 重启所有正在运行的会话,例如将所有会话一次性切换到更新后的 Claude Code 二进制文件 |
claude rm <id> | 从列表中移除会话。如果 Claude 为该会话创建了 worktree 且没有未提交的更改,则移除它;否则打印 worktree 路径以便你自行清理。你自己创建的 worktree 保留原样。对话记录保留在你的本地机器上,可通过 claude --resume 使用 |
claude daemon status | 打印 [supervisor](#supervisor 进程) 的状态、版本、socket 目录和工作进程数 |
后台会话托管方式
代理视图中列出的每个会话都被视为后台会话,无论你当前是否附着到它。相比之下,通过直接运行 claude 启动的会话绑定到该终端,关闭时结束,除非你将其放入后台。
Supervisor 进程
后台会话由一个每用户一个的 supervisor 进程托管,独立于你的终端和代理视图。supervisor 在你第一次将会话放入后台或打开代理视图时自动启动,你无需直接管理它。
supervisor 及其会话使用与你的交互式会话相同的凭据进行认证,并且除了模型 API 外不建立额外的网络连接。
每个后台会话都是一个独立的 Claude Code 进程,由 supervisor 管理而不是绑定到你的终端。一个正在积极工作、等待你的输入或附着有终端的会话会保持其进程运行。正在运行的后台 shell 命令、子代理、工作流或监视器计为活跃工作,因此长期运行的进程(如开发服务器)会让会话保持存活。
一旦会话完成且未附着约一小时后,supervisor 会停止其进程以释放资源。你使用 Ctrl+T 置顶的会话不受此限制,空闲时保持进程运行。对话记录和状态无论如何都保留在磁盘上,下次你附着、预览或回复已停止的会话时,supervisor 会从断点处启动一个新进程。当所有会话都已完成且没有终端连接时,supervisor 自身会退出,下次需要时再重新启动。
当主机内存不足时,supervisor 会先停止空闲的非置顶会话,只有在无法释放内存时才停止空闲的置顶会话。
supervisor 会监视磁盘上已安装的 Claude Code 二进制文件,并在常规自动更新完成后重启到新版本。这是本地文件监视,不是网络检查。后台会话是分离的进程,因此它们在重启期间继续运行,新的 supervisor 会重新连接它们。空闲的置顶会话也会就地重启到新版本,这样无需你重新附着就能接受到更新。
状态存储位置
会话状态存储在你的 Claude Code 配置目录下。如果你设置了 CLAUDE_CONFIG_DIR,supervisor 会使用该目录而不是 ~/.claude,并作为独立的实例运行,拥有自己的会话。
| 路径 | 内容 |
|---|---|
~/.claude/daemon.log | Supervisor 日志 |
~/.claude/daemon/roster.json | 运行中的后台会话列表,用于重启后重新连接 |
~/.claude/jobs/<id>/state.json | 每个会话的状态,显示在代理视图中 |
要检查这些状态而不直接读取文件,运行 claude daemon status。它报告 supervisor 是否可达、进程 ID 和版本、socket 目录以及有多少后台会话在线。/doctor 也包含相同检查的汇总。在 Windows 上,claude daemon status 会提供守护进程的管道密钥文件被锁定或无法读取时的底层文件错误,而不是报告通用的连接失败。
关闭代理视图
要完全关闭后台代理和代理视图,将 disableAgentView 设置设为 true,或设置 CLAUDE_CODE_DISABLE_AGENT_VIEW 环境变量。管理员可以通过托管设置强制执行。
故障排查
claude agents 列出子代理而不是打开代理视图
如果 claude agents 打印一个计数,后跟你配置的子代理然后退出,说明你的环境中代理视图不可用。早期版本在某些环境中不打开代理视图,包括通过 Bedrock、Vertex AI 或 Foundry 连接时。运行 claude update 安装最新版本。
如果更新后代理视图仍然未打开,检查是否通过设置或环境变量关闭了它。
代理视图打开但没有会话
在你调度第一个会话之前,代理视图会显示一个简短的入门提示,包含示例提示,而不是会话列表。在底部的输入框中输入提示并按 Enter 即可调度第一个会话。
无法打开代理,因为后台任务正在运行
如果按 ← 将当前会话放入后台时显示 Cannot open agents — N background task(s) running,说明会话中有正在进行的任务(如子代理、工作流或后台 shell 命令),快捷键不会静默丢弃它们。运行 /tasks 查看正在运行的内容,然后运行 /bg 确认丢弃它们。参见从会话内部了解什么会迁移什么不会。
提示被拒绝,因为太短
调度输入框期望任务描述,而不是对话开场白。少于四个字符的提示会被拒绝,并显示 Too short 提示,以防止误操作启动会话。描述你想让会话做什么,例如 investigate the flaky checkout test。
关机后会话显示为失败
关闭或重启机器会停止正在运行的后台会话,因此当你下次打开代理视图时它们显示为失败。附着、预览或回复其中任何一个,会话就会从断点处重启。
仅休眠不会导致此问题。会话在休眠期间被保留,唤醒后 supervisor 会重新连接它们。
附着后会话响应缓慢
一旦会话完成且未附着约一小时后,supervisor 会停止其进程以释放资源。附着时从断点启动一个新进程,这需要一些时间。正在工作、等待你或置顶的会话不会被这样停止,因此用 Ctrl+T 置顶一个会话可使其保持响应。
.claude/worktrees/ 占用过多空间
在代理视图中删除会话会移除 Claude 为其创建的 worktree。claude rm 会保留有未提交更改的 worktree 并打印其路径。在项目目录中使用 git worktree list 列出残留条目,并使用 git worktree remove <path> 移除每个条目。参见清理 worktrees。
限制
代理视图处于研究预览阶段,存在以下限制:
- 速率限制适用:后台会话与交互式会话一样消耗你的订阅配额,因此同时运行十个代理大约比运行一个快十倍消耗配额。
- 会话是本地:后台会话运行在你的机器上。它们会在休眠期间保留,但如果机器关机则停止。
- Claude 创建的 worktree 会在代理视图中随会话一起删除:在删除一个编辑了其 worktree 中文件的会话之前,请先合并或推送更改。
claude rm保留有未提交更改的 worktree;你自己创建的 worktree 保持原样。
相关资源
关于其他并行运行 Claude 的方式,参见:
- 并行运行代理:比较代理视图与子代理、代理团队和 worktree
- 代理团队:协调多个互相发送消息的会话
- Claude Code 网页版:在托管云环境中运行会话,而不是本地
常见问题
claude agents 命令无法打开代理视图怎么办?
如果 claude agents 仅列出子代理或报错,先运行 claude update 确保版本 ≥2.1.139。检查是否设置了 disableAgentView 为 true 或 CLAUDE_CODE_DISABLE_AGENT_VIEW 环境变量。如果仍不生效,确认你使用的不是 Bedrock、Vertex AI 或 Foundry 等受限环境,这些环境在早期版本中可能不支持。
后台会话耗尽了配额,如何管理?
每个后台会话独立计费。同时运行多个会话会加速消耗配额。在大量调度前,先确认你的订阅余量。建议从少量并行会话开始,根据实际需要调整数量。
删除会话时 worktree 丢失了未提交的更改怎么找回?
在代理视图中删除会话(Ctrl+X 两次)会连带删除 Claude 创建的 worktree,包括未提交的更改。在删除前先使用 git add/git commit 或推送更改。如果使用 claude rm 删除,worktree 有未提交更改时不会被删除,而是打印路径让你自行处理。