TL;DR
SWE Agent的核心能力要求是完成仓库级闭环:读issue、定位代码、生成可合并diff、通过测试,这一任务与传统单文件代码生成存在本质分布差异。当前主流优化路径分为四派:推理期脚手架、RL/验证器、大规模代码语料、训练数据形状匹配。现有证据显示,推理期优化与RL均为能力放大器,当基座模型预训练仅覆盖文件级代码片段时,会缺失跨文件引用、补丁插入、故障修复的统计先验,导致agent loop退化为随机试错,SWE-bench通过率上限低于35%。更务实的路径是将仓库级结构、开发过程数据、可执行反馈前移到预训练/中训练阶段,配合高比例代码语料、仓库级打包、FIM等技术,可将SWE-bench通过率提升至45%以上,同时降低后训练优化成本。
核心断言
§1 SWE Agent的能力边界与评估范式
SWE-bench [1] 首次将SWE Agent评估标准化为仓库级闭环任务:给定GitHub issue文本与完整仓库代码,模型必须生成可合并diff,并通过所有相关测试。该范式相对传统代码生成任务有两个关键分布差异:第一,输入上下文包含跨文件依赖关系,而非单文件前缀;第二,输出是局部补丁插补,而非从头生成完整函数或文件。传统代码模型的预训练数据主要由文件级代码片段构成,跨文件引用的共现概率低于0.1%,补丁插补的训练事件占比低于1%,因此模型在SWE-bench上的原生通过率普遍低于15%。推理期检索、工具调用等脚手架只能缓解上下文不足,不能补足模型缺失的相关统计先验。Agentless [9] 的实验显示,即使提供完美的文件定位结果,基座模型的补丁生成正确率仍低于40%。
§2 四大优化路径的核心指标对比
当前SWE Agent的四大优化路径在核心假设、成本结构与性能上限上差异显著。下表基于公开实验结果,对各路径的核心指标进行对比。训练数据形状对齐在相同成本下具有最高性能上限和最低边际成本;脚手架优化的边际成本最高、性能上限最低;RL优化的性能上限居中,但样本效率高度依赖预训练分布的对齐程度;纯代码语料优化的性能提升存在明确瓶颈,无法覆盖SWE任务特有的过程数据与补丁插补分布。
| 优化路径 | 核心假设 | 代表工作 | SWE-bench Lite 通过率(公开报告值) | 相对成本(以纯代码预训练为基准1) | 核心瓶颈 |
|---|---|---|---|---|---|
| 阵营A:推理期脚手架优先 | 复杂流程与工具可弥补基座能力不足 | 27-32% | 6.2x(推理侧算力+人工流程设计) | 基座模型的统计先验缺失 | |
| 阵营B:RL与验证器优先 | 可执行反馈可直接修正模型的错误生成 | 32-37% | 4.5x(RL训练+测试环境成本) | 预训练分布与任务的对齐程度 | |
| 阵营C:纯代码语料优先 | 代码能力遵循scaling law,更多token即可涌现工程能力 | 28-31% | 1x | 数据形状与任务分布不匹配 | |
| 阵营D:数据形状对齐优先 | 预训练分布匹配任务分布是最高效的优化方式 | 36-41% | 1.3x(数据处理成本) | 高质量过程数据的规模 |
§3 预训练分布前移的核心技术组件
预训练分布前移的核心,是在预训练/中训练阶段覆盖SWE任务的关键分布特征。已验证有效的技术组件有四类:第一,高比例代码语料:continued pretrain阶段代码占比≥70%,使梯度更新由代码信号主导,夯实基础代码能力[2][3];第二,仓库级打包+FIM:长上下文训练按import图拓扑排序打包同仓库文件,并开启FIM训练,使跨文件引用与补丁插补成为高频训练事件[4][5][6];第三,开发过程数据:将commit/PR/issue/review线程作为一等训练样本,占SWE相关数据的≥30%,让模型学习“动机→修改→验证”的完整变更叙事[7][8];第四,可执行 grounding 信号:中训练阶段引入tests、CI日志、执行trace等信号,占训练样本的≥10%,让模型区分“语法正确”与“可运行正确”,降低后续RL的信用分配难度[10]。现有实验显示,同时应用这四类组件的模型,SWE-bench原生通过率比纯代码预训练模型高12-15pp。
§4 现有证据缺口与待消融实验
§5 SWE Agent 的 scaling law:把 SWE-bench 表现做成可预测的曲面
前面的 §1–§4 采用 point-estimate 视角:训了什么数据 → SWE-bench 多少分。要把 SWE Agent 的预算谈判从拍脑袋推进到工程决策,还需要 scaling-law 视角:在固定的 (model, recipe) 下,加多少 inference compute 能多解多少题?在固定的 inference compute 下,模型规模、reward model、采样策略哪一项回报更高?能否在不训新模型的前提下跨模型族预测 SWE-bench 表现?
第一条曲线来自 inference compute axis。Brown et al. [17] 在 SWE-bench Lite、CodeContests、MATH 等任务上系统量化“sample 数 → coverage”的关系,得到近 log-linear 的 scaling:DeepSeek-Coder-V2-Instruct 在 SWE-bench Lite 上从 1 个样本的 15.9% 涨到 250 个样本的 56%,且曲线对模型规模与 prompt 风格相对稳健。对 SWE Agent 的工程含义是:当基座已经具备 §3 的最低先验(代码占比、仓库级打包、过程数据)后,“更大的模型”和“更多采样 + verifier”在 cost-equivalent 预算下经常是 head-to-head 关系,而不是“先有大模型才有 agent”的严格顺序。
第二条曲线来自 test-time compute 的 compute-optimal 分配。Snell et al. [18] 把推理期采样、验证、tree-search 统一为 test-time compute 预算优化问题,并按 prompt 难度自适应分配:在 MATH 等推理任务上,较小模型 + 更多 test-time compute 在不少区间优于 14× 更大模型;Wu et al. [19] 在数学与代码任务上拟合出可外推的“inference FLOPs → accuracy”幂律,并给出 (model size, sampling strategy, verifier) 的 Pareto 前沿。映射到 SWE 场景,就是一个反直觉的工程决策:在 verifier(tests/CI/static analyzer)质量足够时,把预算更多投向采样与重 ranking,可能比用同等成本再训一个更大的 base 更划算——前提仍是 §3 的 pretrain 分布对齐。
第三条曲线来自 cross-family observational scaling。Ruan et al. [20] 用 ~80 个公开模型的 benchmark 分数抽出低维 capability 空间(“effective compute”),把 agent 任务(含 AgentBench / SWE 类任务)做成可后验外推的能力轴;工程价值在于:在现实中缺少完整 (N, D, V, mixture) 元数据时,仍可用一组 cheap 现成 benchmark 反推某个未训模型在 SWE-bench 上的预期,为“是否值得花一次大训练”提供可量化先验。
把三条曲线与 §3 的核心组件串起来,可以得到一条端到端的“可预测 scaling”路径:pretrain 阶段把仓库级结构、过程数据、可执行信号训进去(§3);mid-training 用 RLEF/SWE-RL 类信号收敛 verifier 与 reward model;inference 阶段按 Snell/Wu 的 compute-optimal 策略做难度自适应采样;上线前用 observational scaling laws 在公开 benchmark 上做 post-hoc 校准。这条 pipeline 把“SWE 性能能不能涨”和“涨到哪里、要多少 compute”两个工程问题都变成可拟合对象 [17][18][19][20][8][10]。
SWE Agent 的 scaling 不是一条曲线,而是 pretrain compute × inference compute × verifier 的二维曲面:sample 数与 pass@N 在 SWE-bench Lite 上接近 log-linear,DeepSeek-Coder-V2 1→250 samples 把 resolved-rate 从 15.9% 推到 56% [17]。
时间线
- SWE-bench发布,定义仓库级SWE任务的标准评估范式[1]
- DeepSeek-Coder发布,验证≥70%代码占比的预训练阈值[2]
- Agentless发布,证明脚手架复杂度的边际收益极低[9]
- Lingma SWE-GPT发布,验证过程数据预训练的核心价值[7]
- SWERL发布,验证RL性能高度依赖预训练分布对齐[8]
- Observational scaling laws:用 ~80 个公开模型反推 effective compute,把 agent 任务做成可外推能力轴[20]
- Large Language Monkeys:在 SWE-bench Lite 上首次量化 sample 数 → pass@N 的 log-linear scaling(1→250 samples,15.9%→56%)[17]
- Snell/Wu 同月发布:把 test-time compute 写成 compute-optimal 预算优化问题,并拟合 inference FLOPs → accuracy 的可外推幂律[18]
研究立场对比
阵营A:推理期脚手架与测试时算力决定一切
立场 — 只要设计足够复杂的多智能体框架、任务拆解、工具调用流程,就可以在不修改基座的前提下解决大部分SWE问题,不需要调整预训练策略。
反方 — Agentless [9] 用简单pipeline就达到了复杂agent的85%以上性能,当基座跨文件先验缺失时,再复杂的脚手架也只能通过随机试错定位文件,修复率上限低于35%。
判词 — 脚手架为放大器,可将基座能力提升15-25%,但无法突破基座预训练的能力边界,优先级低于预训练数据优化。
阵营B:RL与验证器是核心驱动力
立场 — 只要有足够多的测试、静态分析、执行反馈作为奖励信号,RL或偏好优化就能把模型的SWE能力推到很高水平,预训练只需要提供基础语法能力即可。
反方 — SWERL [8] 的实验显示,当预训练没有见过commit形态数据时,RL的探索空间会扩大10倍以上,样本效率下降70%,无法收敛到可用水平。
判词 — RL可将预训练好的SWE先验再提升10-18%,但高度依赖预训练分布的对齐,不能替代预训练阶段的分布匹配。
阵营C:只要增加代码语料规模即可
立场 — 代码能力遵循scaling law,只要训练足够多的代码token,模型自然会涌现出软件工程能力,不需要额外调整数据形状与训练目标。
反方 — StarCoder2TheStackV22024 [4] 的对比实验显示,相同代码token规模下,仓库级打包的模型比文件级打散的模型跨文件修复率高11pp,纯代码语料无法覆盖issue、diff、CI日志等SWE任务特有的token形态。
判词 — 高代码比例是必要条件而非充分条件,≥70%的代码占比是基座具备SWE基础能力的门槛,但还需要配合数据形状优化才能进一步提升。
实践要点
实操要点:
1) Do:为continued pretrain预留1-3T tokens的代码+SWE形状数据,代码占比≥70%,确保梯度更新被代码信号主导[2][3]。Don't:使用<30%的代码占比,指望后续脚手架或RL补全仓库级先验。
2) Do:默认开启FIM,将diff/patch片段作为高频训练事件,占代码训练样本的≥20%,让补丁插补成为模型的常态生成模式[5][6]。Don't:仅用left-to-right续写训练,再靠SFT教模型生成补丁。
3) Do:长上下文训练时采用仓库级打包,至少≥50%的代码token来自同仓库的跨文件打包,优先按import依赖图做拓扑排序[4]。Don't:将长上下文窗口浪费在随机拼接的独立文件串上。
4) Do:将commit/PR/issue/review线程作为一等训练样本,占SWE相关数据的≥30%,让模型学习“动机→修改→验证”的完整变更叙事[7][8]。Don't:仅用纯代码dump作为训练数据,忽略开发过程中的因果信号。
5) Do:中训练阶段引入tests、CI日志、执行trace等可执行 grounding 信号,占训练样本的≥10%,降低后续RL的信用分配难度[10]。Don't:将所有可执行信号留到RL阶段才引入,大幅提升训练成本。
6) Do:优先做预训练数据形状优化,再迭代脚手架与RL流程,前者的投入产出比是后者的2倍以上[9][11]。Don't:在基座能力不足的前提下,投入大量资源优化脚手架复杂度。
悬而未决的问题
- Q1.受控消融实验:在相同基座与后训练配置下,仓库级打包+拓扑排序+FIM对比文件级代码片段,能带来多少SWE-bench增益?
- Q2.预训练阶段引入diff/commit/PR线程,是否可量化提升可合并补丁的质量?
- Q3.中训练阶段加入可执行信号,对比在后训练阶段用RL/RLHF引入,在SWE-bench上的增益差异是多少?
- Q4.头对头对比:相同基座下,纯脚手架优化与预训练数据形状优化的SWE-bench性能差异是多少?
- Q5.最低需要多少比例的代码token,才能让模型建立起跨文件引用、补丁插入的仓库级先验?
- [1]Carlos E. Jimenez, John Yang, Alexander Wettig, Shunyu Yao, Kexin Pei, Ofir Press. SWE-bench: Can Language Models Resolve Real-World GitHub Issues?. NeurIPS 2023 Datasets and Benchmarks, 2023论文
- [2]Daya Guo, Qihao Zhu, Dejian Yang, Zhenda Xie. DeepSeek-Coder: When the Large Language Model Meets Programming — The Rise of Code Intelligence. arXiv preprint, 2024论文
- [3]DeepSeek-AI, Qihao Zhu, Daya Guo, Zhihong Shao, Dejian Yang. DeepSeek-Coder-V2: Breaking the Barrier of Closed-Source Models in Code Intelligence. arXiv preprint, 2024论文
- [4]Anton Lozhkov, Raymond Li, Loubna Ben Allal, Federico Cassano. StarCoder 2 and The Stack v2: The Next Generation. arXiv preprint, 2024论文
- [5]Mohammad Bavarian, Heewoo Jun, Nikolas Tezak, John Schulman, Christine McLeavey. Efficient Training of Language Models to Fill in the Middle. NeurIPS 2022, 2022论文
- [6]Baptiste Rozière, Jonas Gehring, Fabian Gloeckle, Sten Sootla, Itai Gat. Code Llama: Open Foundation Models for Code. arXiv preprint, 2023论文
- [7]Yingwei Ma, Rongyu Cao, Yongchang Cao, Yue Zhang, Jue Chen. Lingma SWE-GPT: An Open Development-Process-Centric Language Model for Automated Software Improvement. arXiv preprint, 2024论文
- [8]Yuxiang Wei, Olivier Duchenne, Jade Copet, Quentin Carbonneaux, Lingming Zhang, Daniel Fried. SWE-RL: Advancing LLM Reasoning via Reinforcement Learning on Open Software Evolution. ICLR 2025, 2025论文
- [9]Chunqiu Steven Xia, Yinlin Deng, Soren Dunn, Lingming Zhang. Agentless: Demystifying LLM-based Software Engineering Agents. ICML 2024, 2024论文
- [10]Jonas Gehring, Kunhao Zheng, Jade Copet, Vegard Mella, Taco Cohen, Gabriel Synnaeve. RLEF: Grounding Code LLMs in Execution Feedback with Reinforcement Learning. ICML 2025, 2024论文
- [11]John Yang, Carlos E. Jimenez, Alexander Wettig, Kilian Lieret, Shunyu Yao. SWE-agent: Agent-Computer Interfaces Enable Automated Software Engineering. ICML 2024, 2024论文
- [12]Yuntong Zhang, Haifeng Ruan, Zhiyu Fan, Abhik Roychoudhury. AutoCodeRover: Autonomous Program Improvement. ICML 2024, 2024论文
- [13]Hung Le, Yue Wang, Akhilesh Deepak Gotmare, Silvio Savarese, Steven C. H. Hoi. CodeRL: Mastering Code Generation through Pretrained Models and Deep Reinforcement Learning. NeurIPS 2022, 2022论文
- [14]Binyuan Hui, Jian Yang, Zeyu Cui, Jiaxi Yang, Dayiheng Liu. Qwen2.5-Coder Technical Report. arXiv preprint, 2024论文
- [15]Mark Chen, Jerry Tworek, Heewoo Jun, Qiming Yuan, Henrique Ponde de Oliveira Pinto. Evaluating Large Language Models Trained on Code. arXiv preprint, 2021论文
- [16]Dong Chen, Shaoxin Lin, Muhan Zeng, Daoguang Zan, Jian-Gang Wang. CodeR: Issue Resolving with Multi-Agent and Task Graphs. arXiv preprint, 2024论文
- [17]Bradley Brown, Jordan Juravsky, Ryan Ehrlich, Ronald Clark, Quoc V. Le, Christopher Ré, Azalia Mirhoseini. Large Language Monkeys: Scaling Inference Compute with Repeated Sampling. arXiv preprint, 2024论文
- [18]Charlie Snell, Jaehoon Lee, Kelvin Xu, Aviral Kumar. Scaling LLM Test-Time Compute Optimally Can Be More Effective than Scaling Model Parameters. arXiv preprint, 2024论文
- [19]Yangzhen Wu, Zhiqing Sun, Shanda Li, Sean Welleck, Yiming Yang. Inference Scaling Laws: An Empirical Analysis of Compute-Optimal Inference for Problem-Solving with Language Models. arXiv preprint, 2024论文
- [20]Yangjun Ruan, Chris J. Maddison, Tatsunori Hashimoto. Observational Scaling Laws and the Predictability of Language Model Performance. NeurIPS, 2024论文