Claude Code 的 agent view(用 claude agents 打开)是这样一个地方:你在后台一个接一个地启动彼此独立的会话,并在同一块屏幕上管理它们。用官方的说法,它让你「从一块屏幕上调度(dispatch)并管理多个 Claude Code 会话」Manage multiple agents with agent view)。

本文只谈机制与安全模型。真正危险的从来不是「AI 失控」,而是你并不清楚隔离到底管到哪里、这些会话又在什么权限下运行,却在自己没盯着的时候一口气排上十个。结论先给出来:这套隔离做得相当认真——但有三样东西会漏到隔离之外。那才是值得你花时间的部分。

📌 本文的事实来源:下文出现的每一项行为、版本号和设置名,都在2026 年 8 月 9 日依据官方文档核对过。agent view 属于研究预览,需要 Claude Code v2.1.139 及以上版本。预览阶段的功能规格会变,请用 claude --version 确认自己手上的版本,细节以最新官方文档为准。

🔀 如果你是搜「Dispatch」找过来的。Claude 里有两个名字极易混淆的不同功能。桌面应用侧边栏里的 Dispatch(调度),指的是从手机给 Claude 发消息、让它在你自己的电脑上干活的那个功能,跟本文说的不是一回事——那一个在Dispatch 的机制与安全性里讲。本文讲的是 agent view,一个 Claude Code 的终端功能;名字之所以撞车,是因为官方文档把你在那里执行的操作叫作「dispatch」。

1. agent view 是什么——官方称为「dispatch」的那个操作

先把名字钉死。在 Claude Code 内部,「dispatch」是你在 agent view 里执行的一个操作的名字,并不存在一个叫这个名字的独立功能。官方文档是这么描述的。

