评测要先隔离被测层:外部依赖可控、模型调用真实

**要评「Agent 拿到检索结果之后怎么用」,就必须把检索结果变成可控的构造数据,同时让模型调用真实发生。** 否则召回波动和被测策略的效果混在一起,结果无法归因。

一、隔离的是「不确定的那一段」

评测对象是 Agent + 工具使用规则,不是搜索服务的召回能力。所以:

  • 替换:真实搜索 → 测试版工具,按用例编号返回准备好的内容;
  • 保留:模型调用、工具调用决策、回答生成、完整调用链。

调用链固定为:输入题目 → Agent 决定是否调工具 → 工具返回指定结果 → Agent 给出答案与解析 → 保存完整过程。 这样单独检验的是「拿到结果之后如何使用」,暂不评价召回。

二、构造情形要覆盖「像但不对」

围绕同一个失效假设(相似题答案被误用),每道题配五种返回,覆盖从正常到冲突的梯度:

检索情形构造方式观察重点
原题命中返回同一道题及正确答案、解析改进策略是否影响正常答疑
选项重排题干相同、打乱选项顺序,返回原选项字母是否照抄答案字母
条件变化改一个影响答案的数字或约束,返回改后的题与答案是否把相似题当原题
无结果返回 found=false是否能独立解题
答案冲突题干相同,但答案与解析结论互相矛盾是否检查依据一致性

三、三条执行纪律

  1. 只改一处:B 方案相对 A 只增加「检索结果使用前校验」,其余提示词与配置保持一致。不同时改模型、讲解风格、记忆机制 —— 否则判断不出效果来自哪项改动。
  2. 不向 Agent 暴露用例标签:标签(如「这是条件变化用例」)只存在于测试编排里,泄露就等于给答案。
  3. 未调用工具也要记录:Agent 根本没调工具,说明调用策略本身有问题,属于有效结果,不是无效样本。

四、构造数据必须标注来源

人为改写的检索结果要标为「构造测试数据」,不能称作线上真实错误。 判据:证据的强度取决于它是怎么来的;把构造样本说成真实缺陷,结论会被高估。

同一条纪律还管到「谁提供的数据」:评测集若由他人(如测试同学)提供, 贡献就只能写成执行评测与问题定位,不能写成「我构建了评测集」—— 数据来源决定了哪部分能算你的成果。

五、隔离出来的层要显式声明边界

替换掉真实检索后,结论只覆盖「拿到结果之后如何使用」这一层。 所以:不能因为跑通了实验,就说优化了真实检索系统; 涉及召回率/覆盖率的问题(库里有没有、找不找得到)属于被替换掉的那一层,不在结论范围内。

相关