CODESKILL: Learning Self-Evolving Skills for Coding Agents
CODESKILL 是一个基于强化学习的框架,它从编码智能体轨迹中学习提取、演进并维护一个紧凑的多粒度过程技能库,从而在 SWE-Bench Verified 等基准测试中显著优于现有的基于提示或记忆的方法,提升下游任务性能。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下,你正在教一位非常聪明的机器人助手如何修复软件漏洞。每次机器人尝试解决问题时,它都要经历一个漫长的过程:它查看代码,尝试一条命令,看到错误,再次尝试,最终(希望如此)修复了问题。整个这一过程被称为“轨迹”。
问题在于,如果你只是让机器人记录它所做的每一件事,这本日记就会变成一座杂乱无章、令人望而生畏的纸山。其中大部分只是关于某个特定漏洞的具体细节,对解决下一个漏洞毫无帮助。
CODESKILL 是一个新系统,旨在将那座杂乱的纸山变成一本机器人实际可用的、简洁有序的操作手册。
以下是其工作原理,分解为几个简单的概念:
1. 问题:噪音太多,信号太少
目前,当机器人试图从过去的错误中学习时,它们通常依赖僵硬的规则或固定的提示(就像一位老师说:“当你看到 Y 时,总是执行 X")。但软件工程非常复杂。有时机器人是偶然成功的,有时则是因为奇怪的原因而失败。很难分辨什么是可复用的技能(例如“如何修复断开的网络连接”),而什么只是一次性的偶然(例如“如何修复这个文件中的特定拼写错误”)。
现有的方法就像一位只是把书堆在地板上而不进行整理的图书管理员。它们不知道哪些书对下一位读者真正有用。
2. 解决方案:“自我进化的图书管理员”
CODESKILL 充当一位智能图书管理员,管理机器人的知识库(称为技能库)。它不只是存储原始的故事,而是:
- 提取技能:它阅读机器人过去的轨迹,提炼出“黄金 nuggets"——即适用于多种情况的通用规则。
- 进化技能:如果机器人尝试某项技能却失败了,图书管理员不会直接丢弃该技能。它会更新操作手册,说明:“哦,这条规则是有效的,除非你看到这条特定的错误信息。”
- 维护图书馆:它不断检查图书馆。如果两本书内容相同,它就将其合并;如果一本书过于具体或无用,它就将其剔除。这使图书馆保持小巧高效。
3. 它是如何学习的:“教练与运动员”
CODESKILL 最独特的地方在于它如何学会成为一名优秀的图书管理员。它不是凭空猜测,而是从一位“冻结”的运动员(即编码机器人)那里获得反馈。
- 运动员:这是负责解决实际问题的那个编码机器人。它不改变自己的“大脑”,只是尝试完成任务。
- 教练(CODESKILL):这是管理技能的系统。
- 训练循环:
- 教练根据过去的经验创建一条新规则。
- 教练将这条规则交给运动员。
- 测试:有了这条新规则,运动员解决问题是否更快或更好?
- 奖励:如果运动员成功了,教练获得高分;如果运动员失败了,教练获得低分。
- 教练利用这个分数进行学习:“好的,下次我需要编写更好的规则。”
论文将这种方法称为强化学习。这就像训练一只狗:你不仅仅是告诉狗该做什么;当它做对时,你给它奖励,这样它就能学会重复那些能获得奖励的行为。
4. 两种类型的技能
CODESKILL 将知识组织成两类指令,就像一本分为两个部分的食谱:
- 任务级技能(宏观视角):这些是高层策略。示例:“当你看到 Java 构建失败时,首先检查网络连接,然后检查依赖项。”
- 事件驱动技能(快速修复):这些是对特定时刻的反应。示例:“如果你看到‘文件未找到’的错误提示,立即检查文件路径是否有拼写错误。”
5. 结果:更聪明、更快速的机器人
研究人员在三个不同的“考场”(基准测试)上测试了 CODESKILL,在这些环境中,编码机器人必须解决现实世界的软件问题。
- 基线:没有操作手册的机器人(仅凭原始智能)。
- 竞争对手:使用旧方法记忆过去任务的机器人(例如仅阅读日记或使用固定提示)。
- CODESKILL:使用自我进化技能库的机器人。
结果:
CODESKILL 的机器人解决的任务数量明显多于其他机器人。
- 与完全没有技能相比,它将成功率提高了约 9.7%。
- 它比现有的最强“记忆”方法高出约 4%。
- 它还更快地解决了问题,因为拥有更好的指令遵循,它到达解决方案所需的步骤更少。
核心结论
CODESKILL 是一个框架,它教导编码机器人如何学习如何学习。它不仅仅是死记硬背发生的每一件事,而是学会将这些经验提炼成一套紧凑且不断进化的规则。它就像一位教练,根据球队是否真正赢得了比赛来不断打磨战术手册,确保机器人在无需从头重新编程的情况下,随着时间的推移变得更好、更高效。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。