CodexQA

Industry & PracticeResearch & Benchmarks

说得清楚不等于查得对:腾讯 RepoProbe 用清单给仓库问答打分

CodexQA 团队7 min read

500 道 GitHub Discussions 改写题,10 分清单。GPT-5.2 总分 62.7%,完美求解率最高的 Claude Opus 4.6 也只有 27.5%。清晰分一律高于知识分。

In this piece

说得清楚不等于查得对:腾讯 RepoProbe 用清单给仓库问答打分

腾讯混元和浙江大学的预印本 RepoProbe: Benchmarking Architecture-Aware Repository Comprehension with Checklists,arXiv 公开戳记是 2026 年 8 月 5 日(2608.04783v2)。PDF 页眉是 ASE ’26,2026 年 10 月 12 日至 16 日,慕尼黑;稿件行写 Received 2026-03-26、accepted 2026-06-18。下面的日期以 arXiv 公开日为准。第一作者单位是浙江大学,多位作者单位是 Hunyuan, Tencent,通讯邮箱里有 alyssawwu@tencent.com。RepoProbe 评的是:给一个仓库和一道从 GitHub Discussions 改写来的问题,Agent 要解释现有代码,而不是改它。

缺陷单会把定位捷径算进理解

仓库级评测里,RepoQA、LongCodeU、LoCoBench 主要看长上下文检索。SWE-bench、BeyondSWE、SWE-Refactor 给了 issue、失败现象或明确的修改目标,补丁能过测试,不等于能讲清设计。CoReQA 和 SWE-QA 做仓库问答,RepoReason 做断言验证。RepoProbe 用 Discussions 里的「怎么做、为什么」,因为 Issues 里的栈回溯常常把文件位置直接送出来。

开放回答不能用 BLEU 或 ROUGE。标量式 LLM 裁判又容易奖给写得顺的答案。RepoProbe 把参考答案拆成加权清单,再逐条核对。

5233 条讨论收成 500 题

仓库要同时满足:2024 年 1 月 1 日及之后创建、至少 1000 star、开了 Discussions,并且 Q&A 或 Help 类里至少有 10 条由维护者或原作者标成 answered。先收齐已回答讨论,5233 条。去掉问题和答案依赖图片的线程,再用 Claude Sonnet 4.5 分成三类:项目架构、业务逻辑、实现细节。这一步剩 2613 条。

外链要抓回来,由同一个模型摘要后写进题面或答案,评测时不再上网。没有外链的保持原样。清单也由 Claude Sonnet 4.5 生成。然后用基于 Claude Opus 4.5 的协议做两道自动检查:外链对不对得上仓库,以及每条清单能不能只靠仓库代码和改写后的题面验证。这一步是 51 个仓库、1107 对问答。

人工再看四条:问答是否一致、清单是否够细且不搅在一起、是不是不看仓库就能答、答案是否依赖代码或配置。分歧靠讨论解决。一半以上的候选在这一步丢掉,主要原因是不看仓库也能答。最终 50 个仓库、500 题。其中 225 题把外部上下文并进了文本。平均每个仓库大约 1200 个文件、大约 38 万行。15 种语言。复现包在参考文献里仍是待替换的 GitHub 地址,这篇 PDF 还没有可打开的数据 URL。

每题四个部分:问题、仓库、维护者接受的参考答案、加权清单。清单是 10 分制。知识项 k 取 1 到 4 条,整数权重加总为 9。剩下 1 分是统一的清晰与组织,用来标严重幻觉或结构不连贯。复杂项可以给部分分,例如 4 / 2 / 0;单事实项是满分或 0。裁判只能选清单里预先写好的分值。总分是各项之和,报告时再除以满分,写成百分数。

裁判协议有两条约束:先写理由再打分;分数必须落在允许的离散值上。实现上是一次推理,输出整份 JSON,不是每条清单各跑一次。默认裁判是 Claude Sonnet 4.5,并且因为清单是它生成的,它不进入被测模型。Opus 4.5 参加了质检,但仍在被测名单里。

同一套 Claude Code,20 个模型

