审查和控制 Agent 的更改
当代理完成一轮工作时,它会留下提议的更改、对文件的编辑、新文件和已删除的文件。在你确认之前,没有任何更改是永久性的。本指南将介绍如何审查代理所做的工作,以任意粒度接受或撤消更改,以及如何使用可用工具来引导代理、纠正错误,并探索多个方向而不丢失工作。
文件更改栏
在代理的每次响应(包含文件编辑)之后,聊天输入框上方会显示一个“文件更改栏”。它列出了代理在该响应中触及的所有文件。这是你审查所发生一切的起点。

选择列表中的任何文件以打开内联差异视图。删除的内容以红色突出显示,新增的内容以绿色突出显示,它们在同一个编辑器视图中内联显示,因此你可以准确地看到更改了什么。
请记住:目前没有任何更改是永久性的。代理已提议这些更改,但在你明确接受它们之前,它们不会被保存。
逐项更改控制
在差异视图中,你会发现 保留 和 撤消 控件在每个单独的编辑上。使用箭头导航可以在文件内的编辑之间移动,无需手动滚动。

这让你能够保留正确的更改,并只撤消不正确的更改。这种粒度非常重要。代理可能对一个文件进行了十处更改——九处正确,一处错误。你无需全部丢弃。保留九处,撤消一处,然后继续。
审查完一个文件后,移动到“文件更改栏”中的下一个文件并重复此过程。
接受所有或撤消所有
当你对所有文件中的所有更改都满意时,顶部的 保留 按钮会一次性接受所有更改。 撤消所有 会回滚代理在本轮中触及的每个文件,使你的工作区恢复到之前的状态。

当你信任输出时,使用 接受所有。当代理方向错误并且你宁愿重新开始时,使用 撤消所有。
编辑上一条消息
如果你的原始提示缺少某个要求,请直接编辑该提示,而不是发送一系列后续更正。
将鼠标悬停在聊天中的任何消息上,然后选择编辑图标。更新要求并重新发送。

代理将从该点重新运行,并替换该消息之后的对话历史。
这保持了你的提示历史记录的整洁。你最终会得到一个清晰的指令和一个干净的响应,而不是堆叠多处更正。
例如,与其发送第二条消息,不如像这样重写原始提示
Using Python 3.13 and uv, implement a base62 encoder/decoder.
Accept a number to encode or a base62 string to decode as a command-line argument.

在代理运行时进行引导
有时你发送一个提示,但在执行过程中意识到你想改变方向。你不必等到代理完成然后再撤消——你可以在运行时进行引导。
当代理工作时,“发送”按钮会变成一个包含三个选项的下拉菜单。
添加到队列
暂存你的消息,并在当前响应完成后发送。代理会不间断地完成其当前工作,然后处理你的消息。
当你想添加内容而不中断当前流程时,使用此选项。
通过消息引导
指示代理在完成当前工具调用后暂停,然后立即处理你的消息。代理会调整方向,而你无需取消并丢失已完成的工作。
这是在运行时进行方向修正的首选选项。
停止并发送
完全取消当前请求,并发送你的消息作为新的开始。当代理明显偏离轨道且继续执行会浪费资源时,请使用此选项。
引导 用于调整方向。 停止并发送 用于重新开始。大多数时候,你想要的是 引导。

检查点与恢复
聊天中的每个代理响应都是一个检查点。将鼠标悬停在任何响应上,即可找到 恢复检查点。
恢复检查点会将你的工作区回滚到对话中该点时的状态。代码会恢复,对话历史记录也会回滚,就好像你从未发送过那些后续消息一样。无需手动清理,也无需 git stash ——这是一个干净的回滚。

这是你的安全网。你可以尝试一些东西,看看它的走向,如果它不是你想要的方向,可以完全撤回。
派生会话
在“恢复检查点”旁边是 派生。
- 恢复会将你带回过去。该检查点之后的所有内容都将消失,你将在同一会话中继续。
- 派生会从该检查点开始创建一个新的独立会话。原始会话保持不变。

派生后,你将有两个会话:原始会话,继续其原有的进程;以及派生会话,从该检查点重新开始并走向新的方向。两个会话互不影响。
你也可以在聊天输入框中输入 /fork 以从当前点进行派生。

何时派生
- 探索不同的架构方向,而不会丢失当前工作。
- 将项目导向 API,同时保持 CLI 版本完整。
- 并排比较两种方法。
派生不仅能防止工作丢失,还能改变你实验的胆量。当你知道总能回到过去或另辟蹊径时,你就可以自由地尝试风险更高的方案。
常见模式
事后清理提示
编辑原始消息并重新发送,而不是堆叠更正。更清晰的历史记录,更简洁的响应。
运行时计划变更
使用 通过消息引导,让代理在不停止的情况下进行调整。代理完成当前操作,读取你的新方向,然后进行调整。
出现问题需要干净回滚
使用 恢复检查点 返回到出错之前的最后一个干净状态。
同时探索两种方法
使用 派生 创建第二个分支并尝试替代方案。两个会话独立运行,你可以比较结果。
接下来是什么
通过文件更改视图、逐项更改控制、消息编辑、引导和检查点,你可以完全控制代理的输出以及会话的走向。
在下一指南中,你将同时管理多个代理,并比较本地、后台和云端执行。