MemoryLake
返回全部文章
Tutorial2026 年 10 月 28 日·11 分钟阅读

什么是 Claude Code Agent View —— 后台会话如何共享项目上下文,以及各自的编辑去向 (2026)

Agent view 是 Claude Code 用于同时运行多个会话的界面。你输入一个任务,它就会在后台启动,并以一行的形式显示它是正在工作、等待输入还是已完成。你可以接连派发一个 Bug 修复、一个代码审查和一个测试调查任务,然后继续在其他地方工作,稍后再回来查看。

同时运行多个会话会带来单个会话不会遇到的问题。它们会共享 Claude 对你项目的了解吗?一个会话能看到另一个会话学到的东西吗?如果其中两个会话同时编辑文件,谁的修改会生效?当你删除一行时,已完成的工作会怎样?

本指南将解释什么是 agent view,每个后台会话的起始状态,会话之间共享什么以及各自保留什么,它们的编辑去向,以及如何操作才能确保并行工作不会丢失上下文。Agent view 目前处于研究预览版,因此细节可能会有所变动。

什么是 agent view

Anthropic 的文档是这样描述的:“通过 claude agents 打开的 Agent view 是一个管理所有后台会话的界面:包括正在运行的、需要你输入的以及已完成的任务。”

每一行代表一个独立的会话。“每个后台会话都是一个完整的 Claude Code 对话,它在没有连接终端的情况下持续运行,因此你可以随时打开它、回复并离开。”

你可以通过三种方式操作这些行:

  • 派发 (Dispatch):在底部输入提示词并按回车。“你在这里输入的每个提示词都会启动一个新的独立会话。”
  • 预览 (Peek):在某一行上按空格键查看其最新状态、结果或正在等待的问题,无需离开列表即可回复。
  • 接入 (Attach):按回车键或右箭头打开完整对话,在空提示词处按左箭头返回列表。

你还可以使用 /bg 或左箭头将当前打开的会话转入 agent view,或者使用 /fork 将一个会话复制到新的后台会话中。

Agent view 在你的本地机器上运行会话。文档指出,对于由 Claude 在云端启动和跟踪的并行会话,请参考 Claude Code 的 Projects 功能。

每个后台会话的起始状态

派发的会话是一个全新的对话。它不会继承其他行中讨论过的内容。

它所获得的是你项目的常驻上下文,这与在该位置启动的任何 Claude Code 会话相同:

  • 其目录:“新会话在你打开 agent view 的目录中运行。”你可以通过在该处打开 agent view、使用 @<repo> 提及子仓库,或从该目录运行 claude --bg 来指定另一个目录。
  • 你的指令文件:Claude Code 会在会话开始时加载工作目录及其上级目录中的 CLAUDE.md 文件,以及 .claude/rules/ 中没有 paths 字段的规则。路径限定规则会在 Claude 处理匹配文件时加载。
  • 仓库的自动记忆 (Auto memory):Claude Code 的记忆文档提到,“同一 Git 仓库内的所有工作树和子目录共享一个自动记忆目录。”同一仓库中的后台会话会从同一个地方读取数据。
  • 你在 agent view 中设置的模型和设置:在 agent view 中使用 /model、/effort 和 /fast 会设置后续派发会话的初始状态,传递给 claude agents 的配置标志也会传递给派发的会话。

关于记忆的一点例外值得注意。记忆文档提到,/memory 开关可以关闭自动记忆,但无法在后台会话中重新开启。如果那里的自动记忆处于关闭状态,你需要从直接在终端启动的会话中将其重新开启。

后台会话共享什么,不共享什么

后台会话共享文件,但不共享对话。

它们共享磁盘上的内容:CLAUDE.md 文件、规则和自动记忆目录对于仓库中的每个会话都是相同的。如果一个会话将笔记保存到自动记忆中,它就会进入该仓库其他会话使用的共享目录。我们关于在 Claude Code 会话之间共享上下文的指南涵盖了传递上下文的其他方式。

它们不共享对话内容:每一行都是独立的对话。你在回复中告诉某个会话的内容,以及它推导出的结果,都会保留在该会话中,除非它将其写入某处。

Fork 从副本开始,然后独立运行:/fork 会将当前对话连同模型、权限模式、努力程度 (effort level) 和你添加的权限授权一起复制到新的后台会话中。之后,“这两个对话是相互独立的:副本所做的任何操作都不会自动进入原始对话”。文档指出一个例外:如果启用了跨会话消息传递,任何一个会话的 Claude 都可以显式地向另一个会话发送消息。我们关于从 Claude 应用 fork 远程会话的指南涵盖了云端的相同模式。

将会话转入后台时保留的内容:将已经打开的会话移至后台会保留其对话记录。正在运行的后台命令、后台子代理 (subagents) 和 /loop 任务都会保留;正在运行的监控器 (monitor) 会停止,且 Claude Code 会先进行询问。