被测全部走固定的 Claude Code,工具包括文件系统、符号搜索和交叉引用。这样比的是模型,不是脚手架。20 个模型、10 家。闭源 13 个:GPT-5.2、GPT-5.4、Claude Opus 4.5、Claude Opus 4.6、Claude Sonnet 4.6、Grok、Gemini 3 Flash、Gemini 3 Pro、Gemini 3.1 Pro、Qwen3-Max、Qwen3.5-Plus、Doubao-Seed-1.8、Doubao-Seed-2.0。开源或开放权重 7 个:GLM-4.7、GLM-5、DeepSeek-V3.2、Kimi-K2、Kimi-K2.5、MiniMax-M2.1、MiniMax-M2.5。正文模型名单写 Grok 4.20,表 3 写 Grok 4.2,下面按表 3 记。

四个指标都是百分数。总分是 s/10 的平均。知识分是知识项得分除以 9。清晰分是那 1 分项的平均。完美求解率是 s=10 的题占比。表 3,列顺序是总分、知识分、清晰分、完美求解率:

  • GPT-5.2:62.7,60.3,84.7,26.0
  • GPT-5.4:60.4,57.6,85.6,24.2
  • Claude Opus 4.5:58.1,56.2,75.1,23.1
  • Claude Opus 4.6:62.1,60.2,79.0,27.5
  • Claude Sonnet 4.6:60.2,58.3,78.2,27.2
  • Grok 4.2:56.8,54.8,75.0,23.4
  • Gemini 3 Flash:55.4,53.6,71.6,21.8
  • Gemini 3 Pro:51.3,49.3,71.2,17.6
  • Gemini 3.1 Pro:54.1,52.2,70.9,21.2
  • Qwen3-Max:27.3,26.1,39.3,5.6
  • Qwen3.5-Plus:50.0,48.1,66.9,17.8
  • Doubao-Seed-1.8:43.5,42.4,55.1,12.8
  • Doubao-Seed-2.0:46.8,45.1,62.2,14.6
  • GLM-4.7:50.7,49.3,64.8,18.4
  • GLM-5:54.8,52.9,72.2,21.3
  • DeepSeek-V3.2:52.9,51.3,68.7,18.8
  • Kimi-K2:45.9,44.1,61.3,15.6
  • Kimi-K2.5:53.7,51.8,71.1,19.9
  • MiniMax-M2.1:45.0,43.6,57.8,12.8
  • MiniMax-M2.5:44.6,42.8,61.2,14.5

总分最高是 GPT-5.2 的 62.7,其次 Claude Opus 4.6 的 62.1。完美求解率最高是 Opus 4.6 的 27.5,Sonnet 4.6 是 27.2。清晰分最高是 GPT-5.4 的 85.6,但它的总分 60.4 低于 GPT-5.2。知识分最高仍是 GPT-5.2 的 60.3,Opus 4.6 是 60.2。

换代不一定更好。Opus 4.6、Gemini 3.1 Pro、GLM-5、Kimi-K2.5 高于各自的前一版。反向的是 GPT-5.4 低于 GPT-5.2(60.4 对 62.7),MiniMax-M2.5 低于 M2.1(44.6 对 45.0)。Qwen3-Max 的 27.3 远低于 Qwen3.5-Plus 的 50.0。所有模型都是清晰分高于知识分。最好的完美求解率也不到 28%。

表 4 是 20 个模型的平均总分,括号里是标准差。三类理解:项目架构 53.8(7.9),完美求解率 19.2(5.7);业务逻辑 52.3(9.4),完美求解率 15.8(5.4);实现细节 51.2(8.2),完美求解率 19.4(5.6)。业务逻辑的平均分不最低,但完整做对最少。

主题:安全 56.0(8.9),云与 DevOps 55.4(7.6),监控工具 55.1(8.6),LLM 框架 51.8(8.0),编辑器界面 50.7(8.7),开发者 SDK 50.3(8.6),数据处理 47.6(7.6),桌面应用 47.3(9.0)。语言从 TypeScript 57.6(8.7)、Java 56.4(9.7)、Lua 55.6(9.5),到 Python 53.1(7.8)、Shell 52.2(7.7)、Go 52.1(7.8)、C 51.9(6.8)、Ruby 48.8(6.7)、Rust 48.2(9.7)、C# 47.6(7.5)、C++ 47.4(11.4)、JavaScript 46.5(8.9)、PHP 45.4(8.3)、Swift 43.3(9.2)、QML 38.4(8.8)。图 3 的语言占比没有逐项写进正文,这里只用表 4 的均值。

