智能体变更

实时查看哪个智能体正在修改哪个文件,保留每个被改动文件的每个版本,并在两个智能体改到同一批行时获得一次审查;默认关闭,Watch 与 Guide 从不阻止写入。

Agent Changes(智能体变更)会记录你的 AI 智能体写入的内容,边写边记。它在一个屏幕上回答三个问题:哪里需要你、两个智能体在哪里撞车、此刻谁在改什么。它还会保留每个被智能体或你碰过的文件的每一个版本,因此两次提交之间的覆盖写入也能恢复——这是 git 帮不上忙的,因为那些版本从未被暂存。

从右侧 dock 打开它,或从顶栏的 Changes(变更)菜单打开,它就位于 Git Diff 旁边。

停靠在编辑器旁边的 Agent Changes 面板,其 Map 视图用连线把四个智能体连到各自正在修改的文件,Watch 徽标显示 works for 4 of 4 agents

选择一个级别

Agent Changes 默认关闭,级别按项目按工作树分别选择,可在面板的设置界面或 File Explorer(文件资源管理器)标题栏中设置。在你选定之前,面板只读不写。

级别作用
Off不跟踪任何内容,也不备份任何内容。
Watch记录谁在改什么,并保留每个版本。绝不碍事。
Guide还会告知智能体它们即将覆盖的内容。从不阻止任何操作。

任何级别都不会阻止智能体或改动文件。 Guide 会告知配合的智能体它即将覆盖什么,并把决定权交给智能体;写入照常生效,被替换的版本无论如何都会被保留。

设置界面对覆盖范围写得很明白:一枚 Works for N of M(对 M 个中的 N 个智能体生效)胶囊,标记了哪些智能体会在写入前被告知、哪些只是事后被观察。

远程根目录和未覆盖的工作树只能是 Off

Map——谁在改什么

每条连线把一个智能体连到它此刻正在修改的文件。Everyone / Only conflicts(所有人 / 仅冲突)开关可以把画面收窄到真正需要你的文件。

Map 视图设为 Everyone,五个智能体扇形分散到四个文件,activity-log.ts 与 pomodoro-widget.ts 以珊瑚色描边并标注为 conflict

地图下方的图例解释了各种线型:

  • Solid(实线)—— 智能体在写入前会被告知。
  • Dotted(点线)—— 智能体通过保险库配合。
  • Dashed(虚线)—— 该智能体仅被观察。
  • Coral(珊瑚色)—— 表示冲突。

Timeline——谁在何时工作

Timeline(时间线)标签页给每个智能体一条泳道,每次记录的变更一个标记,时间范围可选 Last hour(最近一小时)、Today(今天)或 7 days(7 天)。悬停标记即可查看它做了什么;安静的时段会画成空档,停滞的智能体一眼可见。

Timeline 标签页“谁在何时工作”,每个智能体一条泳道,每次记录的变更一个标记,以及一段两小时的安静区间

每个被改文件的每个版本

Recent changes(最近变更)列出智能体或你碰过的每个文件的最新版本。打开其中一个,就能看到捕获到的每个版本,最新在前,各自标注写入者:

  • Captured just before an agent wrote(在智能体写入前一刻捕获)
  • Seen after it was saved · writer unknown(保存后才看到 · 写入者未知)
  • Saved outside an agent(在智能体之外保存)
  • Applied from a conflict(从冲突中应用)
  • You restored this(你恢复了这个版本)
  • When tracking started(开始跟踪时)

activity-log.ts 的 History 视图,捕获的每个版本最新在前,各自标注写入者,并带有 Undo last change、Undo to this 和 Restore 控件

Show(显示)展开某个版本,让你读到文件在那一刻的样子。Restore(恢复)、Undo to this(撤回到此)和 Undo last change(撤销上一次变更)会把某个版本放回,方式是一次受检写入:先保存文件当前的内容,因此恢复本身也可以被撤销。

如果文件自 1DevTool 上次读取后发生了变化,恢复会被拒绝而不是靠猜——“We have not read this file since it last changed, so we can't safely swap it.”(自上次变更后我们未再读取该文件,因此无法安全替换。)

当两个智能体改到同一个文件

碰撞会打开一次审查,而不是一个合并冲突。它用三幅图解释发生了什么——谁先写入、第二个智能体基于一个已经变化过的版本写入、这次改动是落地了还是被拦下——并明确说明:无论你选什么,都不会删除任何内容。

pomodoro-widget.ts 的冲突审查,用三幅图解释发生了什么、解决状态、一个 Suggest a fix 按钮,以及声明两个版本都已保存的 Your turn 面板

How it's getting solved(解决进度)每次都走同样的三步:

  1. Kept every version safe(每个版本都已安全保留)—— 不会丢失任何内容。
  2. Looked for an automatic fix(寻找自动修复)—— 当两组改动互不重叠时执行一次确定性合并
  3. Waiting for you to pick a version(等你挑选一个版本)—— 当需要人来决定时。

你的选项有 Use this version(使用此版本)、Use the merged version(使用合并版本)、Use the referee's fix(使用仲裁方的修复)(按下 Suggest a fix,AI 助手会读取两个版本并提出一个方案),或 Decide later(稍后决定)。Peek at the code(查看代码)让你在拍板前先看到文本。

Your calls(你的决定)保留你做过的每个决定,以及它是否还能撤回。

在你所在之处给出提醒

不必打开面板也能知道发生了什么:

  • 顶栏 Changes 菜单上的一个计数
  • File Explorer 中,智能体正在处理的文件上会出现一个圆环,打开的文件上方会有一条横幅,写明正在处理它的智能体。
  • 当该标签页里的智能体改动了文件——或覆盖了你的文件——终端上方会出现一个胶囊

终端上方一枚红色的“Devin CLI wrote over your activity-log.ts”胶囊,旁边的 File Explorer 在受影响的文件上显示圆环

展开胶囊会列出该终端改动了什么,并在 Someone else touched these too(别人也动过这些文件)下列出另一个智能体覆盖了什么——还有那句关键的话:你的版本已不在磁盘上,但它被保留着,什么都没有丢。

用 Ask an AI 理清局面

Ask an AI(交给 AI 处理)会把一条记录下来的冲突连同其上下文交给某个 AI 终端,而不需要你重新解释一遍。勾选要包含的内容——Who's working on what(谁在改什么)和 Changes with no named writer(没有具名写入者的变更)——选择目标终端,发送前在预览中读到那条将要发出的确切消息。

Send Agent Changes to AI Terminal 对话框,已勾选记录的上下文,并预览将要发送的确切消息

存储

Settings → AI → Agent Changes 展示保险库中保存了什么、哪些可以释放,并提供由你设定的大小预算和一个 Clean up(清理)按钮。未解决的冲突永远不会被释放,已关闭项目的记录会保留 30 天后才删除。

相关