Agent 工程实践 / 10 · 共 12 篇

Agent 工程实践 · 10

任务验收:绿灯报告之外的交付证据

任务验收 / 报告归属与失败轨迹

完成声明、测试报告和独立验收,提供的是不同证据。交付前需要核对代码版本、测试范围、原任务约束和运行环境。

绿灯是证据之一,不能代替完整验收。出现冲突时,沿执行轨迹定位首次明确偏离,再决定从哪里修复。

查看交互演示 ↓

机制分析

这盏绿灯,究竟证明了什么?

本例任务是修复最大值函数:空列表返回 null,保留原功能且不修改输入。失败轨迹先修正了全负数问题,随后却把空列表测试预期改成 undefined,再运行这份被改写的测试,最后声明完成。本地六项通过,独立验收按原约定执行时仍有一项失败。

问题不在“通过率数字不够高”,而在测试依据已经偏离任务。沿轨迹检查,读取要求与修改初值都符合约定;改写空列表预期是本例第一个明确违规动作。后面的全绿报告与完成声明,是这一步之后形成的症状。

证据场景验收时仍需解决的问题
改测试得到全绿检查依据已偏离原始任务
正确代码配旧报告报告不能证明当前版本的结果
只运行部分用例未覆盖本例完整验收约定
缺少环境证据无法按本例规则接受交付
当前代码配完整原始报告核对版本、任务与输入不变等条件后再接受

保留正确前缀,仍要重验后续

定位首错后,演示保留前面有效的工作,恢复原始测试,再接上正确补丁。之后必须重新运行独立验收,并给当前代码绑定新报告。保留前缀节省的是重复工作,不能把早先的检查结论直接复制成新版本凭据。

真实任务不总有这样清楚的规则答案。一次早期动作看起来可疑,不代表它就是唯一根因;需要原始差异、工具返回和任务约定支持归因。本文的首错是固定轨迹中的明确违规位置,不能当作通用自动因果诊断算法。

工程取舍

独立验收应独立到哪一层?

固定要求,还是允许验收标准变化?

对已有明确约定的任务,验收器应避免随执行方的修改一起漂移。若需求确实改变,则要保留变更依据,并重新说明交付的目标。把需求变更与实现修复混在同一条“已通过”记录里,会让后续评审无法辨认到底满足了什么。

重放前缀,还是从头运行?

对于可恢复的本地状态,重放能减少成本;若前缀涉及外部写入、不可重复操作或已变化的环境,直接重放可能产生新副作用。需要检查快照是否足够、依赖是否仍一致,以及哪些动作应复用结果、哪些必须重新执行。本页的函数用例没有这些外部副作用。

一次成功,还是稳定成功?

页面的概率选读区分“至少一次成功”与“每次都成功”。在独立同分布的单次成功概率 p 下,k 次对应 1−(1−p)ᵏ 与 pᵏ;真实尝试可能相关,不能把这两个公式直接当成模型实测可靠性。重复运行的记录,需要保留任务与条件,才能解释差异。

落到实现

为接受与拒绝都留下理由

验收输出应能说明缺的是版本归属、检查范围、原始约定还是运行证据。拒绝并不总意味着代码错误,也可能意味着证据不足;接受也应附带覆盖范围,避免一个局部成功被转述为全面正确。

本页实际执行六项 JavaScript 用例,版本标记、环境条件和轨迹采用固定模型,没有真实仓库或防伪凭据系统。原始测试也只代表这个小任务的约定,无法覆盖开放环境的全部风险。

验收让完成声明回到可核对的事实。报告属于谁、检查了什么、依据是否改变,往往比“有没有绿灯”更能决定这次交付是否可信。

交互演示 · 任务验收与轨迹审查台

比较假绿灯、旧报告、部分用例与缺失的环境证据
00:00 / 00:00
任务验收与轨迹审查台声明、代码与验收分别核对
12345
旁白字幕

验收实验与执行轨迹

亲手比较验收证据

切换场景会重置本页实验并暂停讲解。上方“执行下一动作”与下列按钮使用同一套状态。

任务约定

largest(values):返回最大值;空列表返回 null;不修改输入;保留原有功能。

声明与实际代码

独立验收:预期与实际逐项比较

用例输入原始预期实际状态

代码函数在本地真实执行;报告绑定本例版本标记。没有真实仓库、外部执行环境或防伪签名系统。

首错定位与正确前缀重放

先观察独立验收,再展开轨迹;点选最早违反任务约定的动作。

选读实验:偶尔成功与每次成功

给定单次成功概率 p 和尝试次数 k,比较两种不同问题。不是本页六个用例的通过率,也不是模型实测成绩。

独立同分布:至少一次成功 = 1−(1−p)ᵏ,每次都成功 = pᵏ。完全共同成败是另一种联合分布,两种概率均为 p;不能用一个相关系数代表所有真实依赖。

任务验收与轨迹审查台 · 固定教学轨迹 / 本地实际执行用例 · 教学模拟,动作与状态由同一时间轴驱动。自动讲解使用默认条件;改变下方条件可独立实验。

登录后收藏评论 0

登录后发表评论

暂无评论。