让 Agent 的工作量保持在你能审阅的范围内

使用 AI 辅助编写与复核。

本文目录

启动下一项编程 Agent 任务之前,先说清它接下来要交付什么,以及你将如何检查。如果先前的工作还缺一个决定,或已经产出了无法检查的结果,再增加一项实现,可能只会增加产出,并不能让决定更容易作出。

审阅队列回答的是接下来检查什么。任务准入决定回答的是:是否应该继续引入更多工作。代码上互不依赖的任务,仍可能争用同一个人的注意力、预览环境,或理解一项改动的能力。

在一则公开叙述中,一位开发者描述了不断启动任务、切换项目带来的负担。在另一则叙述中,作者讲述了从不断扩大的重写,回到自己能够理解和检查的小范围工作。这些是个人报告,原帖的绝对发布日期尚未确定。它们引出了下文的问题,不是经过测量、用来规定应运行多少个 Agent 的规则。

下一份交付到来前,先选定审阅机会

下面的 Maple Notes 项目、人物、请求和历史全部是虚构的。Rin 是负责审阅的开发者。Rin 选定一个 25 分钟的时段 W1,以及稍后另一个独立的 45 分钟时段 W2。

这些数字只是在本例中预留注意力,不是实测能力、对任务所需时间的估计,也不承诺检查能够完成。W1 的计划分配如下:

W1 中计划投入的注意力 预留时间 边界
阅读两项既有任务的状态,并索取缺失输入 5 分钟 不靠猜测解决缺失的产品决定
如果候选稿可用,检查一个严格限于文案的小改动 10 分钟 不做相邻设计或实现工作
留出余量,或检查到达的证据索引 10 分钟 未使用的时间不必再用一项任务填满

如果检查耗时更长,Rin 就让决定继续保持待定。计时结束不会产生接受结果的许可。W2 是另一个审阅机会,不是更难的改动一定能放进去的证明。

把审阅需要放在工作提议旁边

以下是 W1 开始时的完整任务准入板:

任务 已有输入与输出 仍缺少什么 审阅负担 建议的下一项决定
A17 · 共享笔记预览 A17-note-v1 列出两种可能的受众;尚无实现 产品负责人必须选择:仅工作区成员,还是任何持有链接的人 确定受众,检查预期可见性案例,然后在写代码前审阅设计 暂缓实现
B08 · 搜索工具栏整理 只有 B08-message-v1:“工具栏整理已完成” 可识别的补丁、与候选版本绑定的预览,以及键盘检查记录或明确的未运行状态 阅读实际差异,检查视觉上下文,并核对键盘行为 把下一份输出缩减为既有工作的证据
C12 · 筛选后无结果提示 已提供确切的当前片段与所需替换文字;不依赖 A17/B08 准备小范围候选稿不缺输入;返回的改动仍需要检查 在上下文中比较一个段落,并阅读完整改动 只启动这份有边界的候选稿

给 Agent 更多不受打扰的编码时间,不能让 A17 就绪,因为它缺少产品选择。B08 可能已经包含有用的已完成工作,但 Rin 无法把一句完成通知当补丁审。C12 的输入则足以生成一个小而可检查的对象。

这里的审阅负担描述的是需要做什么,不是数值化的复杂度分数。小文件也可能需要困难的行为检查;长分析有时也能通过一个决定性示例来审阅。应盘点自己必须处理的问题和证据,而不是把每个任务行都当成相同的工作量单位。

暂缓缺少决定的工作

A17 的原始请求是:

为 Maple Notes 规划预览分享流程。
实施之前,先确定谁可以打开预览链接。
不要悄悄扩大现有笔记的可见范围。

两个选项是仅工作区成员,以及任何持有链接的人。产品负责人在 W1 期间无法参与。Agent 提议等待期间先假定一种受众并实现它。

Rin 不接受这项范围扩张,而是索取具体输入:

A17 正在等待预览受众的决定:
仅工作区成员,还是任何持有链接的人?

保留 A17-note-v1 和两个选项。不要基于假设实现任一受众。
决定给出后再记录;下一份交付是实施前的一张小型设计卡。

这不是把 A17 排为不重要,而是指出为什么再交一份实现还为时过早。重新启动的条件是明确的受众决定与当前范围,不是随意等一段时间,也不是再收到一次“已就绪”通知。

索取更多工作前,先缩减无法检查的交付

B08 原本被要求做一项有针对性的工具栏改动,保留搜索行为与键盘操作。目前唯一输出是“工具栏整理已完成”。Agent 提议继续打磨工具栏。

更多改动会让既有结果更难定位。Rin 改为要求:

B08 的下一份交付应是既有改动的证据索引。
这一步不要继续打磨,也不要再增加一项工具栏改动。

指出确切候选版本,提供完整差异或引用。
把预览与该候选版本绑定。对于要求的键盘行为,
列出实际执行的检查及结果,或者说明未运行。
直接指出缺失产物或不可用的审阅环境。

保留现有工作。不要仅仅为了缩小交付,就重置、丢弃或重写它。
进一步实现应等待具体审阅发现,或另行限定范围的下一项请求。

这里缩减输出,是把下一份交付从更多实现改为可检查的索引,不是删除文件、撤销改动,或把任务当作已经结束。

如果 B08 返回了可用索引,整理证据这一步可以完成,而工具栏改动仍未被接受。找到补丁是审阅它的前提,不能代替审阅。

给新的小任务设定可检查的准入边界

C12 有以下完整起始上下文:

