Socratic-SWE: Self-Evolving Coding Agents via Trace-Derived Agent Skills
Socratic-SWE 引入了一种闭环自我进化框架,该框架将智能体的历史解决轨迹转化为结构化技能,以生成针对性的、可验证的修复任务,从而实现持续改进,并在不依赖固定变异程序的情况下,在 SWE 基准测试上达到了最先进的性能。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下,你正在试图教一个机器人如何修复损坏的软件。通常情况下,你必须编写成千上万个特定的“家庭作业”,找到答案,然后进行评分。这既昂贵又缓慢,而且这些作业往往并不符合机器人的实际薄弱环节。
这篇论文介绍了一种名为 Socratic-SWE 的新方法来训练这些编程机器人。与其让老师发放静态的家庭作业,Socratic-SWE 让机器人通过分析自己的错误与成功来进行自我教学,从而将其转化为一份个性化的学习指南。
以下是其工作原理,我们使用简单的类比来解释:
1. 旧方法:静态教科书
想象一个正在学习木工的学生。在旧方法中,老师给他们一叠预先写好的、用于修复缺陷的蓝图。
- 问题所在: 有些蓝图太简单了(学生已经知道如何修复它们),而有些则太难了(学生还没有掌握相应的工具)。老师并不知道学生现在到底在哪些地方遇到了困难。
- 结果: 学生在已经掌握的事情上浪费时间,或者在无法解决的事情上卡住,最终停止了进步。
2. 新方法:Socratic-SWE(自我教学的学徒)
Socratic-SWE 改变了游戏规则。它创建了一个闭环,让机器人既是学生又是老师。
第一步:“追踪”(视频回放)
每当机器人尝试修复一个 Bug 时,它都会留下一个数字“足迹”,称为追踪(trace)。这就像是机器人整个思考过程的视频回放:
- 它在哪里查看了代码?
- 它修改了哪些代码?
- 测试通过还是失败了?
- 它是否不小心破坏了其他东西?
在过去,研究人员仅使用这些回放来给出简单的“通过”或“失败”评分,然后就将视频丢弃。Socratic-SWE 则说:“等等!让我们再看一遍视频。”
第二步:提炼“技能”(学习指南)
系统会观察所有的回放并寻找模式。
- 如果机器人失败了: 它会注意到,“噢,每次我尝试修复一个打开了三个标签页的文件时,我都会忘记保存第一个文件。”
- 如果机器人成功了: 它会注意到,“当我先检查错误日志再进行编辑时,我通常能做对。”
它将这些模式转化为一个结构化的**“智能体技能注册表”(Agent Skill Registry)。你可以把它想象成一份个性化的学习指南或教练的秘籍**。它详细列出了机器人的弱点(例如:“不要忘记检查副作用”)以及它的长处。
第三步:生成新作业(定制化测验)
现在,机器人利用这份学习指南来创建新的家庭作业。
- 它不再随机挑选 Bug,而是会问自己:“根据我的学习指南,我在‘多文件编辑’方面经常失败。让我创建一个新的、棘手的 Bug,它专门需要我同时编辑三个文件。”
- 这确保了作业能够完美地针对机器人的当前弱点。
第四步:“验证器”把关人
在将新的家庭作业交给机器人之前,一个严格的**把关人(Gatekeeper)**会对其进行检查。
- 这个 Bug 真的存在吗?
- 机器人真的能修复它吗?
- 测试是否可靠?
如果作业本身是有问题的或无法完成的,它就会被剔除。只有高质量、可解的任务才能进入训练池。
“梯度对齐”(指南针)
还有一个聪明的技巧。系统不仅希望机器人能解决任何问题,还希望它能朝着正确的方向进步。
- 想象一个指南针。系统有一个“信任方向”(一组已知的高质量任务)。
- 当机器人生成一个新任务时,系统会询问:“解决这个新任务是否会让机器人在我们信任的方向上移动?”
- 如果是,则保留该任务。如果不是,则将其丢弃。这防止了机器人学会那些只在虚假问题上有效的“小技巧”。
结果:变得更聪明、更快
研究人员在四个主要基准测试(类似于编程智能体的期末考试)上对其进行了测试。
- 基准线(Baseline): 一个使用固定数据训练的标准机器人。
- 竞争对手: 其他尝试自我教学但没有使用这种特定“技能注册表”方法的机器人。
- Socratic-SWE: 在仅仅经过三轮自我教学后,它在最难的测试(SWE-bench Verified)中得分 50.4%。这相比之下是一个巨大的飞跃,因为其他机器人要么陷入停滞,要么进步极其缓慢。
为什么这很重要
论文声称,Socratic-SWE 证明了你不需要人类去编写无穷无尽的新作业。通过重用机器人自身的历史记录(追踪)来构建技能指南,机器人可以持续生成自己的课程。它将过去的失败转化为未来的动力,使其能够在不需要人类老师不断指导的情况下,实现持续进化和进步。
简而言之: 这就像是一个机器人观看自己的比赛回放,编写自己的学习指南,创建自己的练习题,然后参加考试以查看自己是否真的进步了。事实证明,这种自我教练的方法比人类分发旧练习册的效果更好。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。