SnowPR:私有仓库评测的题目合同、隔离与harness对照
SnowPR:私有仓库评测的题目合同、隔离与harness对照
知识点轴:benchmark-evaluation / harness-runtime / context management,关联sandbox-security的隐藏材料准入。基于2026-10-27 Snowflake官方工程文;作者结果不是本机复现,本文不转述成通用模型排名。
为什么值得深挖
用户关注企业内部coding-agent benchmark:私有Git history、BASE/RED/GOLD、隐藏verifier、本地runner与团队流程适配。SnowPR给出从真实merged PR到任务的多层质量门,尤其说明任务描述本身就是测量仪器。它比“用私有仓库防污染”多出了可操作的题目验收机制,可补repotrials-private-repository-coding-agent-eval与Agent-Benchmarks。
一阶机制:从PR拆出可见需求、可见BASE与不可见裁判
文章报告65个任务、11个产品领域:62题来自Java/C++ monorepo,3题来自Go工具仓库。agent拿PR之前的代码与任务说明,看不到PR的实现/新增测试,git history止于PR之前;agent结束后grader注入hidden tests,通过企业自己的Bazel构建/远程build farm判分。
可以映射为既有BASE/RED/GOLD思维,但这三个名字是本wiki的映射,不冒称原文术语:
- BASE:固定PR之前的代码/允许上下文;不让agent经refs/history找到后来的答案。
- RED:空改动须失败,证明题确实要求新增行为。
- GOLD:真实参考修复须通过,证明预期环境/题目有可行解。
- hidden verifier:agent提交后才注入;新行为测试与旧回归同时全过,才判trial通过。
每题至少1个主要新行为case及10个回归case;不足就借用在前后均通过的旧测试或弃题。文章报告65题合计147个Bazel target、676个新行为case、2890个回归case。target、test case、task、trial四个分母不同,不能拿较大测试数冒充更大的独立样本。
题目质量:LLM筛选、人审和描述充分性各管一件事
最大一次挖掘从13965个merged changes,经规则到4218候选,AI审查384个高排候选,其中84个通过;这只是一个挖掘pass,不能把84说成最终benchmark题数。LLM用于难度/可判分性筛选,人最终审任务;它不是最终正确性裁判,也不能用预测难度代替实测难度。
文章报告11项自动检查,包括描述须明确隐藏测试调用的新class/method;对抗审阅在49题上确认84项发现、8项blocking。更重要的反例:同一PR、相同hidden tests和参考修复,两位工程师写的需求说明对应trial通过率83%与57%。这说明差异可能来自需求恢复,而不只是编码能力;原文没有给出足以独立复算此对照的逐trial数据,不能把两个比例当普遍因果效应。
对企业题库,合理流程是:同一代码/判分器冻结 → 两版描述盲审 → 检查所有隐含API/环境前提 → 无参考补丁的新上下文合法解验证。GOLD会过不证明agent有足够需求信息,这与verifier-hardening-output-boundary-and-fresh-solvability的旧解回放/新盲解双门一致。
harness比较:把接口、模型、次数与成本固定下来
原文将agent定义为harness+model+仓库上下文/skills,每题重复3次;pass@1为所有trial通过比例,pass@3为至少一次成功的task比例。不能把62/65个task至少成功一次写成单次成功率,也不能把低价等同更快。
REM模式把file/shell/search/SQL等操作暴露为一个REPL中的Python函数,可在一步中组合多个操作;这是工具交互接口变化,不是增加了独立推理模型。文章称REM在相近pass率下较省钱/新token但耗时更长,成本含subagents;“new tokens”特指未命中缓存的输入加输出。本轮不依据图像反推额外数值,也不把内部REM当用户已可启用功能,原文明确它尚未向客户开放。
方法上可迁移的是与Harness-Engineering、Context-Engineering联合对照:相同模型/effort/题池/次数/仓库上下文下,改变工具呈现方式,同时报告总时长、全链成本、缓存输入和可判分覆盖。小题库“无法检出差异”不是“两个harness等效”,不同模型又会改变层级。
对用户的最小落地方案(建议,未创建题库)
- 从获准的私有仓库选少量已merge且行为测试充分的PR;给每题固定base SHA、允许文件、需求文档、依赖/runner镜像版本和hidden材料清单。
- 空patch失败、参考patch通过、合法替代解通过、明显伪解失败四项先过,再消耗模型预算。agent可见上下文、skills、refs、缓存和网络答案通道分别检查。
- grader在agent停止后由可信进程注入测试;独立读实际test collection/exit/result,禁止只看agent自报。测试只能覆盖所选行为,不等于全仓库无回归。
- 同模型重复,记录task×trial、状态、真实用例数、失败类型、墙钟和含subagent的成本;基础设施失败单列,不丢掉失败trial。
- 维护版本化release、修题/退题原因和冻结holdout;以企业任务能力曲线决定harness,而不是追一张外部榜。
边界与失败模式
- 私有代码降低公开题定向训练风险,但“没有公开训练数据”是作者主张,不证明供应商日志、组织内反馈、反复调参和未来holdout绝无泄漏。
- 题目按能运行的环境筛选,天然排除部分真实工作:文章说Snowfort端到端环境还不能在task container启动,重构/写测试/答代码问题也未覆盖。
- Java+C++跨语言题只有2题;其难度统计不宜直接外推所有跨语言工作。
- 文章说明grade使用随PR交付的测试,而非全量受影响target:这是可行性取舍,不是完整回归保证。
- 未取得私有任务包/runner/逐trial数据,未复现构建、模型或REM;正式沉淀的是评测设计,不是为作者榜单背书。
写入记录
- 2026-10-28 09:13 CST:深读SnowPR官方工程文,新增PR→任务质量门、描述充分性、隐藏材料/判分分母与同模型harness对照,保留私有包/逐trial与本机复现缺口。