<section class="empty-filtered">
  <h2>No matching notes</h2>
  <p>Try another search.</p>
  <button type="button" data-action="clear-filters">Clear filters</button>
</section>

要求的提示语确切为 Clear filters to see all notes. 标题、按钮、类名与行为都应保持不变。Rin 只准入这个段落改动的候选稿:

根据 EmptyFilteredView.html 中的 C12-base-v1 准备 C12。
仅在筛选后无结果的视图中,将:
Try another search.
替换为:
Clear filters to see all notes.

保留标题、按钮、类名、动作标记和行为。
返回完整修改前后上下文、仅改该段落的补丁,以及确切候选版本标识。
把源码检查与实际预览或运行时检查分开;适用时说明未运行。

不要修改相邻文案、重新设计空状态、改变筛选、提交或发布。
如果这需要另一个文件或行为改动,先说明依赖,再扩大交付。

在这份虚构历史中,C12-r1 返回了以下完整补丁:

 <section class="empty-filtered">
   <h2>No matching notes</h2>
-  <p>Try another search.</p>
+  <p>Clear filters to see all notes.</p>
   <button type="button" data-action="clear-filters">Clear filters</button>
 </section>

Rin 比较展示出的完整片段,接受了这项源码文案范围的改动。按钮源码没有改变;本例没有实际操作浏览器,也没有检查真实筛选行为。不能因为改动小,就把这个决定变成运行时接受。

为什么 A17 和 B08 仍未结束,却可以启动 C12?因为它的输入与下一份交付都已定义,而且 Rin 为它选定了一个范围很窄的审阅机会。A17 仍缺决定,B08 仍需可检查的证据和另一种检查。准入决定依据这些条件,而不是通知先后,或恰好有多少 Agent 空闲。

如果 W1 不再可用,或 C12 到达时没有承诺的上下文,C12 也要暂缓。“小”不代表自动获准启动或自动接受。

跟进首次决定之后的历史

步骤 虚构事件 启动、暂缓或缩减输出的决定
H0 Rin 选定 W1,打开三行任务板 根据可用审阅机会与输入评估下一份交付
H1 A17 的受众仍未决定 暂缓实现;保留选项,只问一个问题
H2 B08 只提供完成通知 将下一份输出缩减为证据索引,不再打磨
H3 C12 有确切文案、上下文和选定审阅机会 只启动段落改动候选稿
H4 C12-r1 按展示内容到达 检查完整源码差异;在这份虚构历史中,只接受该文案范围
H5 B08 提供补丁/预览索引,但说明键盘检查未运行 整体改动仍不接受;考虑在 W2 检查交互
H6 W1 结束,或 Rin 已无法继续审阅 在另一个具体审阅机会出现前,不再索取更多实现交付
H7 W2 前,A17 负责人选择仅工作区成员,并保留当前笔记可见性 重新启动一张包含预期受众案例的小型设计卡,不自动开始完整实现
H8 B08 产物仍可访问,且 W2 中键盘审阅环境可用 审阅已有候选版本;如果检查超出时段或发现缺失行为,继续保持待定

这些是作者编写的决定,不是计时实验,也不是 Agent 工作日志。这里没有观察到可报告的耗时减少、工作负担减轻或审阅错误下降。

在 H6,请求限定的是接下来想要什么输出。它不能证明后台进程已停止,也不能证明某个宿主执行了队列限制。在这件事重要时,应保留产物,并通过实际工具核实任务状态。

说清每项任务的重开条件

任务 重开条件 重开后的第一份交付 仍然不够的情况
A17 已记录负责人的受众选择与当前范围 小型设计卡:成员、非成员与身份不可用的案例,写明预期结果与未决实现问题 Agent 自己选择一种受众
B08 候选版本与证据可访问;所需交互检查已有审阅者、环境和审阅机会 审阅既有改动,或根据发现做一项组件级修正 又一条完成消息,或又一轮未经审阅的打磨
C12 候选版本仍限于文案改动,且上下文可检查 完成文案审阅,或修正具体不一致 只有简短描述,没有真实改动引用

A17 的设计卡描述预期行为,不代表已经实现访问控制系统。B08 仍可能需要超过 W2 的时间。若如此,Rin 就保留待定状态,或索取更小、可检查的修正,而不把日历时段结束当成批准。

只有说得清交付是什么、依赖哪个输入、需要什么审阅机会时,才准入下一份交付。否则就暂缓,或索取一份能回答下一问题的较小产物。余量可以不用,不必再用另一项实现把它填满。

复用有边界的下一份交付请求

任务与当前候选版本:
[指出工作内容,以及已经存在的产物。]

当前决定:
[启动这份有边界的交付 / 暂缓实现 / 缩减下一份输出。]

仅下一份交付:
[一个可检查的产物、它的范围,以及必须包含的证据。]

缺失输入:
[确切问题与决策负责人,或明确说明这一步没有缺失输入。]

审阅机会:
[何时、具备什么上下文或环境时,可以检查这份产物。]
这是计划中的机会,不是承诺的审阅时长或批准。

保留:
[不能被悄悄替换的既有工作与约束。]

只有以下条件满足,才重开或扩大范围:
[具体输入、证据或审阅条件。]
条件不具备时,应保留工作并报告缺口,
而不是基于假设再产出一份实现。

分别报告实际检查、执行和尚未确定的事项。

有用的限制,是一项可以审阅的下一步承诺。有时它是一个小补丁,有时只是一个决策问题,或检查既有补丁所需的证据。