使用 agent view 管理多个代理
从一个屏幕调度和管理多个 Claude Code 会话。Agent view 显示每个会话正在做什么以及哪些会话需要你的输入。
Agent view 通过 claude agents 打开,是所有后台会话的一个屏幕:什么正在运行、什么需要你的输入、什么已完成。调度新会话,一目了然地查看它们的状态而不是滚动浏览记录,只在需要时才介入。会话在没有终端连接的情况下继续在后台运行。
当你有多个独立任务 Claude 可以同时处理时,使用 agent view,例如修复 bug、审查拉取请求或调查日志。当你想一起解决问题时,附加到一个会话并像往常一样交互式地使用 Claude Code。会话在 agent view 中独立运行,仅向你报告。要与 subagents、agent teams 和 worktrees 进行比较,请参阅 并行运行代理。
Agent view 是研究预览版,需要 Claude Code v2.1.139 或更高版本。使用 claude --version 检查你的版本。随着功能的发展,界面和快捷键可能会改变,管理员可以通过 disableAgentView 托管设置为组织禁用 agent view。
本页涵盖:
- 快速开始
- 使用 agent view 监控会话,包括状态图标、窥视和回复、附加、组织和快捷键
- 调度新代理,从 agent view、从会话内部或从 shell
- 从 shell 管理会话
- 后台会话如何被托管,由监督进程
快速开始
本演练打开 agent view、调度一个会话、从窥视面板回复,以及附加到完整对话。
打开 agent view
从你的 shell,运行:
claude agents
Agent view 打开,底部有一个输入框,当会话启动时表格会填充。随时按 Esc 退出。你的会话继续运行。
调度一个会话
在输入框中输入提示并按 Enter。一个新会话启动并显示为一行,显示它是否正在工作、等待你或已完成。重复以并行运行尽可能多的会话。
窥视和回复
用箭头键选择一行,按 Space 查看会话正在做什么或它需要什么。输入回复并按 Enter 发送,无需离开 agent view。
附加和分离
在一行上按 Enter 或 → 在你想要完整对话时附加。会话接管终端,就像你运行了 claude 一样。在空提示上按 ← 分离并返回表格。
要将现有的交互式会话带入 agent view,在其中运行 /bg,或在空提示上按 ← 以后台会话并在一步中打开 agent view。会话继续在后台运行并显示为一行。要直接从 shell 启动新的后台会话,运行 claude --bg "<prompt>"。
你可以使用 claude agents 作为你的主要入口点而不是 claude:从 agent view 调度每个任务,当你想要完整对话时附加,按 ← 返回表格。
使用 agent view 监控会话
运行 claude agents 打开 agent view。它接管整个终端并列出按状态分组的每个会话,固定的会话和需要你的会话在顶部。每行显示会话的名称、当前活动和上次更改的时间。
列表对你的机器是全局的,包括每个后台会话,无论它在哪个项目或 worktree 中工作。你在其他终端中打开的交互式会话不会出现,直到你 后台它们,subagents 在会话内运行不会列为单独的行。
Pinned
✽ clawd walk cycle Write assets/sprites/clawd-walk.png 3m
Ready for review
∙ jump physics github.com/anthropics/example/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 工作时,意味着会话是活跃的,你可以立即回复。∙ 意味着进程已退出,但你仍然可以窥视、回复或附加:Claude 从中断处重新启动会话。✢ 是一个 /loop 会话在迭代之间休眠,行显示其运行计数和下一次迭代的倒计时。
后台会话不需要任何打开的终端来继续工作。一个单独的 监督进程 运行它们,所以你可以关闭 agent view、关闭你的 shell 或启动一个新的交互式会话,你的调度工作继续进行。
会话在磁盘上持久化:关闭你的终端或自动更新不会丢失它们,重新打开 claude agents 显示它们全部。如果你的机器休眠或关闭,运行中的会话停止;用 claude respawn --all 重新启动它们。
每行中的单行摘要由你配置的 Haiku-class 模型 生成,所以行可以告诉你会话正在做什么、需要什么或生成了什么,无需打开记录。每个摘要是通过你的正常提供商的一个短 Haiku-class 请求,按与会话本身相同的 数据使用条款 计费和处理。
当会话打开拉取请求时,行显示 PR 链接和其 CI 检查的状态指示器。对于大多数任务,这行是你收集工作的方式:当其检查通过时审查和合并拉取请求。
窥视和回复
在选定的行上按 Space 打开窥视面板。它显示会话需要什么、其最近的输出和它打开的任何拉取请求。大多数时候这就足够了,你永远不需要打开完整的记录。
在窥视面板中输入回复并按 Enter 将其发送到该会话。当会话提出多选问题时,窥视面板显示选项,你可以按数字键选择一个。对于其他被阻止的会话,按 Tab 用建议的回复填充输入,你可以在发送前编辑。用 ! 前缀回复以发送 Bash 命令。
使用 ↑ 和 ↓ 窥视相邻会话而不关闭面板,或 → 附加。
附加到会话
在选定的行上按 Enter 或 → 附加,或按 Alt+1 到 Alt+9 直接附加到焦点组中的第 N 个会话。Agent view 被完整的交互式会话替换,就像你在该目录中运行了 claude 一样。当你附加时,Claude 发布一个关于你离开时发生的事情的简短回顾。
附加时,会话的行为像任何其他 Claude Code 会话:每个 命令、快捷键和功能都有效。
在空提示上按 ← 分离并返回 agent view。如果对话有焦点且不响应 ←,按 Ctrl+Z 立即分离。
分离永远不会停止后台会话:←、Ctrl+C、Ctrl+D、Ctrl+Z 和 /exit 都让它运行。要从内部结束会话,运行 /stop。
一旦你使用了 agent view,在空提示上按 ← 从任何 Claude Code 会话工作,不仅仅是你附加的会话。它打开 agent view,你的当前会话预选,所以你可以在不离开终端的情况下切换会话。
组织列表
Agent view 按状态分组会话,需要输入的会话在工作或完成的会话上方。按 Ctrl+S 改为按目录分组。你的选择在运行中保存。在一个组内,用 Ctrl+T 将会话固定到顶部,用 Shift+↑ 和 Shift+↓ 重新排序,或在组标题上按 Enter 折叠它。要删除会话,按 Ctrl+X 停止它,在两秒内再按 Ctrl+X 删除它。在组标题上按 Ctrl+X 在确认后删除该组中的每个会话。
较旧的已完成会话折叠成"… N more"行以保持列表简短。失败和有打开拉取请求的会话始终保持可见。
过滤列表
在调度输入中输入以过滤而不是调度:
| 过滤 | 显示 |
|---|---|
a:<name> |
运行命名代理的会话 |
s:<state> |
给定状态的会话,例如 s:blocked 用于需要你的会话 |
#<number> 或 PR URL |
处理该拉取请求的会话 |
快捷键
在 agent view 中按 ? 查看每个快捷键。最常见的:
| 快捷键 | 操作 |
|---|---|
↑ / ↓ |
在行之间移动 |
Enter |
附加到选定的会话,或如果输入中有文本则调度 |
Space |
打开或关闭选定会话的窥视面板 |
Shift+Enter |
调度并立即附加 |
→ |
附加到选定的会话 |
Alt+1..Alt+9 |
附加到焦点组中的第 N 个会话 |
Tab |
浏览所有 subagents,或应用突出显示的建议 |
Ctrl+S |
在状态和目录之间切换分组 |
Ctrl+T |
固定或取消固定选定的会话 |
Ctrl+R |
重命名选定的会话 |
Ctrl+G |
在你的 $EDITOR 中打开调度提示 |
Ctrl+X |
停止会话;在两秒内再按一次删除它 |
Shift+↑ / Shift+↓ |
重新排序选定的会话 |
Esc |
关闭窥视面板、清除输入或退出 |
Ctrl+C |
清除输入;按两次退出 |
? |
显示所有快捷键 |
调度新代理
你可以从 agent view 调度新的后台会话、将现有的交互式会话发送到后台,或直接从 shell 启动一个。
从 agent view
在 agent view 底部的输入框中输入提示并按 Enter 启动新的后台会话。会话从提示自动命名。你可以稍后用 Ctrl+R 重命名它。将图像粘贴到提示中以包含任务的屏幕截图或图表。
前缀或提及提示的部分以控制会话如何启动:
| 输入 | 效果 |
|---|---|
<agent-name> <prompt> |
如果第一个单词匹配自定义 subagent 名称,该 subagent 作为会话的主代理运行,使用其 frontmatter 中的配置 |
@<agent-name> |
在提示中的任何地方提及自定义 subagent 以作为主代理运行它 |
@<repo> |
提及你打开 agent view 的目录下的存储库以在那里运行会话 |
/<skill> |
建议 skills 作为提示调度 |
#<number> 或拉取请求 URL |
如果会话已在处理该 PR,选择它而不是调度 |
Shift+Enter |
调度并立即附加到新会话 |
输入 / 调度一个 skill。将重复任务打包为 skill 让你从 agent view 多次启动相同的工作流而无需重新输入提示。在空输入上按 Tab 浏览每个可调度的 subagent,或在显示建议时应用突出显示的建议。
调度到特定目录
新会话在你打开 agent view 的目录中运行。要针对不同的目录:
- 在该目录中打开
claude agents。 - 在保存多个存储库的父目录中打开
claude agents,并在提示中用@<repo>提及一个以在那里运行会话。 - 从 shell,
cd进入目录并运行claude --bg "<prompt>"。
当 agent view 按目录分组时,突出显示的行的目录成为调度目标,所以你可以滚动到一个组并在不重新输入路径的情况下调度到它。
在 worktree 中隔离文件编辑
从 agent view 调度的会话默认共享你的工作目录,所以两个代理编辑相同的文件可能会冲突。要防止这种情况,Claude Code 阻止从 agent view 调度的会话写入文件,直到它移动到隔离的 git worktree。当它需要编辑文件时,Claude 自动处理这个。worktree 在项目目录内的 .claude/worktrees/ 下创建,当你删除会话时删除。删除会话也删除其 worktree,所以在删除前合并或推送你想保留的更改。
要使 subagent 始终在其自己的 worktree 中运行,无论如何启动,在其 frontmatter 中设置 isolation: worktree。
从会话内部
运行 /background 或其别名 /bg 分离当前对话并保持其运行。传递提示如 /bg run the test suite and fix any failures 在分离前发送一个更多指令。
从 shell
传递 --bg 启动直接进入后台的会话:
claude --bg "investigate the flaky SettingsChangeDetector test"
要运行特定的 subagent 作为会话的主代理,结合 --bg 和 --agent:
claude --agent code-reviewer --bg "address review comments on PR 1234"
后台化后,Claude 打印会话的短 ID 和管理它的命令:
backgrounded · 7c5dcf5d
claude agents list sessions
claude attach 7c5dcf5d open in this terminal
claude logs 7c5dcf5d show recent output
claude stop 7c5dcf5d stop this session
从 shell 管理会话
每个后台会话有一个短 ID,你可以从 shell 使用。这些命令对于脚本编写或当你不想打开 agent view 时很有用。
| 命令 | 目的 |
|---|---|
claude agents |
打开 agent view |
claude attach <id> |
在此终端附加到会话 |
claude logs <id> |
打印会话的最近输出 |
claude stop <id> |
停止会话。也接受 claude kill |
claude respawn <id> |
重新启动已停止的会话,保持其对话完整 |
claude respawn --all |
重新启动每个已停止的会话 |
claude rm <id> |
从列表中删除会话 |
后台会话如何被托管
后台会话由每用户监督进程托管,与你的终端和 agent view 分离。它在你第一次后台会话或打开 agent view 时自动启动,你不直接管理它。监督进程及其会话使用与你的交互式会话相同的凭证进行身份验证,并且除了模型 API 外不进行额外的网络连接。
每个后台会话是其自己的 Claude Code 进程,父进程是监督进程而不是你的终端。积极工作、等待你的输入或有终端连接的会话保持其进程运行。一旦会话完成并未连接地坐了大约一小时,监督进程停止其进程以释放资源。记录和状态保留在磁盘上,下次你附加、窥视或回复时,监督进程从中断处启动一个新进程。当每个会话都完成且没有终端连接时,监督进程本身退出,下次你后台会话或打开 agent view 时再次启动。
监督进程监视磁盘上安装的 Claude Code 二进制文件,在常规 自动更新程序 替换它后重新启动到新版本。这是本地文件监视,不是网络检查。后台会话是分离的进程,所以它们在重新启动期间继续运行,新的监督进程重新连接到它们。
会话状态存储在你的 Claude Code 配置目录下。如果你设置 CLAUDE_CONFIG_DIR,监督进程使用该目录而不是 ~/.claude 并作为单独的实例运行,具有其自己的会话。
| 路径 | 内容 |
|---|---|
~/.claude/daemon.log |
监督进程日志 |
~/.claude/daemon/roster.json |
运行中的后台会话列表,用于在重新启动后重新连接 |
~/.claude/jobs/<id>/state.json |
在 agent view 中显示的每会话状态 |
要完全关闭后台代理和 agent view,将 disableAgentView 设置 设为 true 或设置 CLAUDE_CODE_DISABLE_AGENT_VIEW 环境变量。管理员可以通过 托管设置 强制执行这个。
故障排除
Agent view 打开时没有会话
Agent view 为空,直到你调度你的第一个会话。在底部的输入框中输入提示并按 Enter。
机器唤醒后会话显示为已停止
后台会话不能存活睡眠或关闭。附加、窥视或回复任何已停止的会话,它从中断处重新启动。要一次重新启动所有会话,运行 claude respawn --all。
附加后会话响应缓慢
一旦会话完成并未连接地坐了大约一小时,监督进程停止其进程以释放资源。附加启动一个从中断处的新进程,这需要一点时间。工作或等待你的会话永远不会以这种方式停止。
.claude/worktrees/ 填满了
Worktrees 在你删除创建它们的会话时删除。如果会话结束而没有清理,在项目目录中用 git worktree list 列出剩余条目,并用 git worktree remove <path> 删除每个。参见 清理 worktrees。
限制
Agent view 是研究预览版。要注意的当前限制:
- 速率限制适用:后台会话像交互式会话一样消耗你的订阅使用,所以并行运行十个代理使用配额快十倍。
- 会话是本地的:后台会话在你的机器上运行,如果它睡眠或关闭则停止。
- Worktrees 随会话删除:在删除在其自己的 worktree 中编辑文件的会话前合并或推送更改。
后续步骤
现在你理解了 agent view,探索这些相关功能:
- 在并行中运行代理:比较 agent view 与 subagents、agent teams 和 worktrees
- Subagents:定义具有自定义提示、工具和隔离的可重用代理配置
- Agent teams:协调相互发送消息的多个会话
- Claude Code on the web:在托管的云环境中运行会话而不是本地