
ProgramGym: Scaling Training Environments for Long-Horizon Program Reproduction Agents作者Chengyi Yang, Renxu Bao, Jue Hou, Zongpei Teng, Ziheng Wang, Yujie Lin, Chengsong Huang, Junnan Zhu, Delai Qiu, Yining Wang, Shengping Liu, Fei Long, Jinsong Su核心发表机构Xiamen University、Washington University in St. Louis、Institute of Automation, Chinese Academy of Sciences、Unisound论文链接arXiv:2610.13395v1发布于arXiv 预印本cs.SE六、局限性与展望 / Limitations Future WorkProgramGym 的局限可以分为五个层次任务定义层判定不完备、数据层测试质量、规模与难度分布、工程层构建成本与过滤、方法层工作流约束与长上下文、评测层比较缺口与训练细节披露。作者在正文中主动披露了这些边界本节按层次整理并把分散在结论中的扩展方向归并为可操作的展望。6.1 任务定义层判定不完备无法被工程手段消除这是最根本的局限。T i \mathcal{T}_iTi只覆盖有限输入通过测试只表明候选程序在被测行为上与B i ⋆ B_i^\starBi⋆一致不等于语义等价。其后果是双向的即使 Resolved 指标达到 100%也不能保证 agent 真正重建了程序的全部行为反过来一个语义正确的实现也可能因落在测试覆盖之外或存在实现无关的差异而在某些测试上失败被误判为错误。Program-Env 用四项检查pass / double / dummy / weak-assert与双通道反馈提高了测试的忠实性、稳定性与判别力但这些机制改善的是“测试有多好”不改变“测试只有有限条”这一事实。因此该局限属于任务定义层面而非流水线缺陷。展望。作者给出的方向是提高测试判别力以逼近语义等价。可延伸的路径包括把测试从“输入—输出对”升级为对可观察行为契约的更强约束如序列化格式的规范化比较、跨输入的差分性质检查以及在测试集之外引入独立的等价性审计信号。需要强调的是只要监督信号是有限黑盒行为判定不完备就只能被削弱而不能被消除ProgramGym 的诚实之处在于把这一点写进了任务设定而非留给读者推断。6.2 数据层一测试质量风险与训练信号污染单次测试生成容易漏掉重要行为或写出断言过弱的测试例如只检查进程退出码。若测试质量不足功能错误的重现会被当作正样本训练信号被污染——这是比“测试少”更危险的失效模式因为它以正确的形式注入错误的监督。作者的缓解手段是组合式的按模块并行生成、用程序分析与覆盖率定位未探索行为、以验证反馈迭代修订、37 条 weak-assert linter 规则、dummy check 识别同义反复。案例证据是paullouisageneau/violet上 linter 通过率从 0% 升到 98.3%、false-pass rate 从 1.41% 降到 0%。但必须限定解读这是特定仓库上的结果不能推断全部 1,648 个环境都达到同等质量论文也未报告跨仓库的 false-pass 分布。展望。自然的后续工作是把 false-pass 从案例级证据升级为数据集级度量对全部环境周期性注入已知错误的 dummy 变体并统计漏检率把 linter 规则集从当前的 37 条继续扩展并把单一 dummy 实现扩展为多档“退化程度”的 dummy 梯度从而区分“完全无意义输出”与“部分正确但关键行为缺失”两类错误。6.3 数据层二构建成本高、过滤剧烈、难度偏易成本与过滤。1,648 个环境耗 136.77B tokens平均每环境 82.99M tokens静态分析另耗 11.74 小时从 41,833 个检索仓库经元数据验证、commit 锁定、构建配置检测筛到 30,459 个候选最终只有 1,648 个成为任务。主要过滤原因包括无法在 Linux 上构建、需要 display 或用户输入设备、编译或插桩超过 3,600 秒限制。作者承认处理全部候选池超出预算pipeline 全自动、社区可从剩余仓库继续构建但这同时意味着当前数据集的覆盖仍有很大扩展空间且保留下来的环境在“可自动化构建”这一维度上是有偏的。难度分布。1,492 easy / 151 medium / 5 hard 的偏斜是有意为之作者给出两点理由ξ \xiξ衡量的是仓库大小而非从零复现难度大代码库可能只暴露少量黑盒入口和可观察行为远超当前模型能力的任务几乎不产生成功轨迹训练信号有限。这一辩护成立但代价是对困难任务的覆盖确实有限且现有难度分数与“复现难度”之间存在结构性错位。展望。作者明确表示模型能力增长后可将同一 pipeline 扩展到 medium/hard。在此之上更关键的一步是把难度度量与仓库规模解耦例如以“黑盒可观察行为的广度”“参考程序入口数量”“跨模块交互深度”等与复现难度更相关的量替代或补充ξ \xiξ从而使难度分桶真正反映任务难度而非代码体量。6.4 方法层工作流约束的代价与长上下文管理Implement 不访问参考程序是设计约束而非缺陷但存在权衡。作者的解释是职责分离Analysis 提取行为需求、Implement 从 Handoff artifacts 产生可构建修订、Review 独立识别剩余差异若 Implement 能访问参考程序agent 可能在完成主要目标后继续探测边缘情况、延迟交付退化为开放试错。代价是 Implement 阶段的行为证据完全依赖上游 Handoff 的质量——若 Analysis 遗漏关键行为Implement 无法自行补偿错误会沿修订链传递只能由 Review 在后续轮次发现。长上下文挑战仍在。任务常超过 256K 上下文窗口单会话 baseline 依赖 Claude Code 的上下文压缩才能继续Program-Agent 用角色隔离与 Handoff 缓解但 262,144 tokens 的最大序列长度、以及 64,505 条轨迹中“interaction segment 不等于独立 rollout”的事实说明长程任务的信息管理仍是开放问题。压缩必然有损角色隔离只是把“有损压缩”换成了“有选择的传递”并不能保证关键证据不丢失。展望。与论文结论一致最直接的方向是在角色隔离框架内引入更强的跨轮记忆例如把 Handoff artifacts 从自由文本升级为可检索、可校验的行为证据结构以及自动化的需求发现机制减少对 Analysis 单次质量的依赖。6.5 评测层比较缺口与披露缺口未与 MindForge 做 head-to-head 比较。原因是 MindForge 未发布环境与轨迹无法在匹配协议下评估。这意味着 ProgramGym 相对最接近的先前工作在实验上的优势是间接论证的——通过差异化的机制描述只限命令行程序 vs. 按恢复出的行为过滤轨迹与自身内部受控对比来支撑而非同一协议下的直接比较。训练细节的部分缺口。源码笔记明确记录未给出 SFT 的具体损失函数形式交叉熵 / 偏好优化 / RL 目标优化器之外的完整超参表已补齐学习率、batch、epoch、全参更新等但损失掩码之外的训练目标设计仍未有更细说明。这不影响对方法主线的理解但限制了对训练层面设计的独立评估与复现。度量上的方法论妥协。作者无法报告迭代平均覆盖率曲线子 agent 在不同轮次终止达到覆盖阈值、轮数上限或 early stop对存活模块取平均会偏向最难模块、低估反馈增益覆盖率只在所有分支终止后聚合到仓库级。因此作者改用 case studies 展示反馈效果。这是诚实但非定量的处理也意味着“双通道反馈带来多少覆盖率增益”目前只有个案证据如 COLMAP 的 29.92% → 42.86%、36.41% → 45.47%kubesess 的 4.88% → 85.77%缺少全数据集的分布级结论。展望。补齐比较缺口需要社区层面的协议共享发布环境与轨迹使匹配协议下的 head-to-head 成为可能。补齐度量缺口则需要在流水线中记录逐轮覆盖率轨迹而非仅终态聚合并采用对“不同轮次终止”更稳健的估计方式如按轮对齐的生存分析或对未终止模块的保守下界把反馈增益从案例升级为统计量。6.6 尚未解决的核心问题与总体展望必须重申完整复现程序仍未解决。Tests Passed 可超过 55%但 Almost Resolved 与 Resolved 接近零mini-SWE-agent 下所有旗舰模型 Resolved 均为 0.00%SFT 后在 Claude Code 下 Almost Resolved 甚至从 3.50% 降到 1.50%。这说明 ProgramGym 提升的是“部分功能可用”的能力而非“完整高保真复现”的能力——这一分化是论文自身反复强调的最重要负面信号也是最直接的改进靶点。综合来看后续工作可归为三条主线规模与覆盖把 pipeline 推广到更多语言与更难仓库并让难度分桶与仓库规模解耦监督保真度提高测试判别力以逼近语义等价把 false-pass 从案例证据升级为数据集级度量工作流与记忆在 Program-Agent 的角色隔离框架内引入更强的跨轮记忆与自动化的需求发现机制降低对单次 Analysis 质量的依赖。三条主线共享同一个前提ProgramGym 的定位是可规模化训练与诊断这一能力的基础设施而非已完成的解决方案。它的价值在于把“从零复现程序”从无法训练、无法诊断的状态变成可以规模化训练、并可以用受控实验分别量化“环境”与“工作流”两条增益路径的状态而它明确暴露的上述局限恰好构成了下一步研究的问题清单。原论文对应图片Distributions of code lines, coverage, and test cases in Program-Env.原论文对应图片Distributions of community activity, development history, and codebase size across the 1,648 collected repositories.原论文对应图片Token cost and generation quality of Program-Env. Dispatcher stage covers the LLM calls for coverage instrumentation, task decomposition and docs extraction.原论文对应图片fig:image_dataset_overview_repo原论文对应图片Overview of the Program-Env. Stage~1 collects repositories from GitHub by language and stars. Stage~2 builds the gold executableKaTeX parse error: Expected group after ^ at position 4: B_i^̲and runtime sandbox $S)原论文对应图片Overview of Program-Agent. The Analysis原论文对应图片A case of executable and sandbox generation guided by feedback. A missing package breaks offline compilation; the agent reads the feedback, adds libopenexr-dev原论文对应图片Overview of the dispatcher bridging Stage~2 and Stage~3. It decomposes the repository into modules, instruments the executable for coverage, extends $S原论文对应图片Program analysis guiding test writing on COLMAP. Top: coverage feedback (dynamic) steers the agent toward uncovered code in ply.cc原论文对应图片Coverage, total tokens across the three stages, and test cases as a function of reference code lines. Each point is one repository, colored by language. Token and test counts grow with repository size.原论文对应图片Performance distribution of large language models on ProgramBench with respect to output token length and test pass rate.原论文对应图片Test pass rate versus output tokens across models and agents.原论文对应图片Cumulative distribution of test pass rates across models and agent scaffolds on ProgramBench.原论文对应图片Reference vs. model code lines on a log–log scale. The (yx) diagonal indicates parity. Only solutions passing $$75% of tests are shown.原论文对应图片fig:plot_agent原论文对应图片fig:plot_agent原论文对应图片Overview of ProgramGym原文摘要:Coding agents are increasingly used to build programs from scratch as software engineers do rather than to resolve issues within a repository or to generate a repository from a given requirements document. However, scalable verifiable training environments that force agents to discover what is required and to decide how the system should be designed remain scarce. Moreover, existing agent workflows also cannot sustain long-horizon development in which the agent explores the reference program before implementation. To address these challenges, we introduce ProgramGym, a framework consisting of Program-Env and Program-Agent for scalable training environments of long-horizon program reproduction agents. Specifically, Program-Env constructs verifiable training environments from repositories through a feedback-driven loop that repairs runtime sandbox builds and the quality of black-box tests. Using this novel pipeline, we obtain 1,648 training environments spanning C, C, Go, and Rust. Program-Agent combines a role-isolated workflow of analysis, implementation, and review with revision management for compilation checks and failure recovery. Experiments on ProgramBench show that both Program-Env and Program-Agent improve performance on program reproduction. Fine-tuning on trajectories with these constructed environments raises the performance of Qwen3.8-27B from 34.87% to 42.84%. Program-Agent further raises the base and SFT models to 55.71% and 56.25%, both exceeding some flagship models. We will release the ProgramGym to support further research on coding agents that build programs from scratch.PDF链接:https://arxiv.org/pdf/2610.13395v1部分平台可能图片显示异常请以我的博客内容为准