面向全程序合成智能体的行为等价驱动训练数据工程:从规约理解到行为验证的闭环飞轮
针对 ProgramBench 揭示的代码生成→软件工程能力鸿沟,提出行为等价驱动的训练数据工程框架 BEQ-SYNTH,通过行为规约挖掘、架构推理轨迹合成和行为差距驱动的迭代验证数据构建,系统性地填补全程序合成训练数据空白
背景与动机
代码生成≠软件工程:一个被精准量化的能力鸿沟
2026 年 5 月,Meta FAIR 联合斯坦福、哈佛发布 ProgramBench(arXiv:2605.03546),这一由 SWE-Bench 原班人马打造的全新基准测试揭示了一个震撼性事实:当前所有顶级模型(Claude Opus 4.7、GPT-5.4、Gemini 3.1 Pro 等)在全程序重建任务上的完整通过率均为 0%。当任务从”在已有代码结构中修改”升级为”仅凭可执行文件和使用文档从零重建完整程序”时,模型的表现彻底崩溃。
这一结果并非偶然。ProgramBench 精准地暴露了当前代码智能体训练范式的系统性缺陷:
- 训练数据粒度错配:现有代码训练数据以函数级补全和片段级修复为主,缺乏从需求规约到完整系统的端到端工程轨迹数据。
- 行为规约理解缺失:模型习惯于从代码上下文推断意图,而非从行为规约(如 CLI 输入输出规范、API 契约)反推实现,导致生成的程序在结构上”看起来对”但在行为上”不对”。
- 架构推理能力空白:ProgramBench 显示,模型(如 GPT-5.4)倾向于在单轮中生成 96% 的代码(一次性倾倒),缺乏渐进式架构规划、模块分解和接口设计的能力。
- 跨组件行为一致性保障缺失:模型无法在实现多个相互依赖的组件时维护全局行为契约,导致子系统看似正确但组合后行为不等价。
现有方案为何不够
| 方向 | 代表工作 | 核心局限 |
|---|---|---|
| 函数级代码生成 | HumanEval、MBPP、CoRE (2604.25399) | 仅评估单函数输入输出,不涉及系统级行为等价 |
| Bug 修复/Feature 实现 | SWE-Bench、SWE-CI (2603.03823) | 在已有架构上做局部修改,不触及从零构建 |
| 长程智能体训练 | SWE-Master (2602.03411)、daVinci-Agency | 轨迹数据限于已有代码库的导航与修改 |
| 多智能体编排 | ORCH-DATA、Orchestration Traces (2605.02801) | 关注编排决策但假设目标架构已存在 |
| 行为等价验证 | VeriEquivBench、Differential Fuzzing (2602.15761) | 仅做评估,不生成训练数据 |
核心缺口:没有一个框架系统性地解决”如何为从零构建完整程序的智能体生成高质量训练数据”这一问题。现有数据工程方法要么假设代码骨架已存在(SWE-Bench 类),要么聚焦于单步推理而非系统级工程流程。
核心思路
BEQ-SYNTH:行为等价驱动的全程序合成训练数据工程
我们提出 BEQ-SYNTH(Behavioral-Equivalence-driven SYNTHesis data engineering),一个以行为等价为核心约束的全程序合成训练数据工程框架。核心思想:
将”行为等价”作为一等训练信号,而非事后验证指标。整个数据飞轮围绕”行为规约→架构规划→增量实现→行为验证→差距定位→定向修复”的闭环构建。
与现有工作的关键区别
- vs. SWE-Master:SWE-Master 的后训练数据限于”在已有代码库中修复 issue”,BEQ-SYNTH 首次生成”从空白目录到完整程序”的端到端工程轨迹。
- vs. CoEvolve (2604.15840):CoEvolve 的智能体-数据共进化限于单任务环境交互,BEQ-SYNTH 在系统级多组件依赖图上建模共进化。
- vs. ProgramBench:ProgramBench 仅揭示问题(0% 通过率),BEQ-SYNTH 提出数据层面的解决方案——如何通过训练数据工程使智能体学会程序合成。
- vs. Triadic Data (2605.02244):该工作识别了长程 SE 中用户-智能体-环境的三元交互数据需求,BEQ-SYNTH 进一步将环境侧的行为规约显式化,并将其作为训练数据的组织核心。
技术路线
第一阶段:行为规约挖掘与分层抽象
目标:从现有开源软件中自动提取行为规约,构建分层规约库。
- 执行轨迹挖掘:对目标程序运行 agent-driven fuzzing(借鉴 ProgramBench 的反作弊测试生成技术),收集输入-输出行为对,构建行为规约的执行级描述。
- CLI/API 契约提取:解析 man pages、help 输出、API 文档,提取结构化的输入输出契约。
- 规约分层抽象:将行为规约分为三层:
- L1-功能规约:核心输入输出行为(等价于 ProgramBench 的通过标准)
- L2-接口规约:模块间调用契约和数据流
- L3-质量规约:性能、边界条件、错误处理行为
技术挑战:行为规约的完备性保证——fuzzing 无法穷尽所有行为路径,需结合静态分析推断缺失行为。
第二阶段:架构推理轨迹合成
目标:合成从行为规约到软件架构的推理轨迹,填补”需求→架构”的数据空白。
- 架构候选生成:给定 L1-L3 行为规约,使用强模型生成多个候选架构(模块分解、接口设计、数据流拓扑),每个候选附带显式的架构决策理由。
- 架构-规约一致性验证:对每个候选架构,验证其是否”覆盖”所有行为规约——即规约中的每个行为是否有对应的模块和接口可以承载。
- 轨迹重构:对通过验证的架构,回溯生成”架构推理轨迹”——展示从阅读规约到提出架构假设、验证假设、修正架构的完整思考过程。
- 多样性增强:对同一行为规约生成多种架构方案,引入架构风格变异(如单体 vs 微服务、同步 vs 异步),增加数据多样性。
技术挑战:架构推理轨迹的”合理性”评估——如何判断一条架构推理轨迹是高质量的学习信号,而非事后合理化?
第三阶段:增量实现与行为差距驱动验证
目标:合成增量实现轨迹,每个增量步骤后验证行为等价并定位行为差距。
- 基于架构的增量计划生成:根据架构的模块依赖图(DAG),生成拓扑序的实现计划,每个步骤实现一个模块或接口。
- 行为差距计算:每完成一个增量步骤后,运行行为测试套件,计算当前实现与目标行为规约之间的”行为差距向量”——即哪些规约项通过、哪些失败、失败的具体模式。
- 差距驱动的修复轨迹:基于行为差距向量,生成定向修复轨迹——不是盲目重写,而是精确识别失败的规约项,追踪其到具体模块,做最小化修改。
- 近成功挖掘:特别关注”几乎通过”的行为差距(如 95% 行为匹配但关键边界条件失败),这些是 ProgramBench 中模型最常见的失败模式,也是最值得学习的修复轨迹。
技术挑战:行为差距的精确定位——行为测试失败可能由多个上游模块的交互导致,需要因果归因技术将失败行为追溯到具体模块和代码位置。
第四阶段:共进化数据飞轮
目标:让训练数据与智能体能力共进化,持续生成”刚好处在能力前沿”的训练样本。
- 能力画像构建:维护智能体在不同类型行为规约、不同规模程序上的行为等价通过率画像。
- 难度自适应采样:根据能力画像,选择”当前模型最可能接近但尚未完全通过”的规约-架构组合生成训练数据,实现难度与能力的精准匹配。
- 失败模式驱动的对抗性规约合成:分析智能体的系统性失败模式(如 ProgramBench 揭示的”语言选择错误""单轮倾倒""边界条件遗漏”),合成针对性对抗性规约。
- 闭环保真验证:每个训练 epoch 后,在 ProgramBench 的子集上验证行为等价通过率的变化,确保数据飞轮确实在提升目标能力。
技术挑战:共进化中的分布偏移——当训练数据持续跟踪智能体能力前沿时,早期积累的数据可能变得过于简单,需要动态淘汰和更新数据分布。
预期成果
定量目标
- ProgramBench 子集通过率:在 ProgramBench 的”简单”子集(小型 CLI 工具)上,从当前 0% 提升至 15-25% 完整通过率。
- 行为等价匹配度:在”几乎通过”指标上从当前最优 3% 提升至 10-15%。
- 增量实现效率:与一次性生成相比,使用 BEQ-SYNTH 训练的智能体在实现过程中应减少 40% 的行为回归(新增模块导致已通过行为测试失败)。
- 架构合理性:生成的程序架构与原始架构的模块-接口对齐度提升 30%(相比基线的一次性生成)。
定性目标
- 建立”行为规约→架构→实现→验证”的端到端训练数据工程范式,填补全程序合成训练数据的方法论空白。
- 构建首个包含架构推理轨迹和行为差距修复轨迹的全程序合成训练数据集,开源以促进社区研究。
- 推动代码智能评估从”代码生成正确率”向”行为等价通过率”的范式转移。
可能的影响
- 弥合代码生成与软件工程的鸿沟:如果智能体能够系统性地从行为规约出发构建完整程序,将从根本改变 AI 辅助软件开发的范式。
- 数据工程方法论贡献:行为等价驱动的数据飞轮思想可推广到其他需要”全局一致性”验证的智能体训练场景(如科学计算流程合成、多服务编排)。
- 对 AI for Science 的启示:科学计算程序(如 PRBench 中的物理论文复现)同样面临从论文描述到完整实现的行为等价问题,BEQ-SYNTH 的方法论可直接迁移。
相关工作
-
ProgramBench: Can Language Models Rebuild Programs From Scratch? Yang et al., arXiv:2605.03546, May 2026 https://arxiv.org/abs/2605.03546 — 揭示全程序合成 0% 通过率的基准测试,是本研究的直接动机。其行为等价评估框架和 agent-driven fuzzing 测试生成技术为 BEQ-SYNTH 的验证机制提供了基础。
-
The Conversations Beneath the Code: Triadic Data for Long-Horizon Software Engineering Agents Kim, arXiv:2605.02244, May 2026 https://arxiv.org/abs/2605.02244 — 提出长程 SE 智能体的三元交互数据(用户-智能体-环境),启发我们将环境侧行为反馈显式化为一等训练数据对象。
-
SWE-Master: Unleashing the Potential of Software Engineering Agents via Post-Training Song et al., arXiv:2602.03411, Feb 2026 https://arxiv.org/abs/2602.03411 — 系统探索了 SE 智能体的后训练管线,但其数据限于已有代码库中的 issue 修复轨迹。BEQ-SYNTH 将后训练数据扩展到从零构建的场景。
-
Discovering Reinforcement Learning Interfaces with Large Language Models Jaswal et al., arXiv:2605.03408, May 2026 https://arxiv.org/abs/2605.03408 — 使用 LLM 自动发现 RL 环境接口(观测空间和奖励函数),为 BEQ-SYNTH 中行为规约的自动提取和奖励函数设计提供了方法论支持。
-
VeriEquivBench: An Equivalence Score for Ground-Truth-Free Evaluation of Formally Verifiable Code Zeng et al., arXiv:2510.06296, ICLR 2026 Poster https://arxiv.org/abs/2510.06296 — 提出无参考实现的代码等价性评估方法,其行为等价评分机制为 BEQ-SYNTH 的增量行为差距计算提供了评估工具。