核心发现
方法论
本文提出一种基于单次LLM调用的“探测-修正”调优流程,利用合成故障探针对仓库指导文件进行迭代诊断与修补。该方法不依赖多轮代理循环或工具调用,直接通过合成故障样本引导LLM生成针对性修正,提升指导内容的覆盖率。实验证明在Qwen3.5-35B-A3B模型上,经过4轮独立试验,平均解决率由初始化的28.3%提升至33.0%,显著优于未指导(25.5%)和静态知识库(28.3%)基线。调优过程强调覆盖范围的扩展而非单一修正精度,提升了可评估补丁的比例(增加14.5个百分点),而每个补丁的准确率保持稳定(约59%,p=0.119),表明改进的指导帮助模型定位正确文件,而非改善修正质量。进一步的步骤预算实验显示指导使模型能更有效利用较大步数预算,跨模型实验表明模型能力不足时调优循环会退化,但每个补丁的精度仍保持不变。
关键结果
- 在四次独立试验中,probe-and-refine方法实现33.0%的平均解决率,显著优于静态知识库(28.3%)和无指导(25.5%)的基线(p<0.001),表明通过合成故障引导的迭代调优能有效提升代码修复能力。
- 改进主要源于覆盖率的提升:经过调优的指导文件能产生可评估的补丁实例多出14.5个百分点,说明模型在定位正确文件方面的表现增强,而每个补丁的平均精度(约59%)未显著变化,强调指导内容的实用性。
- 步骤预算实验显示,指导策略使模型能在更大步数预算下更高效地完成任务,跨模型测试中发现当模型能力不足时,调优循环的效果会减弱,但补丁精度仍保持稳定,验证了方法的稳健性。
研究意义
该研究揭示了指导内容生成的关键作用,为提升LLM在软件工程中的应用提供了新思路。通过合成故障样本的迭代调优,不仅改善了模型的任务覆盖能力,还避免了复杂的多轮交互或强化学习的引入,为代码代理的自主调优提供了简洁高效的方案。这一方法在实际软件开发中具有广泛应用潜力,尤其是在自动化修复和持续集成中,可显著降低人工干预成本,提升修复效率,推动AI辅助软件工程的落地。研究还强调了模型能力不足时调优循环的局限性,为未来模型能力提升和调优策略设计提供了指导。
技术贡献
本文的核心技术创新在于提出一种纯粹基于单次LLM调用的“探测-修正”调优流程,利用合成故障样本进行多轮迭代,系统性地优化仓库指导文件。该方法突破了传统依赖多轮交互或强化学习的限制,强调内容的诊断性修正,显著提升了模型在实际任务中的覆盖率。实验证明,该调优流程在不增加模型复杂度的前提下,能实现33%的平均解决率,优于静态知识库和无指导基线,验证了其在软件工程中的实用性。技术上,该方法结合了合成故障生成、单次诊断、指导内容的机械修正和多轮迭代,形成了简洁高效的调优框架,具有良好的迁移性和扩展性。
新颖性
该研究的创新点在于首次系统性将合成故障样本引入LLM指导文件的迭代优化中,强调内容的诊断性修正而非单纯生成,突破了现有多轮交互和强化学习的限制。与传统方法依赖复杂的代理循环不同,本文提出的“探测-修正”流程仅通过单次调用实现多轮优化,简洁高效,且在多个软件仓库中验证了其有效性。这一机制在软件工程中尚属首次,展示了内容驱动的操作指导在提升模型性能中的潜力,为未来基于提示工程的调优策略提供了新范式。
局限性
- 该方法在模型能力不足或输出诊断信息不充分时效果会减弱,调优循环可能无法持续改善指导内容,影响最终性能。
- 调优过程中生成的指导内容长度较长(平均增加63%),可能在实际应用中受到上下文长度限制,影响效率。
- 目前仅在特定模型(Qwen3.5-35B-A3B)和特定任务(SWE-bench)上验证,泛化到其他模型或任务场景仍需进一步研究。
未来方向
未来可探索结合多模态信息或强化学习机制,提升调优的自适应能力和鲁棒性。同时,扩展到更大规模模型和多任务环境,验证方法的普适性和扩展性。此外,研究如何自动生成更高质量的合成故障样本,以及在实际工业环境中实现持续在线调优,也是未来的重要方向。
AI 总览摘要
在软件工程自动化领域,利用大规模语言模型(LLM)作为代码代理的研究正迎来快速发展。然而,模型在实际任务中的表现极大依赖于仓库的操作知识和指导信息。传统的静态指导文件(如AGENTS.md)在提升效率方面存在争议:一些研究显示其能降低运行成本,而另一些则指出可能削弱模型的解决能力。本文提出了一种创新的“探测-修正”调优方法,旨在通过合成故障样本的迭代诊断,系统性地优化仓库指导内容,从而提升模型在代码修复任务中的表现。
该方法的核心在于利用单次LLM调用生成一组合成故障样本,模型尝试修复后,自动评估修复效果并据此修正指导内容。整个过程无需多轮交互或强化学习,仅通过机械修正实现内容的逐步优化。在四个独立试验中,经过4轮迭代,平均解决率由28.3%提升至33.0%,显著优于未指导(25.5%)和静态知识库(28.3%)的基线。这表明,内容的诊断性修正比单纯生成更关键,覆盖范围的扩大带来更高的任务完成率。
实验还显示,指导内容的改善使模型能更有效利用较大步数预算,跨模型测试表明,当模型能力不足时,调优循环的效果会减弱,但补丁精度仍保持稳定。这一发现强调了模型能力与调优策略的相互关系,也为未来多模型、多任务环境中的调优提供了参考。
总体而言,本文的贡献在于提出了一种简洁高效的内容驱动调优框架,突破了传统依赖复杂交互的限制,为自动化软件修复和持续集成提供了新的技术路径。未来,结合多模态信息和强化学习机制,有望进一步提升调优的智能化水平,推动AI在软件工程中的深度应用。
深度分析
研究背景
随着大规模语言模型(如GPT、Codex、Qwen)在代码理解与生成方面的突破,代码代理逐渐成为软件工程的重要工具。早期研究主要关注模型的能力提升和任务特定微调(如CodeT5、CodeBERT),但实际应用中仍面临知识迁移不足、上下文理解有限等挑战。近年来,研究者开始探索如何通过引入仓库级别的结构化知识(如RepoGraph、AutoCodeRover)和上下文信息(如AGENTS.md、SWE-bench)来增强模型性能。尽管如此,关于指导文件的内容、生成方式和效果仍存在争议。一些研究发现,经过精心策划的指导能显著提升效率(Lulla et al., 2026),而另一些则指出自动生成的指导反而降低了任务成功率(Gloaguen et al., 2026)。这表明,指导的内容质量和生成机制是影响效果的关键因素。当前,调优策略多依赖于复杂的多轮交互、强化学习或微调,存在成本高、复杂度大的问题。本文试图通过简洁的内容诊断与修正流程,解决指导内容的生成与优化难题,为自动化软件修复提供新的思路。
核心问题
核心问题在于,现有的仓库指导文件在实际应用中效果参差不齐,部分原因在于内容的生成缺乏系统性和诊断性。传统方法多依赖一次性生成,未能根据实际故障反馈进行动态修正,导致指导内容泛泛而谈,难以覆盖特定仓库的操作细节。这种静态指导在面对复杂或新颖问题时表现出明显不足,限制了模型的任务解决能力。此外,模型在修复过程中容易跳跃到错误文件或提出不合理的修正,反映出指导内容未能有效引导模型进行合理的诊断和定位。解决这一问题的关键在于,如何利用有限的模型能力,通过合成故障样本的迭代诊断,逐步优化指导内容,从而提升模型的任务覆盖率和定位能力。这不仅关系到代码修复的效率,也影响到自动化软件工程的可扩展性和鲁棒性。
核心创新
本研究的创新点在于提出一种基于合成故障样本的“探测-修正”调优流程,强调内容的诊断性修正而非单纯生成。具体创新包括:
- �� 利用模型生成多样化的合成故障样本,模拟真实故障场景,作为调优的诊断依据;
- �� 每轮迭代中,模型尝试修复故障后,自动评估修复效果,识别指导内容中的不足;
- �� 机械式地根据诊断结果修正指导文件,逐步扩大任务覆盖范围,避免复杂的多轮交互和强化学习,简洁高效;
- �� 在多个仓库中验证,显著提升任务解决率,验证了内容驱动调优的有效性。这一机制区别于传统微调或多轮交互,强调内容的诊断性修正,为自动化软件修复提供了新范式。
方法详解
- �� 构建基础仓库知识:利用tree-sitter解析仓库结构,提取主要模块、入口点和依赖关系,形成结构化的自然语言摘要;
- �� 生成合成故障样本:在模型中以温度0.9生成多样化的故障修复任务,确保样本覆盖不同子系统和故障类型,避免与测试集重复;
- �� 试图修复:对每个样本,模型在当前指导下尝试修复,生成补丁;
- �� 评估修复:模型对修复效果进行评估,识别成功或失败的原因,提出指导内容的修正建议;
- �� 机械修正:根据诊断结果,自动合并修正建议,更新指导文件,限制在3000字符以内,确保内容紧凑;
- �� 迭代优化:重复上述步骤,最多五轮,直到指导内容稳定或达到最大轮次。整个流程仅依赖单次LLM调用,无需多轮交互或强化学习,简洁高效。
实验设计
在四个不同的仓库(如django、sympy、matplotlib等)上进行验证,采用SWE-bench的验证集,评估指标为任务解决率(即修复后测试通过比例)。每个仓库经过3-5轮调优,平均生成指导内容长度由1687字符增加到2754字符,内容主要包括仓库特定的调试流程、导航路径和质量保障规则。对比基线包括无指导和静态知识库,调优后平均解决率从28.3%提升至33.0%,统计显著(p<0.001)。此外,通过不同的步骤预算设置,验证指导内容能有效利用较大步数,跨模型实验显示模型能力不足时调优效果减弱,但补丁精度保持稳定。这些实验充分验证了内容诊断性修正的有效性和鲁棒性。
结果分析
调优流程显著提升了模型的任务解决能力,平均解决率达33.0%,优于静态知识库(28.3%)和无指导(25.5%)。内容分析显示,调优后指导文件增加了大量仓库特定的调试流程和导航路径,覆盖了模型之前未能有效利用的操作细节。补丁的可评估比例提升了14.5个百分点,说明模型在定位正确文件方面的表现增强,而每个补丁的平均精度保持在59%左右,验证了内容修正的实用性。步骤预算实验表明,指导内容使模型能在更大步数下高效完成任务,跨模型测试揭示模型能力不足时调优效果减弱,但补丁质量仍保持稳定。这些结果共同支持了内容驱动调优在实际软件工程中的潜力。
应用场景
该方法可应用于自动化代码修复、持续集成和软件维护中,尤其适合需要频繁修复和调试的开源项目。通过自动生成和优化仓库操作指导,可以降低开发者的调试成本,提高修复效率。企业级软件开发中,结合CI/CD流程,自动调优指导内容,有望实现持续改进和故障定位的自动化。未来,结合模型能力提升和多模态信息,将进一步扩展其应用范围,支持更复杂的代码修复场景和大规模软件系统的自动维护。
局限与展望
当前方法在模型能力不足或输出诊断信息不充分时效果受限,调优循环可能无法持续改善指导内容,影响最终性能。指导内容长度较长,可能在实际应用中受到上下文长度限制,影响效率。此外,该方法主要在特定模型和任务上验证,泛化到其他模型或复杂场景仍需进一步研究。未来需要探索更高效的样本生成策略和自适应调优机制,以应对不同规模和复杂度的代码库。
通俗解读 非专业人士也能看懂
想象你在一家工厂工作,这个工厂每天都要生产各种商品。有时候,生产线会出现问题,比如某个机器突然停工,导致整个生产停滞。工厂的工程师们会记录每次故障的原因和解决办法,形成一本操作手册,告诉其他工人遇到类似问题时该怎么做。可是,这本手册有时候写得不够详细,工人们还得自己试错,花费很多时间。
现在,假设我们有一个聪明的机器人助手,它可以通过模拟不同的故障场景,自己尝试修复问题,然后告诉工人们哪里写得不够清楚,应该怎么改。这就像给它提供一本不断更新的操作指南,让它学会在遇到新问题时,能快速找到解决办法。这个机器人不断试错、修正指南,最终变得越来越聪明,能帮工厂更快地解决问题。
这个方法的关键在于,机器人不是一开始就知道所有答案,而是通过模拟故障、尝试修复、评估效果,然后不断改进指导内容。这样,工厂的生产线就能变得更稳定、更高效。这就像我们在学习新技能一样,反复练习、总结经验,才能变得越来越擅长。这个过程简单又高效,不需要复杂的程序,只要让机器人自己不断试错和修正,就能带来大变化。
简单解释 像给14岁少年讲一样
想象你在学校里学习做菜,你的老师给你一本食谱,但有时候食谱写得不够详细,你不知道什么时候需要多放点盐,或者怎么判断菜是不是熟了。于是,你自己试着做菜,尝一尝,然后告诉自己:“这个菜还不够咸,再多放点盐。”接着,你再试一次,直到味道刚刚好。
现在,假设有个超级聪明的机器人厨师,它可以自己试着做菜,然后告诉你哪些步骤写得不够清楚,哪些地方需要改进。它会模拟不同的调料用量,尝试不同的做法,然后不断修正食谱,让你以后做菜时不用再猜测。
这个机器人就像在不断试错、改进食谱一样,它通过模拟各种可能出现的问题,逐步学会如何写出更好的指导。这样一来,无论你做什么菜,机器人都能帮你提供最实用的建议,让你变成厨房里的大厨。这种方法简单又有效,就像你不断练习、总结经验一样,最终变得越来越厉害。
原文摘要
LLM-based coding agents need higher-level operational knowledge about a repository (which files house which subsystems, how to run the test suite, which workflows have historically led to wrong fixes) that does not exist in the code itself. Engineers typically maintain \texttt{AGENTS.md} files to supply this context as instructions for coding agents, but whether they help is contested: recent studies disagree on whether LLM-generated guidance improves or harms agent performance. In this paper we show that how the guidance is produced is the decisive variable, and introduce \emph{probe-and-refine tuning}: a procedure that uses synthetic bug-fix probes to iteratively diagnose and patch a repository's guidance file through single-shot LLM calls, with no agent loop or tool use during tuning. On SWE-bench Verified across four independent trials with Qwen3.5-35B-A3B at 200 steps, probe-and-refine achieves 33.0\,\% mean resolve rate vs.\ 28.3\,\% for the static knowledge base used to initialize it and 25.5\,\% for an unguided baseline ($p < 0.001$ for both probe-and-refine contrasts). The improvement comes from coverage rather than precision: refined guidance produces evaluable patches for 14.5 percentage points (pp) more instances while per-patch precision remains statistically constant ($\sim$59\,\%, $p = 0.119$), showing that improved guidance helps agents reach the correct file rather than improving the quality of the changes they make. Further, a step-budget experiment shows that guidance is what lets the agent use a larger step budget productively, and a cross-model experiment with NVIDIA-Nemotron-3-Nano-30B-A3B finds that the tuning loop degrades when the model cannot generate sufficiently diagnostic output, though per-patch precision remains constant even then.