26Eval Harness

L4P1

评估 agent 比评估模型难得多——agent 有 trajectory(中间步骤)、有外部副作用、有非确定性。

公开 benchmark:SWE-bench(GitHub issue 修复)、Terminal-bench(命令行任务)、GAIA(通用 agent)。问题:agent 可作弊——改 pytest reward 文件、跳测试、读测试源码反推答案。SWE-bench 历史上发生过多次 contamination。

LLM-as-judge:让另一个 LLM 评分。偏差:

· Position bias:偏好第一个答案。

· Length bias:偏好长答案。

· Agreeableness bias:容易被 prompt injection 改判。

· 复杂任务上错误率 > 50%。

新方向:Agent-as-a-Judge。让 evaluator agent(带工具)评判另一个 agent 的完整 trajectory——不只是看最终答案,而是看"过程中是否打开了正确的文件、是否调了正确的 tool、是否绕过了测试"。准确率显著高于纯 LLM-as-judge。

自建 eval:把 production 失败 case 攒成 regression set,每次 harness 改动 run 一遍。这是最务实也最有效的。

速查
"怎么知道 harness 改动是变好还是变坏?"——三件事:(1) 自建 regression set,(2) 每个 case run N 次取均值(消除采样噪声),(3) 用 Agent-as-a-Judge 看 trajectory。光看 SWE-bench 不够。
实战参考: OpenHands benchmarks(完整 eval 基础设施) · OpenHands Tech Report(SWE-bench 77.6 的方法论)