清单比标量稳,但两张表不是同一次考试

可靠性实验用同一个 Claude Sonnet 4.5,对三个模型各跑 5 次。标量基线沿 SWE-QA 的五维李克特。表 5 把标量分和清单分并列,单位都是百分数,后面是标准差和极差:

  • GPT-5.2:标量 91.3、2.9、6.9;清单 76.3、1.7、3.8
  • Claude Opus 4.5:标量 85.4、3.5、8.3;清单 71.8、1.5、3.2
  • Gemini 3 Pro:标量 82.2、3.3、7.8;清单 65.6、2.4、5.2

清单的标准差大约是标量的一半。标量极差最大是 Opus 4.5 的 8.3 个百分点。这些清单分不能和表 3 对读:GPT-5.2 在表 3 是 62.7,在表 5 是 76.3。论文没有写这 5 轮是不是全部 500 题。

个案也分开。Pulse 仓库上,Opus 4.5 的两次标量分是 50% 和 90%,一个裁判当矛盾,一个当合理展开;清单五次都指出漏了第二个解法,分是 70%。adk-python 上,GPT-5.2 的两次标量都是 80%,但一个说要补细节,一个说太啰嗦;清单是 30%,五次都指出文件路径不完整、存储机制没解释。

低于 60 分的失败里,改代码冲动占一截

失败模式用 Gemini 3 Flash 做裁判,只看低于 60% 的回答,作者先定了五类,再人工核过被标成 Edit Bias 的样本。Edit Bias 指的是:问题在问现有设计,模型却去写新代码或新配置。表 7 的列是 GPT-5.2、Claude、Gemini,以及这三列的平均。Claude 这一列没有写型号;正文把 24.0% 对应到 Gemini 3 Pro。

  • Edit Bias:10.4,13.0,24.0,平均 15.8
  • 解释太浅:38.5,21.0,25.0,平均 28.2
  • 找到代码但分析错:29.2,43.0,26.0,平均 32.7
  • 没检索到相关文件:17.7,21.0,18.0,平均 18.9
  • 幻觉:3.1,2.0,6.0,平均 3.7

GPT-5.2 这一列加总是 98.9,不是 100,应按表内四舍五入读,不要自行补齐。例子是 adk-python:用户问能不能加一个日志保存位置的配置,因为 Windows 上建符号链接遇到 WinError 1314。GPT-5.2 去改 cli_tools_click.py、加命令行旗标。维护者的答案是把 os.symlink 换成 shutil.copy2,权限问题才消失。清单因此核的是「有没有碰到符号链接权限这个根因」,不是旗标写出来没有。

这些数不能被读成什么

500 题来自 2024 年及以后、至少 1000 star 的仓库,不能外推到更老或更小的项目。15 种语言的题量不均,表 4 是模型平均,不是每题等权后的另一种总分。图 3 没有逐语言题数。裁判是 Claude Sonnet 4.5,清单也是它生成的;Opus 4.5 参加过质检又参加被测。表 5 和表 3 的分不能混用。失败模式只覆盖低于 60% 的回答,Claude 列没有型号。Grok 的名字在正文和表里差一个写法。复现包 URL 在这版 PDF 里还是占位。分数绑在这一套 Claude Code 上。预印本许可证是 arXiv.org perpetual non-exclusive license,这篇只复述评测口径和表内数字。

出处:腾讯混元、浙江大学,Yuexi Yang、Alyssa Wu、Ji Luo 等,RepoProbe: Benchmarking Architecture-Aware Repository Comprehension with Checklists,2026-08-05,https://arxiv.org/abs/2608.04783

Found it useful? Pass it on

WeChat

Scan with WeChat to open it on your phone and forward it.

Subscribe via RSS

Submit a correction