我给修复工具提供了一个完整的示例。它推断出其余部分,并在从未见过的代码中修复了所有5个bug——仅用4条CPU指令,零令牌。[p]
摘要
一种修复工具,能从单个完整示例中推断修复方案,并在未见过的代码中成功修复了5个bug中的5个,仅使用4条CPU指令和零令牌,并进行穷尽验证。
你告诉它一个事实——故障类型0通过动作5修复——它对于任何从未被告知的故障类型都能返回正确的动作。偏移量未被存储;它在每次调用时从完整示例中恢复,因此你可以自由重编号动作代码而不会出错。在16种重编号中,查找表有15种是错误的。而这个方法在所有情况下都正确。该表达式由程序合成引擎编写,而非我本人。它在仓库中逐字出现——非手写,非手动简化。引擎的结论是在D∩I中最小的:在其搜索空间中不存在更小的表达式。我尝试独立超越它,结果完全平手。验证内容:所有2^32个输入与独立参考对比,0个不匹配;每个动作0-15恰好出现2^28次;均匀分区位12-31影响结果;从不(穷尽,非抽样)生成arm64 4条指令:lsr, sub, add, and。然后我将其指向它从未见过的代码——来自funcy的惯用法、一个分块循环、cachetools风格的TTL算术、一个sortedcontainers风格的二分查找边界——每个只有一行故障:修复了5/5,精确5/5,10.3秒,0令牌。精确意味着字节级与预期源代码相同,而不仅仅是“测试套件通过”。这个区别很重要:一个弱的测试套件会欣然接受错误的编辑,我见过其他修复工具确实如此。我在运行时发现了一个bug,因为这是本文更有用的一半:流水线执行候选方案时没有超时限制。动作6递减一个字面量,直到循环计数器增加零——一个非终止候选方案——整个过程挂起了595秒,未产生任何结果。在每个候选方案5秒的限制下,同一语料库在10.3秒内完成,修复率为5/5。如果你正在构建任何运行变异代码的工具,请设置限制;变异导致无限循环不是边缘情况,而是对循环变量应用差一错误的常规结果。诚实的限制,全部经过测量并在README中:四种动作词汇覆盖了真实仓库中约63%的活跃变异体。布尔交换、非移除和乘法翻转没有对应的动作,因此从不修复——这是正确的,因为无处可路由。它无法从一个示例中恢复任意的动作代码排列——其他任何工具也不能:一对映射与15!种重标签一致,其中恰好一种是正确的翻译。恢复排列需要所有16对映射,这本身就是查找表。本地化问题尚未解决。路由器成本约656纳秒;一次候选验证成本28.6毫秒。行搜索成本约为路由决策的44,000倍,这是整个成本。https://github.com/devkancheti4-design/fluid-router
相似文章
PhoenixRepair:重新思考软件代理中的修复策略探索
PhoenixRepair 是一个多智能体框架,系统性地探索多个候选编辑位置,并对补丁生成进行迭代反思和优化。在 MiniMax-M2.5 模型上,它在 SWE-bench-Verified 上达到了 76.0% 的 Pass@1 率,并在 DeepSeek-V3.1 模型上相比 SWE-agent 取得了 7.8% 的相对提升,达到了最先进水平。
运行还是不运行:分析基于LLM的程序修复中代码执行的成本效益
本文实证分析了基于LLM的程序修复智能体中代码执行的成本效益,发现执行被大量使用但往往不加区分,限制执行可以在对修复成功影响最小的情况下节省大量成本。
一次重写解决所有问题?面向文本到图像提示优化的类型感知修复分配
本文介绍了类型感知修复分配(TARA),这是一个无需训练的框架,将文本到图像提示优化分解为原子修复分配,其中每个失败的命题被路由到类型条件的修复操作符。实验表明,TARA在DSG和TIFA基准测试上跨四个生成器取得了最佳语义准确性,在保持图像质量的同时优于VisualPrompter。
采用 AI 编码代理的规范优先收敛:一项在 717k 行代码库中拆除核心架构不变量的案例研究(涉及 189 个文件,无测试预言,无人工代码审查)
一项案例研究,描述 AI 编码代理如何采用规范优先的收敛方法,在无测试预言、无人工代码审查的情况下,拆除 717k 行代码库中横跨 189 个文件的核心架构不变量。该代理迭代完善了一份 55 页的规范,并执行修正循环,在 31 轮审计中修复了 201 个自我识别的问题。
开发了一个本地工具,用于缩小成功但错误运行的范围
作者构建了一个名为Traser的本地浏览器工具,帮助工程师诊断那些完成无错误但产生错误结果的运行。通过比较执行步骤并提供基于证据的调查点。