Rust in Everything
← 论文速递

When Requirements Interact: Scaling Long-Horizon Coding via Interdependent Specifications

Yishuo Cai, Minzheng Wang, Liang Zhao, Linghao Zhang, Lei Li, Shicheng Li et al.

2026-11-02▲ 8arXiv 2610.40256v1Hugging Face

本页由 AI 根据论文全文生成(deepseek-flash),可能有误,请以原文为准。

一句话

CodeSpecWeave 合成具有相互依赖规范和可靠可执行测试的编码任务,产出 4,670 个训练任务和一个 100 任务基准。

要解决的问题

编码智能体必须满足多维规范,例如接口兼容性、状态一致性和错误处理,同时不破坏现有依赖。现有任务数据缺乏规范密度和结构多样性,往往强调主要目标而忽略其他约束。朴素地添加规范可能使任务退化为独立编辑的检查清单,而验证细微交互可能漏掉隐藏缺陷或拒绝有效解。

方法

CodeSpecWeave 从开源提交历史、议题讨论和拉取请求中挖掘规范种子;经规范化去重后,在六种自然语言中得到 104,182 个候选规范单元。合成智能体探索仓库,并联合起草任务请求、细粒度规范和可执行测试,将需求锚定到共享状态转移或核心组件以形成相互依赖。该智能体在仓库中执行生成的测试,并基于运行时反馈改进它们,测试与规范灵活映射。审查智能体检查来自多个编码模型的补丁和执行轨迹,以识别接受不完整实现或拒绝有效替代方案的测试。随后修复智能体修订任务请求或验证器,修复后的任务-验证器对在接受前需经过执行检查、新的求解器试验和对齐审查。

实验结果

  • 完整流水线产出一个训练集和一个经人工审查的基准,每个任务包含大量规范。 §2.4
  • 自动审查在绝大多数候选任务中发现对齐缺陷,其中假阳性比假阴性更常见。 §2.4
  • 在一个生成批次中,难度过滤和审查仅保留初始任务的一小部分。 §2.4
  • CodeSpecWeave 在两个骨干模型上取得最高平均分,并在 CodeSpecWeave-Bench 和 DeepSWE 上尤其强。 §3.2.2
  • CodeSpecWeave 在规范数量分组和七类规范上均提升 Flash-SFT。 §3.2.3
  • 训练增加了 CodeSpecWeave-Bench 上的推理输出、代码修改和编辑-测试循环。 §3.2.2

局限

  • 通过 RL 使用合成任务提升模型性能需要大量计算资源进行训练实验。
  • 每个任务都有相关联的容器镜像,并在 Kubernetes pod 中运行,因此训练和评估需要基础设施来并发管理大量容器。
  • 生成高质量任务依赖强模型和多轮过滤,这会丢弃大部分生成的候选。

要点

  • 相互依赖的规范打破加性分解,因此为满足一个需求所做的选择会约束另一个需求的可行选项,并迫使进行联合推理。 §2.2
  • 任务被表述为仓库、自然语言请求、规范集合以及带验证器的执行环境;有效补丁必须满足所有规范。 §2.1
  • 规范种子从提交历史、议题讨论和拉取请求中提取,然后经过滤和去重,在六种自然语言中得到 104,182 个候选单元。 §2.3
  • 合成智能体组合与同一状态转移或核心组件相关的互补需求,使得孤立地满足一个需求仍会违反更广泛的契约。 §2.3
  • 审查智能体将执行轨迹与测试结果比较,以揭示缺失检查和强制执行非预期限制的测试,并利用混合的求解器成功情况来保留有挑战但仍可解的任务。 §2.4
  • 失败分析识别出针对某一规范但仍违反该规范的补丁,以及满足一个需求却违反另一个约束同一状态的需求的补丁。 §3.1.1
  • CodeSpecWeave-Bench 包含 1,044 条规范,组织为五个主要类别和总共七个类别,其中功能语义分为三个子类别。 §C.1
  • 人工审查检查了任务真实性、需求清晰性与一致性、测试对所述需求的覆盖、验证器限制、实现缺陷、环境问题和不稳定测试。 §A.2

思维导图

mindmap
  root["CodeSpecWeave"]
    ["问题"]
      ["规范缺少密度与多样性"]
      ["朴素规范变成检查清单"]
      ["验证漏掉缺陷或拒绝有效解"]
    ["合成"]
      ["挖掘开发者规范种子"]
      ["将需求耦合到共享状态"]
      ["共同起草查询、规范与测试"]
      ["执行测试并改进"]
    ["验证"]
      ["多模型求解器试验"]
      ["审查补丁与轨迹"]
      ["修复假阳性与假阴性"]
    ["产出"]
      ["4,670 个训练任务"]
      ["2,865 个仓库"]
      ["CodeSpecWeave-Bench 100 个任务"]
      ["1,044 条规范"]
    ["实验"]
      ["使用 GRPO 的 RL"]
      ["平均分 50.15 与 67.60"]
      ["CodeSpecWeave-Bench 52.00 与 70.67"]
      ["DeepSWE 25.30 与 62.98"]
    ["局限"]
      ["RL 需要大量算力"]
      ["需要容器基础设施"]
      ["过滤丢弃大量候选"]