实测分享:AI Agent回归的裁判费从28美元降到3毛4,判得还更准了
背景
我们团队给业务系统上了个测试Agent,最头疼的不是让它跑,而是跑完之后"判分"。规则断言只能查确定性的东西(返回码、字段存在性),一旦涉及"这个回复算不算解决了用户问题"这种开放行为,只能上LLM-as-judge,结果两个老大难:贵——Claude当裁判,500次判定烧了28美元;飘——同一条trace判两次结论可能不一样,回归结果根本没法比。更现实的是,因为贵,多数团队只敢抽样判一小部分生产流量,剩下的全靠用户投诉兜底。
这两天LangSmith把TypeSafe的Jev集成进Evals当一等公民judge(9月22日上线,这两天各家周报还在转),我拿官方开源基准仓库完整跑了一遍,值得单独开一帖。
操作步骤
- 先把Agent的一次跑批固化成LangSmith dataset(frozen trace),这是前提——行为不变,不同judge的对比才有意义;
- 人工标一遍oracle答案,作为对照基准;
- 在tracing project的Evaluators tab里add evaluator、选TypeSafe,state选trace,写typed questions:does_pass用noul(返回yes/no带概率)、quality用score(1-5量表),多个问题并行打分;
- 离线跑dataset回归,再把同一judge挂到生产tracing project做在线评测,生产trace进来就自动判,PII泄露这类信号还能接webhook实时告警;
- 想复现数字,直接跑GitHub的jev-as-a-judge仓库(Python 3.13+,uv sync后跑judge_reliability.py)。
踩坑记录
- 低方差≠准确。Jev重放100次结论几乎不动(方差0.0000149),但它完全可能"稳定地错",第2步的人工oracle校准千万别省;
- 用LLM judge时,"自由文本转结构化"那一步本身就是错误源,跟推理对不对无关。Jev直接回类型化答案,绕开了这层;
- 开放式、要写推理过程的场景别硬上Jev,它只适合有界判定,这类还是留给LLM judge;
- 1万条trace/天的量级,大模型当在线裁判,账单能顶一台服务器,换Jev才有全量判的底气;
- 别一上来挂一堆typed question,每个问题都是一次调用,先跑通一两个关键判定再扩维度。
效果对比
同一基准(5条frozen trace×100次重复,共500个二元判定,以人工标注为准):
| Judge | 匹配人工 | 方差倍数 | 单次成本 | 总成本 |
|---|---|---|---|---|
| Jev | 100% | 1x | $0.00035 | $0.34 |
| GPT-5.6 Terra | 99.8% | 913x | $0.00289 | $2.90 |
| GPT-5.6 Luna | 96.4% | 433x | $0.00039 | $0.39 |
| Claude Sonnet 4.6 | 80.0% | 92x | $0.02811 | $28.17 |
总结
Agent测试的判定环节,正在从"买不起的LLM裁判"变成"全量、便宜、可重复的在线评测"。拿这次数据说话:换成Jev,省下的28美元预算足够把评测维度从1个扩到80个。我的建议:有界判定(pass/fail、量表打分、意图分类)全换成Jev这类决策模型,省下的预算拿去扩评测维度,比死磕一个贵裁判划算。目前TypeSafe注册还送5美元额度,够把自家Agent的回归判定整体迁一遍试个水。
你们团队的Agent回归现在用什么当裁判?欢迎评论区聊聊。