每个会话的编辑去向

这是防止并行会话发生冲突的关键部分。文档解释道:“在编辑文件之前,Claude 会将会话移动到 .claude/worktrees/ 下的一个隔离的 Git 工作树 (worktree) 中,这样并行会话可以读取相同的检出内容,但各自写入自己的工作树。”

因此,派发的会话首先读取你的工作目录,然后在更改任何内容之前移动到它自己的工作树。它生成的子代理会继承其工作目录,因此它们的编辑也会落在该工作树中。

新工作树包含什么

Claude Code 的工作树文档描述了它创建的工作树的默认设置:它“从仓库的默认分支分出,并且只检出已跟踪的文件”。它还补充道:“工作树是一个全新的检出,因此请在那里初始化你的开发环境”。

就上下文而言,这在两个方面很重要:

  • 未提交的指令文件更改不在其中:如果你编辑了 CLAUDE.md 或某条规则但尚未提交,从默认分支检出的工作树将包含已提交的版本。
  • 被 Git 忽略的文件也不在其中:这包括本地文件,如 .env。工作树文档描述了一个 .worktreeinclude 文件,用于将 Git 忽略的文件带入新工作树。

你可以通过 worktree.baseRef 设置来更改起始点。其默认值 "fresh" 从远程的默认分支分出;"head" 从你当前的本地 HEAD 分出。我们关于 Claude Code 工作树是否共享记忆的指南详细介绍了工作树会话加载的内容。

Claude 何时跳过工作树

文档列出了会话在原位编辑的情况,包括你从打开的终端移至后台的会话、已经在链接工作树内的会话,以及不是 Git 仓库且没有工作树钩子的目录。你也可以通过将 worktree.bgIsolation 设置为 "none" 来关闭仓库的隔离功能。

工作如何保存

当后台会话在自己的工作树中更改了代码时,Claude Code 会指示 Claude 在结束前保存工作:在有远程仓库时提交并推送分支,并在任务需要时打开草稿拉取请求 (Pull Request)。这些指令排除了推送到 main 或 master、强制推送以及合并操作。而且,“如果任务、CLAUDE.md 或记忆显示由你亲自处理提交或推送,Claude 会将 Git 操作留给你。”

每个会话结束时都会报告其操作内容以及工作所在位置。

删除一行会移除什么

从 agent view 中删除一个会话会将其从列表中移除,但“其转录文本仍通过 claude --resume 保留在你的机器上”。Claude 为其创建的工作树则是另一回事:agent view 会将其移除,“包括未提交的更改,因此请先提交你想保留的内容。”当工作树中有无法确认已在别处保存的提交时,Claude Code 会拒绝删除,并告诉你如何处理。

你可以通过 agent view 中的 /resume 将已删除的会话作为后台行找回,该命令会列出仓库过去的会话,包括你删除的会话。我们关于查找和删除 Claude Code 会话历史的指南涵盖了转录文本本身。

人们最初常犯的错误

期望各行之间互相了解:每个会话都是独立的对话。它们共享磁盘上的文件,但不共享说过的话。

告诉一个会话某个决定并期望其他会话也遵循:除非该决定被写入 CLAUDE.md、规则或记忆中,否则它只保留在该对话中。

编辑 CLAUDE.md 后立即派发任务:从默认分支创建的工作树包含的是已提交的版本,而不是你的编辑内容。

在提交前删除一行:Agent view 会移除它创建的工作树,包括未提交的更改。

假设电脑关闭时会话仍继续运行:文档将其列为一项限制:会话是本地的,如果机器关机则会停止。它们在睡眠状态下可以保留。

解决方案:将共享上下文放在磁盘上,提交它,并让每个会话汇报情况

第 1 步:将每个会话需要的上下文写在每个会话都能读取的地方

适用于所有并行工作的约定和约束应放在项目根目录的 CLAUDE.md 或 .claude/rules/ 中的非限定规则中。你原本需要对每一行重复的决定也应放在那里。如果你希望 Claude 记住它,请要求它将该点保存到自动记忆中,仓库中的每个会话都会共享该记忆。

第 2 步:在派发前提交指令更改

由于工作树默认从默认分支开始,请在派发依赖它们的会话之前提交并推送对 CLAUDE.md 和规则的更改。如果你的会话需要你正在进行的分支,请将 worktree.baseRef 设置为 "head",并为工作所需的本地文件添加 .worktreeinclude。

第 3 步:要求每个会话报告其学到的内容

在提示词中包含会话应留下的内容:分支名称、所发现内容的简短摘要,以及其他会话需要的任何决定。在各行完成后阅读报告,并将其他会话应该知道的任何内容移至 CLAUDE.md 或记忆中。在删除一行之前进行提交。

如果你还运行计划任务,我们关于 Claude Code routines 是否在运行之间传递内容的指南涵盖了自行启动的运行的相同问题。

在 MemoryLake 中设置

