切换深色模式
Evals 与 Reflection:测试、反馈和真正的学习分别发生在哪里
“给 Agent 加一个评审者,让它不断反思直到正确。”这句话有两个未经证明的前提:评审者能够识别错误,修正过程会提高结果质量。循环写出来很容易,两个前提却都需要证据。
Evals 的组织方式,大量复用测试工程
准备输入、环境、运行配置、预期结果,执行系统,保存产物,计算评分,阻止回归。这与测试和质量工程有直接联系。固定样本、环境隔离、版本记录、失败归因都值得直接复用。
难度常在“预期结果”怎么定义。工单是否重复创建、是否读了越权资源,可以检查系统状态;报告是否准确说明了配置与故障的关系,需要理解证据。仅与一份标准答案逐字比较,又可能拒绝不同表述或不同但有效的调查路径。
因此需要区分结果要求与路径要求。若两条合法路径都拿到了必要证据,通常不必要求工具调用顺序完全一致;但权限、预算和必须确认的动作属于路径约束,不能因为最终答案正确而忽略。
Anthropic 的 Agent 评测资料讨论任务、轨迹、结果与不同评分方式。本例的核心推论是:先写业务验收,再挑评分器;不能因为某个指标方便自动化,就让它定义成功。
模型裁判只是一个需要验证的判定组件
考虑以下原创算例,所有标签由教学设定给出,并非实测:
| 人工参考 | 裁判接受 | 裁判拒绝 |
|---|---|---|
| 正确 30 条 | 27 | 3 |
| 错误 10 条 | 4 | 6 |
总体准确率为 (27+6)/40=82.5%,但错误答案中有 4/10=40% 被放行;接受结果中的错误比例为 4/31≈12.9%。三个数字各自正确,却回答不同问题。
如果把裁判当发布门,重点之一就是错放,而不是只展示总体分数。还要检查长答案、专业术语、引用数量是否影响判断。权威语气能提高评分而证据没有变化,就说明评分器可能偏离真实目标。
这并非“模型裁判无用”,而是质量工具也需要自己的参考集、版本和适用边界。人工标签有争议时,同样需要回到业务判据,不能用多数票掩盖定义不清。
Reflection 与普通重试的区别在于新增了什么
工具临时不可用,原请求重试可能合理;报告遗漏部署版本,再生成一次同样的答案未必有帮助。有效反馈应该指出可行动的缺口,并让后续动作获得新信息或使用更明确的判据。
例如第一版认为产品支持恢复,所以当前实例能恢复。评审给出“缺少实际配置”,助手据此读取部署记录,发现没有启用。质量改善来自新增的环境证据与修正,而不是“反思”二字本身。
若同一个模型读同一份资料,既生成又批准答案,它可能重复同一个误解。即使换成另一个模型,也要考虑共享资料和相似偏差。增加独立原文检查或可执行验证,往往更容易解释为何能够改善。
自我反思不等于权重训练
Reflexion 论文明确讨论通过语言反馈和情景记忆改善后续尝试,而非直接更新模型权重。这个例子说明,“学习”在不同系统中可以指不同层次的变化。
| 改变的对象 | 可以观察到什么 | 不能自动推出什么 |
|---|---|---|
| 当前上下文 | 同一任务下一步策略变化 | 其他会话也会记住 |
| 外部记忆或规程 | 之后任务可读取经验 | 经验正确、适用于新场景 |
| 提示或路由配置 | 系统行为版本变化 | 模型参数被训练 |
| 模型权重 | 参数训练产生新模型版本 | 整个系统质量必然提升 |
系统实际改了哪一项,就按哪一项验证。把几轮文字反馈叫作自我进化,却没有说明保存了什么、在哪些独立任务有效,读者就无法判断能力声明。
反馈闭环也会把错误目标优化得更好
若评分奖励引用数量,Agent 可能补上无关链接;若奖励始终给出根因,它可能隐藏合理未知。运行更多轮反而更贴近错误目标。
因此先比较无反思、一次有依据的核查、自由反思三种配置,固定总预算与任务范围。记录哪些错误被修复、哪些正确答案被改坏、耗时增加多少。停止规则可以依据已满足的要求、仍有价值的证据缺口与预算,不应依赖模型一直自报“还有改进空间”。
本篇判断:评测基础设施和反馈循环可复用测试工程;开放语义下的正确性判定、裁判偏差与错误相关性增加了难度。反思是否有收益,需要比较结果;它与真正的参数训练也必须分别描述。