HARNESS / 代理工程下载 EPUB ↓
20 / 32

第十九章:把“看起来会用”变成可重复评估

19.1 两类评估分别进行

模型行为评估关注在给定任务与工具下是否做出合适选择;Harness 评估关注协议、执行、权限与恢复是否正确。使用随机模型测宿主异常,很难稳定重现;只用脚本模型,又不能证明真实模型能完成复杂任务。

因此先用确定输入覆盖宿主契约,再用真实模型做任务评估。前者能快速发现“截断参数被执行”之类错误,后者研究工具描述、上下文与策略怎样影响完成率。二者缺一不可,也不能用某一类通过来代替另一类。

19.2 一个最小故障矩阵

故障注入点 期望观察 验收依据
模型参数流截断 没有进入工具执行 没有 tool.started,也无外部修改
写策略关闭 写入被拒绝 denied 结果与原内容保留
文件读取后被修改 旧哈希写入冲突 conflict 且新内容未覆盖
工具开始后结果缺失 恢复进入核查 unknown,不自动重执行
模型直接宣称完成 宿主仍核对目标 验收失败,不产生 run.finished
会话已完成后文件变化 重新核对失败 不沿用旧成功掩盖当前状态

这张表是实验测试的设计依据,不是声称上游四套产品都已经接受相同测试。每个系统的真实保证,应结合其部署与功能配置分别验证。

19.3 指标需要明确分母

任务成功率的分母是什么?是否包含启动失败、预算耗尽和权限拒绝?重试后成功是否算一次?人工介入是否单独报告?不定义这些条件,两个百分比可能完全不可比。

成本也不只看模型 token。执行资源、等待时间、人工审批与错误恢复都有成本。一个策略降低请求次数,却让结果更难核查,未必改善整体效率。评估报告应保留任务集版本、模型配置、代码提交和评分器版本。

19.4 评分器也需要防误判

如果用另一个模型评分,必须防止被受测系统的文字误导。对文件修改任务,优先检查目标内容、测试产物与约束遵守;文字评分可以补充可读性,但不应代替机器可核查条件。

评分器不应和被测代理共享无限写权限,否则任务可能修改评分脚本或期望结果。实验把 acceptance 放在宿主控制路径里,说明验收与模型回复独立;生产评估还需更强的进程与资源隔离。

19.5 从失败中形成新的样本

每当出现真实问题,把最小输入、相关日志和可重现条件整理成回归样本。样本应表达行为,不只复制某次实现细节。比如“未知结果不重放副作用”比“第八行是某个字符串”更有长期价值。

练习:设计一个会让“只检查模型最终回答”的评估器误判的任务。最简单的反例是文件保持原样、模型却说已修复。再写一个真实文件断言,观察评估结论如何改变。

非官方学习读物 · 固定源码快照 · 原始代码保留各自许可。GitHub · 源码依据 · 实验代码