「用 claude agents 打开的 agent view,是一块显示你全部后台会话的屏幕——什么正在跑,什么在等你的输入,什么已经跑完了。」(Agent view

该在什么时候用它,官方同样划得很清楚:当你手上有好几件彼此独立的任务,想把它们交出去,想一眼看清各自的状态,并且只在不得不出手时才介入。修一个 bug、评审一个 PR、排查一个时好时坏的测试——把这三件事丢成三行,然后换个窗口继续自己的活儿,等哪一行变成「需要你」的时候再回去看。

✅ 适合交出去的活

彼此独立、而且过程不需要你盯着的任务。那种最后拿到结果就够了的工作,这期间你可以去干别的。

❌ 不适合交出去的活

做到一半需要重新定方向的会争抢同一批文件的,以及含有不可撤销动作的(发布上线、生产数据库、往外发送东西)。

2. 一个提示词就是一个会话,而不是追加

这是第一个会绊住人的地方。文档写得明明白白:你在这里输入的每一个提示词,都会启动它自己的一个新会话。再打一条按下回车,你得到的是第一个旁边多出来的第二个会话,而不是给第一个补的一句话。

你凭平时聊天的条件反射打一句「刚才那个再补一点」,补出来的不是备注,而是一份新工作。这是设计而不是事故,因为 agent view 本来就是用来把互不相干的任务排成一列的。真要追加指令,得从下面要讲的预览面板(peek panel)发。

操作 会发生什么
在输入框里写提示词 → Enter 启动一个新会话(会一个个并行地攒起来)
Space 打开预览面板。看到的是最近的输出,或者它正在等的那个问题,而不是完整记录
在预览面板里回复 → Enter 不用离开 agent view 就能回复那个会话
Enter(选中某一行时) 进入那个会话(挂接)
Ctrl+X 停止它。再按一次就是删除(直接通向第 6 节那个坑)
Ctrl+S / Ctrl+T / Ctrl+R 分组(按状态或按目录)/置顶/改名

还有一点:会话自己派生出来的子智能体和队友,不会作为单独的行出现。屏幕上列出来的,只有你调度出去的那些单位。

3. 隔离是怎么做到的——写入之前先搬进 worktree

安全模型的核心就在这里。后台会话在编辑任何文件之前,会先搬进一个属于它自己的 git worktree。官方的原话如下。

「每一个后台会话都从你的工作目录开始,无论它是从 agent view 启动的,还是用 /bgclaude --bg 启动的。在编辑文件之前,Claude 会把会话搬进 .claude/worktrees/ 下一个隔离的 git worktree。这样一来,并行的会话读的是同一份检出,但各自写进自己的那一份。」(Agent view

这个设计之所以成立,关键在于读是共享的,写是分开的。并行的会话能读到彼此的代码,所以各自的前提不会越走越偏;而它们的写入又不可能撞车。三个会话在同一个目录里跑、互相覆盖对方的文件——这种最糟的事故在结构上就不可能发生。

接下来是最要紧的那一句。「一旦会话进入 worktree,Claude Code 就会阻断那些会触及主检出的文件编辑和命令——对这个会话如此,对它派生的任何子智能体也一样。」隔离是会被子代继承的。一个被调度出去的会话哪怕在内部叫起五个子智能体,这五个也都在同一堵墙里面。

4. 撑起这套隔离的三道检查

「阻断」具体指什么,文档写得很细。一共是三类检查

① 文件编辑

阻断指向主检出内部路径的 EditWriteNotebookEdit

② 命令的工作目录

阻断工作目录会解析到主检出的命令,以及那些无法核实其确实待在外面的命令

③ 把 git 指向别处

git -C--git-dirGIT_DIRGIT_WORK_TREE以及在 git 之前先 cd——全都被切断。

连第三条都堵上,说明这是认真做的。它管的不只是「别往主检出里写」,还有「别把 git 骗到主检出上去」。而且判断刻意偏向安全一侧:核实不了的命令就不给跑

⚠️ 话说回来,这不是操作系统层面的墙。这三道检查靠的是审视一次工具调用到底想干什么,而不是把进程关起来。它们守住的是同一个仓库的主检出仓库之外的文件以及网络,都不在这三道检查的范围内

文档还明确写了,PowerShell 命令只享有第 2 道,也就是工作目录那一道检查。如果你在 Windows 上主要用 PowerShell,就别指望第三道保护了。要把进程本身关起来,那不是 worktree 的活儿,是沙箱的活儿。

5. 权限是从哪里来的

在你没盯着的时候,那个会话到底跑在哪种权限模式下?回答不了这个问题就把会话一排排摆出去,是这里最危险的做法。

官方的规则毫不含糊。当你从 agent view 的输入框调度,或者在 shell 里执行 claude --bg 时,用的是那个目录的设置中的 defaultMode如果你调度出去的是一个子智能体,那就改用它 frontmatter 里的 permissionMode

换句话说,权限不是当场选的,而是从你的配置里继承下来的。你平时在 settings.json 里的 defaultMode 越松,下面这句话就越是字面意义上的真事:你按下调度的那一刻,十个无人看管、权限宽松的会话就此诞生。先把权限模式权限规则理清楚,这是前置条件,不是锦上添花。

不过该停的地方,它确实会好好停下来。当一个会话需要只有你能给的东西——一个问题的答案、一次权限判断、下一步的指令时,那一行会变成「Needs input(等待输入)」这个状态是你手里仅剩的那个控制点。所以 agent view 不是「排好队然后走人的屏幕」,而是「你要回来把等待输入的那些行捡起来的屏幕」

6. 最容易被漏掉的几个坑

隔离做得很用心。即便如此,还是有三样东西会漏出去。而这部分恰恰是实际干活时会咬人的。

① 一句「以后别再问我」会走出 worktree

按照文档的说法,在 worktree 会话里对某条 Bash 命令选了「是,以后别再问我」,这条规则会被存进主检出的 .claude/settings.local.json。结果就是:它在主检出里生效,在其他每一个 worktree 里也生效,而且在它诞生的那个 worktree 被删掉之后依然留着
也就是说,一次在隔离环境里做出的权限判断,变成了隔离之外的永久配置。一次在你没看着的时候、在你以为只是临时工作区的地方按下的「以后别再问我」,从此一直有效。当某个被调度出去的会话在预览面板里向你要权限时,别随手去点「以后别再问我」。

② 删掉会话,未提交的成果会跟着一起没

官方的限制条款里写得很直白:「Claude 创建的 worktree,会在你于 agent view 里删除会话时被一并删除。删除一个在自己的 worktree 里编辑过文件的会话之前,请先提交你的改动。」
Ctrl+X第一下停止,第二下删除。你想收拾一个跑完的会话而顺手按了两下,产出就跟着一起没了。「跑完了」和「收进来了」是两回事——拿到结果之后,先提交或合并,再删。

.worktreeinclude 会把你的密钥发给每一个 worktree

worktree 是一份全新的检出,所以被 gitignore 掉的 .env 并不在里面。可是没有它什么都跑不起来,于是你把它写进 .worktreeinclude,它就会在每次创建新 worktree 时自动被复制进去
方便是方便,但反过来看,这意味着你每调度一个会话,磁盘上就多出一份你的凭据。要并行地跑这些东西,理智的做法是发开发用的密钥,而不是生产用的

官方还列出了另外三条限制。配额是成倍消耗的(「并行跑十个智能体,消耗配额的速度大约是跑一个的十倍」)。会话跑在本地——它们能挺过睡眠,但机器关机就停。以及,这件事本身还只是一个研究预览

7. 怎么选——并行的路一共有四条

官方文档把并行化归成了四种做法。调度(agent view)只是其中之一,所以选错了就是实打实地吃亏。

做法 谁来主导 什么时候选它
子智能体 Claude 在同一个会话里委派出去,再把结果收回来 不想让旁支工作的输出(搜索结果、日志、文件)污染主上下文
agent view(调度) 把活交出去,回头再来看 有好几件彼此独立的任务。本文讲的就是它。研究预览
智能体团队 Claude 来规划、分派并监督 你希望分工和同步都交给它处理。实验性,默认关闭另有专文
动态工作流 计划握在脚本手里 全代码库审计、500 个文件的迁移——这种规模不是一轮对话指挥得动的。以及需要交叉核对结果的时候

分界线就是谁来主导。一个会话之内能收尾的,用子智能体。你来主导、事后回收的,用 agent view。想让 Claude 来主导的,用智能体团队。规模大到应该按固定流程走、而不是靠临场判断的,用动态工作流。

顺带一提,worktree 的定位不是一种并行手段,而是一件隔离工具。agent view 会自动用它。而你自己开的并行会话,得像 claude --worktree <名称> 这样显式指定一个。

8. 安全地把它跑起来的流程

调度之前

  • 确认那个目录的 defaultMode它会原样变成一个无人看管的会话的权限等级
  • 别把含有不可撤销动作的活交出去。发布上线、生产数据库、对外发送,都该留在你盯着的会话里
  • 这些任务真的彼此独立吗?如果它们都吊在同一个设计决策上,先把那个决策定下来,再交出去
  • 你的 .worktreeinclude 里都有什么?你排出去几个会话,你的密钥就被复制几份

跑起来之后

  • 回来把「Needs input」的行捡起来。那是唯一的控制点
  • 被问到权限时,别选「以后别再问我」。那个决定活得比 worktree 长
  • 并行度直接对应配额。同时跑十个,消耗速度就是十倍

跑完之后

  • 先提交,再删除。第二下 Ctrl+X 是删除,worktree 里的东西会跟着一起走
  • 别把结果当真话直接收下。你并行跑的每一份,都给你多添了一条未经核实的断言

最后一点作为经验法则值得着重强调。并行化会把要审阅的总量一起放大。十件活回来,附带的是十个「这真的成立吗」;核实这件事并不会随着工作一起被并行掉。你能调度出去多少,上限取决于你能核实多少结果。

总结

调度,指的是从 agent view(claude agents)启动一个独立后台会话这个动作,它属于研究预览(需 v2.1.139 及以上)。一个提示词就变成一个会话,绝不会是追加。

安全模型的核心是用 worktree 做隔离。写入之前,会话先搬进 .claude/worktrees/,从那一刻起读是共享的,写是分开的。会触及主检出的编辑、命令和 git 改向,都被三道检查切断,而且这份保护会被会话派生的每一个子智能体继承

有三样东西会跑出隔离之外一句「以后别再问我」会被存到主检出那边,在每个 worktree 里生效,删掉 worktree 也还在。删除会话会毁掉未提交的成果。.worktreeinclude 会按 worktree 的数量复制你的密钥。另外,既然 worktree 不是操作系统层面的墙,仓库之外的一切和网络就都不在保护范围内——那是沙箱的职责。

FAQ

Q1. Claude Code 里真的有一个叫「Dispatch」的功能吗?

作为独立的功能名并不存在。dispatch 是 agent view 内部一个操作的名字。官方文档把 agent view 描述成让你「从一块屏幕上调度并管理多个 Claude Code 会话」的功能。打开它的命令是 claude agents

Q2. /agentsclaude agents 是同一个东西吗?

不是。文档直接就此提醒过:名字虽像,/agents 并不是 claude agentsclaude agents 是打开 agent view 的 shell 命令。而 /agents 从 v2.1.198 起已经不再打开任何面板——它只告诉你子智能体定义文件放在哪里。

Q3. 被调度出去的会话会不会弄坏我的主工作副本?

就同一个仓库的主检出而言,你在结构上是受保护的。文件编辑、命令的工作目录和 git 改向都会被那三道检查拦下,而且同样的保护也覆盖会话派生的任何子智能体。不过仓库之外的文件和网络不在范围内,并且在 PowerShell 下只有工作目录那一道检查生效。

Q4. 并行跑会让成本变成什么样?

大致按数量成比例上升。官方的限制条款就是这么写的:并行跑十个智能体,消耗配额的速度大约是跑一个的十倍。后台运行并不等于便宜。

Q5. 会话跑完之后可以直接删掉吗?

先提交,再删除。文档写明,Claude 创建的 worktree 会在你于 agent view 里删除会话时被一并删除。Ctrl+X 第一下停止,第二下删除。拿到了结果,不等于已经把它收进来了。

Q6. 每次调度时能不能自己选权限模式?

当场选不了。用的是那个目录的设置中的 defaultMode——如果你调度的是子智能体,则用它 frontmatter 里的 permissionMode你平时的 defaultMode 有多松,无人看管时跑的就是那么松。开始用调度之前,先把权限设置重新过一遍。

Q7. 这和子智能体有什么区别?

区别在于谁来主导。用子智能体时,Claude 在同一个会话里委派,并把结果交回那个会话。用 agent view 时,是你把彼此独立的任务交出去,之后再来回收结果。会话派生出来的子智能体,不会作为 agent view 里的一行显示出来。

Q8. 我合上笔记本会怎样?

会停。官方的限制条款说,后台会话跑在你自己的机器上:它们能挺过睡眠,但机器关机就会停。没有任何东西在云端跑,所以这不是那种「把长活儿甩过墙就回家」的工具。

相关文章