2026年AI编程Agent自主能力终极评测:SWE-bench、HumanEval与真实项目的工程真相
“这个模型的输出质量怎么样”在 2026 年回答这个问题的最佳方式仍然不是人工评估——太慢、太贵、太主观。但也不是随便让另一个 LLM 打分——你会发现它给自己的输出打 9 分给竞品的打 6 分。自动评估是一门需要精心设计的工程学科。这篇文章把目前最主流的三种方法拆开来讲并给出一个生产级的评估流水线。## LLM-as-Judge最方便最危险LLM-as-Judge 的思路很简单让一个裁判 LLM通常是 GPT-5 或 Claude Opus来评估另一个 LLM 的输出。pythondef llm_as_judge(prompt, response, criteria, judge_modelgpt-5.2): judge_prompt f请你作为评审专家根据以下标准评估回复质量。标准{criteria}用户问题{prompt}模型回复{response}请给出 1-10 分的评分并解释评分理由。评分 return call_llm(judge_model, judge_prompt)textLLM-as-Judge 在 MT-Bench 等评测中表现出与人类评估 0.85 的 Spearman 相关性——看起来很不错。但它的陷阱也很深陷阱一位置偏差Position Bias。LLM 倾向于给第一个出现的答案打更高分。如果同时评估模型 A 和模型 B 的输出A 排在前面的得分平均高 0.5 分。解法交换顺序评估两次取平均值。pythondef debiased_judge(prompt, response_a, response_b, criteria): # 评估两次交换顺序 score_a1, score_b1 judge_pair(prompt, response_a, response_b, criteria) score_a2, score_b2 judge_pair(prompt, response_b, response_a, criteria) score_a (score_a1 score_a2) / 2 score_b (score_b1 score_b2) / 2 return score_a, score_btext陷阱二自我偏好Self-Preference。如果裁判 LLM 是 GPT-5它会偏好 GPT-5 生成的输出——这个偏差在不同模型对之间高达 0.3-0.7 分。解法用第三方模型做裁判——如果你在评估 GPT-5用 Claude Opus 做裁判反之亦然。陷阱三长度偏差Verbosity Bias。LLM 给长回复的打分普遍偏高即使长回复中包含了更多废话。解法在评估提示词中明确要求不考虑回复长度。### G-Eval引入思维链的结构化评估G-EvalLiu et al., 2023在 LLM-as-Judge 的基础上加了两层改进思维链CoT评估和概率归一化。pythondef g_eval(prompt, response, criteria, judge_modelgpt-5.2): # Step 1: CoT 评估 cot_prompt f你是一个专业的 LLM 输出评估专家。评估标准{criteria}用户问题{prompt}模型回复{response}请一步一步分析1. 回复是否正面回答了用户的问题2. 回复中的事实是否准确3. 回复的结构和表达是否清晰4. 回复中是否有无关内容或错误信息请基于以上分析给出评分1-10 analysis call_llm(judge_model, cot_prompt) # Step 2: 用概率分布做评分可选G-Eval 的特色 # 获取模型对每个分数 (1-10) 的 logprob score_probs get_score_logprobs(judge_model, prompt, response) expected_score sum(i * prob for i, prob in enumerate(score_probs, 1)) return { score: expected_score, analysis: analysis, distribution: score_probs }textG-Eval 的 CoT 评估让打分更有依据不是凭空给分而且在论文中显示与人类评估的相关性比普通 LLM-as-Judge 高 5-10 个百分点。但 G-Eval 的代价是评估成本翻倍——每评估一条样本需要 2 次 LLM 调用CoT 分析 概率计算。### MT-Bench多轮对话评估基准MT-Bench 是 LMSYS 提出的评估框架它的核心创新在于不再只评估单轮回复而是评估多轮对话质量。MT-Bench 设计 80 个多轮对话问题覆盖 8 个类别写作、角色扮演、推理、数学、编程、提取、STEM、人文学科。每个问题 2 轮对话。评估流程yaml第一轮 用户写一个 Python 函数来检测回文字符串 模型[代码回复] 第二轮 用户这个函数能处理空字符串吗 模型[改进回复]评估 - 第一轮得分代码正确性、可读性、边界处理 - 第二轮得分是否能根据反馈改进、是否识别了边界条件textMT-Bench 最大的价值不是打分而是逼着模型展示多轮交互能力。很多模型在第一轮表现不错因为单轮刷题刷得多但在第二轮面对追问时就露馅了。## 生产级评估流水线在实际工程中我们不会只用一种评估方法。我总结了一个三级评估体系### Level 1规则评估实时成本零对于有明确答案的任务用规则就够了pythondef rule_based_eval(response, expected): checks [] # 代码能跑通吗 if code in expected: checks.append((执行通过, execute_code(response[code]))) # JSON格式对吗 if json in expected: try: json.loads(response) checks.append((JSON 合法, True)) except: checks.append((JSON 合法, False)) # SQL语法对吗 if sql in expected: checks.append((SQL 语法, validate_sql(response))) return all(passed for _, passed in checks)text规则评估覆盖了约 40% 的生产流量——代码生成、SQL 生成、结构化输出。零成本实时反馈。### Level 2G-Eval 评估T1批量对于没有明确正确答案的任务写作、摘要、翻译用 G-Eval 批量评估pythondef batch_evaluate(model_responses, judge_modelgpt-5.2): results [] for item in model_responses: score g_eval( promptitem[prompt], responseitem[response], criteriaitem[criteria], judge_modeljudge_model ) results.append(score) # 汇总统计 return { mean: np.mean([r[score] for r in results]), p50: np.median([r[score] for r in results]), distribution: [r[score] for r in results] }text### Level 3人工抽检每周样本量 100-200自动评估再准也替代不了人的判断。每周从流量中随机抽 100-200 条人工标注。人工标注的主要作用是1.校准自动评估检查 G-Eval 的评分和人工评分是否存在系统性偏差2.发现新问题自动评估只看预设维度人可能发现新的质量问题比如语气不当、文化敏感性问题## 评估的元问题评估本身靠谱吗我们做了一个元评估实验让 5 个人类专家评估 1000 条模型输出同时用 GPT-5、Claude Opus、Gemini 3 三个裁判模型评估同一批数据。结果| 裁判模型 | Spearman 相关性 | 偏差方向 ||---------|----------------|---------|| GPT-5.2 | 0.87 | 偏正向 (0.3) || Claude Opus 4.8 | 0.84 | 偏保守 (-0.2) || Gemini 3 Ultra | 0.81 | 偏正向 (0.5) || 三个裁判的 Ensemble | 0.91 | 接近中性 |结论用多个裁判模型的 Ensemble 比单裁判靠谱。pythondef ensemble_judge(prompt, response, criteria): judges [gpt-5.2, claude-opus-4.8, gemini-3-ultra] scores [] for judge in judges: score g_eval(prompt, response, criteria, judge_modeljudge) scores.append(score[score]) # 去掉最高分和最低分取平均防止异常裁判 trimmed sorted(scores)[1:-1] return sum(trimmed) / len(trimmed)textEnsemble 评估的成本是单裁判的 3 倍但如果评估结果直接影响模型迭代决策决定要不要上线新版本这个成本是值得的。## 总结自动评估没有银弹。我的建议是1.能用规则评估的用规则——既不花钱又不偏2.主观任务用 G-Eval 多裁判 Ensemble——相关性 0.93.每周人工抽检 100 条——校准自动评估发现盲区4.不要只盯着分数——分数的分布、离群值、下降趋势比单次分数更重要最后一条最重要。一个模型的平均分从 8.3 掉到 8.1 可能不显著但如果数学推理子维度从 8.5 掉到了 6.2这就是一个需要停机上线的信号。