【LLM测评-05】代码:从“写个函数”到“修好一个真实 bug”
这是“LLM测评”系列的第 5 篇。这一篇聊程序员最关心的维度——代码:AI 写代码的能力是怎么测的,以及“能写函数”和“能修好仓库”差多远。
摘要
本文回答三个问题:代码评测是怎么演进的、SWE-bench 为什么是“最像真实工作”的代码考试、以及读代码类榜单时该注意什么。
核心论点:代码评测正在从“考试”走向“上岗”。 从写一个函数(HumanEval)到修好一个真实仓库的 bug(SWE-bench),评测越来越接近程序员真实的工作方式。
从一道“函数题”说起
如果你是 2023 年开始关注 AI 编程,一定见过这个数字:HumanEval 93%。
HumanEval 是 2021 年 OpenAI 提出的代码基准,只有 164 道题:给一段函数签名和 docstring,让模型把函数体写出来,然后用预先写好的单元测试验证。它当年证明了“大模型能写代码”。
但 2026 年再拿 HumanEval 说事,已经没什么信息量了——头部模型普遍 93%+,题目公开多年,早就被学透了。 就像用“会背九九乘法表”来区分大学生,没有意义。
代码评测的四级进化
代码评测走过了四步,每一级都比上一级更接近真实工程:

| 基准 | 考什么 | 2026 状态 |
|---|---|---|
| HumanEval | 写一个函数,跑单测 | 已饱和,头部 93%+ |
| MBPP | 描述 → 代码 → 测试 | 接近饱和 |
| LiveCodeBench | 动态更新的新题 | 当前主力对比榜 |
| SWE-bench | 真实仓库修 bug | 最接近工程,业界最看重 |
关键转折在 SWE-bench:它不再给模型一道“孤立的题”,而是扔给它一个真实开源仓库、一个真实的 bug 报告,让它自己读代码、定位问题、改代码、跑测试。
SWE-bench 为什么可信
SWE-bench 的评分设计是它可信的核心:用仓库里本来就有的测试套件当“考官”。

这意味着:
- 没有主观分:测试过了就是过了,不存在“我觉得写得不错”。
- 不考表演:模型不能靠话术让考官满意,只能真的改对代码。
- 可复现:同一个补丁,谁跑都是同一个结果。
它测的是真实的工程能力:读得懂代码库、找得到问题、改得动多个文件、过得了测试。
它测不到什么(重要)
SWE-bench 再接近真实,也还是考试:
- 不测需求理解:issue 已经写好了,模型不需要和产品经理对话。
- 不测评审沟通:不需要解释你的改动,不需要应对 code review。
- 不测可维护性:测试通过就完事,没人管代码风格和长期维护。
所以读榜时记住:SWE-bench 高分 ≠ 能替代整个程序员岗位,它衡量的是“给定明确任务,独立完成代码修改”这一段能力。
一个读榜提醒
SWE-bench 家族现在已经分化:Verified(500 个人工验证题,2026 年退役)、Pro(更难的多文件任务)、Multilingual(多语言)、Live(滚动更新)。读分数先确认:
- 哪个变体?(Verified / Pro / Multilingual / Live)
- 什么测试装置(harness)和增强结构(scaffold)跑的?(第 1 篇的教训)
- 报的是 pass@1 还是多次运行?
同一个模型在 Verified 和 Pro 上可以差 20 分以上——这是能力差距,不是噪声:多文件协同、长程上下文、抗污染,恰恰是“会写函数”到“会修仓库”之间消失的那部分能力。
实战:GPT-6 Astra——函数题饱和,真实工程任务差距拉开
2026 年 9 月 GPT-6 Astra 的官方数据,正好把“代码评测已进化”这件事演成了一张对比图:
Terminal-Bench 4.0(在真实终端环境里完成运维/科研任务):
| 模型 | Terminal-Bench 4.0 |
|---|---|
| GPT-6 Astra | 57.9% |
| Claude Fable 5.1 | 55.8% |
| Claude Opus 5 | 52.3% |
| GPT-5.6 Sol | 37.3% |
SRE-Bench(无源码的二进制逆向): Astra 88.0%,上一代 Sol 仅 55.9%,差 32.1 分。

这个案例印证了本篇的论点,还额外加了三条信息:
第一,“会写函数”确实没意义了。 官方这次几乎没有宣传 HumanEval/MBPP 这类函数题——因为头部模型都 93%+,没有宣传价值。真正拿来当卖点的是 Terminal-Bench(真实终端任务)、SRE-Bench(逆向工程)这种“上岗级”任务。
第二,真实任务的差距远大于函数题。 Astra 对 Sol 在 SRE-Bench 上领先 32.1 分、在 Terminal-Bench 上领先 20.6 分——这个差距比“会写函数”的差距大一个量级。越接近真实工程,新一代的领先越明显,这正是评测进化的价值:让真实差距显形。
第三,口径又一次决定数字。 ExploitBench(漏洞利用)官方口径 Astra 100% 满分,但抗污染版本(只含 2026 年 6-8 月的新漏洞)只有 39.0%——差 61 分。不是作弊,是题目是否被提前“见过”决定了分数:这正是第 7 篇要展开的“污染”问题,在代码/安全赛道尤其致命。
函数题考到人人满分,真实仓库和终端任务还能拉开 20-30 分的差距——读代码榜,请盯着最难的那一档。
小结
- 代码评测从写函数进化到修真实仓库,越来越接近上岗。
- SWE-bench 用真实测试套件当考官,客观可信。
- 读代码榜单先看变体、测试装置(harness)、增强结构(scaffold)和统计口径,别把“会写函数”当成“会修仓库”。
下一篇,我们进入最前沿的赛道——Agent 测评:当 AI 不再只“答题”,而是去“干活”,我们怎么给它打分?
会写函数和能修好仓库之间,隔着整个真实工程。