Agent view 使得运行多个会话变得容易,每个会话都可能学到你希望其他会话知道的东西。在仓库内部,CLAUDE.md、规则和自动记忆在你的机器上承载了这些内容。当同样的决定在另一台电脑或其他工具中也变得重要时,它们需要一个不绑定于单一检出的归宿。

MemoryLake 是一个记忆层,用于将这类上下文保存在你维护的一个列表中,可供 Claude Code 和你连接的其他助手(如 Codex 和 ChatGPT)使用。

你用自己的语言亲自编写条目。不会从你的后台会话、它们的工作树、你的 CLAUDE.md 文件、你的自动记忆或任何供应商的存储中读取、写入或删除任何内容。Agent view 将继续按照 Anthropic 描述的方式工作。

第 1 步:创建 API 密钥

登录并从仪表板生成密钥。该密钥属于你的 MemoryLake 工作区,与你的 Claude 账户是分开的。

MemoryLake 控制台显示 API 密钥屏幕,在此创建并复制新密钥以供代理使用
MemoryLake 控制台显示 API 密钥屏幕,在此创建并复制新密钥以供代理使用

第 2 步:上传你的第一批记忆

从你在解决方案第 3 步中从会话报告里移出的内容开始:多个会话需要的决定、约束和发现。每个条目一个要点,注明日期,并贴上仓库标签。

MemoryLake 工作区显示已上传的第一批文档,列出了每个成为可搜索记忆的文件
MemoryLake 工作区显示已上传的第一批文档,列出了每个成为可搜索记忆的文件

第 3 步:连接你的 AI 和代理

连接 Claude Code 和你使用的其他助手。无论在哪里运行,每个会话都可以从相同的决定开始。

MemoryLake 集成屏幕列出了可以连接到记忆层的 AI 客户端和代理框架
MemoryLake 集成屏幕列出了可以连接到记忆层的 AI 客户端和代理框架

这在实践中改变了什么

第一个区别是并行会话不再让你感到意外。你知道它们共享磁盘上的文件和记忆,而不是对话内容。

第二个区别是它们的编辑不会冲突。每个派发的会话都在自己的工作树中写入,除非你更改设置,否则从默认分支开始。

第三个区别是有用的信息不会随一行的删除而消失。工作已被提交,发现已被记录,转录文本仍然可以恢复。如果你更换电脑,我们关于在另一台机器上使用 Claude Code 的指南涵盖了自动记忆无法携带的内容。

Agent view 最佳实践

将每一行视为独立的对话:在提示词和磁盘上提供它所需的内容。

将共享规则保留在 CLAUDE.md 或非限定规则中:每个会话都会读取它们。

在派发前提交指令更改:默认情况下,工作树从已提交的版本开始。

为本地文件使用 .worktreeinclude:被 Git 忽略的文件不会出现在新工作树中。

要求提供报告:包括分支、结果以及其他会话应该知道的内容。

在删除一行前提交:Agent view 会移除 Claude 创建的工作树。

记住会话是本地的:如果机器关机,它们就会停止。

结论

Agent view 是管理多个后台 Claude Code 会话的单一界面。每一行都是一个完整的、独立的对话,它从你的工作目录开始,带有项目的 CLAUDE.md、规则和共享的自动记忆,然后在编辑文件之前移动到它自己的工作树中。会话共享磁盘上的内容,而不是每个对话中说过的话,一旦创建了 fork,它就是独立的。

将所有会话需要的上下文放入 CLAUDE.md、规则或记忆中,在派发前提交,要求每个会话报告其学到的内容,并在删除一行前进行提交。

常见问题

什么是 Claude Code 中的 agent view?

这是一个通过 claude agents 打开的界面,按状态列出你所有的后台会话。你可以派发新会话、预览进度、回复并接入任何一个会话。它目前处于研究预览阶段。

Agent view 会话共享上下文吗?

它们共享磁盘上的文件:CLAUDE.md、规则和仓库的自动记忆目录。它们不共享对话内容。每个会话都是一个独立的对话。

后台会话在哪里进行更改?

在它们位于 .claude/worktrees/ 下的独立 Git 工作树中。Claude 会在派发的会话编辑文件前将其移至该处,因此并行会话不会互相覆盖。

为什么后台会话看不到我最新的 CLAUDE.md 编辑?

默认情况下,新工作树从仓库的默认分支分出,并且只检出已跟踪的文件,因此未提交的编辑不在其中。请提交编辑,或将 worktree.baseRef 设置为 "head"。

当我在 agent view 中删除一个会话时会发生什么?

该会话会从列表中消失,其转录文本仍可通过 claude --resume 获取。Agent view 会移除 Claude 创建的工作树,包括未提交的更改。

当我关闭终端时,后台会话会继续运行吗?

是的。它们在没有连接终端的情况下继续运行。它们在睡眠状态下可以保留,但如果机器关机则会停止。

相关阅读