四百年前,宋应星完成了《天工开物》的撰写。这部作品既面向工匠,亦面向未来。它让人们坚信,技术并非僵化的存在,而是人类与世界不断交流的途径。
“天工”一词彰显了我国古代对工程与制造的至高境界,而今,一个名为“天工”(亦称Skywork)的智能体Agent,正努力在代码世界的另一领域,延续这种精神。
Skywork并非铁匠,而是一个基于自主代码的智能体基座模型;它致力于修复的是当今最为复杂的人造系统——即(开源)软件工程。它不使用锤子和凿子,而是通过多轮交互、深入上下文理解和逻辑推理,在成千上万的GitHub项目中识别问题/错误、锁定原因、实施修复,并验证修复是否真正有效。因此,该产品被命名为Skywork-SWE。(注:SWE代表软件工程,即Software Engineering。)
Skywork-SWE 因何而生?
软件智能体面临的困难
在古代,修补一口破损的鼎炉、缝补一段破损的布料,都被视为“工匠精神”的具体表现。然而,在现代社会,最常出现“断裂”现象的,却是代码。
代码系统如今已构成现代社会的基石,它们在各类日常软件、银行服务、交通调度等系统中发挥着关键作用,同时亦为依赖的AI算法提供支撑。然而,如同古代器物一般,即便是设计精巧的程序,也难以避免出现错误——这些错误可能源于逻辑上的失误,或是环境的变化,甚至可能是因为团队协作的失控。不久前,AWS、谷歌云、Azure 以及 Cloudflare 等平台均遭遇了服务中断,随之而来的是 GPT 和 Cursor 等备受关注的 AI 应用也暂时无法使用;据悉,此次事故的根源可能在于一次错误的自动配额更新,它引发了谷歌 API 管理系统的故障。
同时,在软件工程领域,bug的修复工作既是基础性的,又是极具挑战性和劳动密集型的任务之一。尤其是在实际的GitHub项目里,修复一个bug并非如同“发现一处错别字那般简单”,它往往需要:
那么,我们能否使用 AI 智能体来完成这些任务呢?
当然,这是可以的。然而,我们所追求的并非仅仅是那些针对特定编程任务的传统AI编程模型。相反,我们需要的,是一种能够如同人类开发者一般,洞察历史背景、进行多轮推演、在模糊和不确定性中做出决策,并且具备实际执行能力的软件工程智能体。
此类任务面临的一大挑战是:长期缺少高品质的训练资料。目前市场上的SWE数据集,要么验证手段不够完善,要么训练样本组织混乱,这对模型在真实工程环境中的发展构成阻碍。此外,这些数据集的总体规模普遍偏小,使得数据缩放定律的应用效果并不明确。
为了有效应对这一挑战,昆仑万维精心研发了自主代码智能体基座模型 Skywork-SWE。该模型不仅是一款性能卓越的软件工程智能体,参数量高达32B,堪称开源软件工程智能体的佼佼者,而且它还构成了一个集数据管理、验证、推理以及修复功能于一体的综合性系统。此外,基于这一模型,他们还成功揭示了LLM在软件工程领域的Scaling Law。
目前,该模型的技术报告和模型权重都已发布。
Skywork-SWE
数据锤炼出的智能工匠
昆仑万维究竟是如何研制出Skywork-SWE的呢?这背后有哪些技术和创新的应用?
关键在于:在软件工程领域,我们成功实现了对数据扩展规律的精准掌握,并确保了任务执行的高标准。
为了确保数据的优质性,昆仑万维精心打造了一套自动化程度高、结构清晰、易于重复验证的软件工程(SWE)数据搜集及核实体系,该体系涵盖了三个主要阶段和九个具体步骤。
最终,他们经过筛选,从15万个GitHub开源项目中挑选出了10,169个实际的代码问题,并收集了8,209条多轮交互记录,成功构建起了业内规模最大、可验证的软件工程(SWE)数据集。在这个数据集中,每个样本都并非仅仅具有描述性,而是达到了工程级别的标准。
下图展示了其完整的数据构建流程:
数据构建流程图
具体而言,阶段A的任务涉及数据搜集与初步筛选,这一过程进一步细化为从GitHub抓取元数据、搜集Pull Request并初步筛选以及安装验证等三个具体步骤。经过第一阶段的工作处理,昆仑万维团队成功从十五万个开源代码库中提取出了共计23,389个有效的任务样本。为了确保数据安全,我们需剔除那些SWE-bench Verified(验证数据集)中已收录的仓库。
阶段B主要涉及环境配置以及执行过程中的验证工作。此阶段同样细分为三个关键步骤:统一命令的生成、Docker环境的搭建以及单元测试的验证。显而易见,这一步骤的核心目标是确保问题修复的有效性,从而进一步保障数据的质量。
最终,必须为每个任务构建恰当的智能体行动路径。这正是阶段C的核心目标所在。同样地,分为三个阶段:起初,昆仑万维团队依托开源的OpenHands代码智能体框架,挑选了代码能力卓越的商用大型模型,例如Claude和DeepSeek等,作为智能体的基础架构;接着,针对每个任务,它们进行最多100轮的交互;最后,他们详尽地记录了智能体在问题求解过程中的交流历程。接着,他们对Patch级别进行了验证,目的是确保智能体的行为与仓库级别的代码修复目标完全一致。最终,他们构建了一个训练样本库,并从中提取了8,209条经过验证的轨迹,这些轨迹具有高质量、长上下文和多轮交互的特点。
经过完整流程的执行,昆仑万维团队成功获取了一个规模宏大、品质卓越且具备验证性的软件工程任务数据集,即Skywork-SWE。没错,依托这一数据集,昆仑万维培育出了与之同名的自主代码智能体模型——Skywork-SWE-32B!(注:这里的32B代表模型的参数数量。)
数据构建过程中各个阶段数据样本量变化图
在任务数量上,Skywork-SWE显著超越其他同类数据集,例如SWE-Gym Lite与SWE-bench Verified;在代码覆盖广度方面,它同样表现卓越。这样的特性使得Skywork-SWE能够为大模型提供丰富、多样且与实际应用紧密相关的软件工程任务样本,从而不断促进智能体模型能力的提升。
具体来说,根据左表所示,Skywork-SWE中的任务在编辑难度方面明显更大:平均每个补丁包含两个或更多函数的修改、六个代码段的变动,以及多达七十四行的代码更新,这更能真实地呈现GitHub开发过程中问题解决的复杂程度。这也预示着,若要在这些任务上实现有效的修复,模型必须拥有更高级别的代码解析、语境构建以及多轮对话的推理能力。
Skywork-SWE数据集的统计信息,以及GitHub仓库中的词汇云图表。

右图展示了 Skywork-SWE 数据集的库名词云图。图中不仅包括了 Pydantic、SQLGlot、DVC 等知名的开源项目,还囊括了众多中小型库,这些库的分布特征与实际开发环境高度吻合。这样的数据构成方式,有利于增强模型在处理复杂多变场景中的问题解决能力。
这些技能在经过Skywork-SWE数据集的微调后,同样在Skywork-SWE-32B模型中得到了展现。(备注:该模型所采用的基座模型为Qwen2.5-Coder-32B-Instruct)。
Skywork-SWE-32B 的实验表现
在备受瞩目的SWE-bench验证基准测试中,该基准包含500个实例,这些实例均来自12个热门的Python GitHub库的PR,Skywork-SWE-32B在OpenHands Agent框架的支持下实现了47%的准确率,这一成绩超越了所有参数规模在32B以下的开源模型,甚至超过了参数量高达671B的DeepSeek-V3-0324模型。
在这个引人注目的成就背后,他们的研究还成功阐明了LLM SWE在数据层面的扩展规律:随着训练数据量的不断增大,SWE模型的表现也将持续增强,这充分证明了“数据扩展带来的性能提升”在软件工程任务中的实际效果和适用性。Skywork-SWE-32B模型在OpenHands代码框架中取得了38.0%的pass@1准确率,这一成绩超越了Qwen2.5-Coder-32B系列模型在此框架下的最优表现。
观察可知,随着训练数据轨迹数量的不断增加,Skywork-SWE-32B的性能表现持续向好。需注意的是,图中横坐标使用了指数刻度,这表明模型性能的提升几乎与数据量的增长呈指数关系。尤为关键的是,在现有数据集规模内,性能提升并未显现出饱和的迹象,这充分显示出进一步扩充高质量数据集的巨大潜力。
此外,昆仑万维团队为了在推理过程中充分挖掘模型潜能,对Skywork-SWE-32B进行了测试时扩展(TTS)技术的尝试,这一举措显著提升了模型的表现,使得模型在Best of 8的测试中正确率达到了47%。
下图展示了其具体在不同仓库上的得分情况。
与众多闭源模型相比,Skywork-SWE-32B在经过TTS处理后的表现同样出色:它明显超过了GPT-4.1-mini(23.86%)、Claude 3.5 HaiKu(40.6%)以及OpenAI-o1-preview(41.3%),并且也领先于Claude v3.5(46.0%)。
以下将借助一个具体实例,向大家展示 Skywork-SWE-32B 的运作流程。
以天文学领域广泛应用的Python编程语言开发的综合性核心工具包Astropy,以及与之相关的编号为#14309的Pull Request(PR)为例。
Astropy 库遇到的问题:在缺少 args 参数的情况下,处理文件路径时 FITS 链接的算法出现了崩溃。
将 Astropy 仓库的 issue 及其对应代码库输入到 Skywork-SWE-32B 模型中,该模型便能准确识别问题所在的具体源文件,并自动生成相应的修复补丁方案。
生成 patch 修复方案示例图
Skywork-SWE-32B所生成的方案顺利通过了所有测试案例,并在GitHub代码库中实现了从问题识别到解决的全流程代码修正。
单元测试结果示例图
Skywork-SWE-32B的卓越表现充分证明了Skywork-SWE数据集的优质特性及其在现实中的应用价值。
一份数据集
撬动一个智能体时代
如今,随着大模型迈向智能体阶段,我们面临的稀缺资源不再是计算能力,亦非模型参数,而是那些经过验证、贴近现实且拥有闭环反馈机制的数据。
Skywork-SWE的重要性,正是在于此。它不仅仅是一个模型的象征,更是一种构建真实工程数据的系统化方法。这种方法所收集的,并非零散的函数调用或代码片段,而是成千上万个源自GitHub仓库的实际修复任务。每一个任务都可在环境中重现,通过测试,并最终形成可追踪的智能体交互轨迹。
这份数据集不仅使Skywork-SWE-32B成为32B参数规模中最出色的开源软件工程模型之一,而且它还揭示了大型语言模型在软件工程任务上性能不断提升与数据之间的紧密联系,首次对数据缩放定律在复杂工程任务中的适用性进行了系统性的验证,被誉为软件工程智能领域的“ImageNet”。
昆仑万维公司透露,未来Skywork-SWE数据集将支持更多编程语言的接入;此外,其运行时环境中对单元测试的执行与验证机制,也将助力LLM社区近期对在线强化学习方法的深入研究。
在这其中,映照出昆仑万维对行业走向的深刻洞察:即便大模型的发展再深入,其最终目的仍需回归到实际应用场景;而开源技术若想稳固地位,就必须在数据、系统以及执行力等方面实现全方位的提升。
在过去的一年中,昆仑万维针对Skywork系列进行了全面布局,涵盖了从MoE架构、预训练模型,到智能体框架以及垂直应用场景的整个产业链。我们目睹了多模态推理模型Skywork-R1V的亮相,以及音乐模型Mureka O1,它超越了Suno V4;此外,还有我国首发的短剧创作大模型Skyreels-V1、交互式视频生成模型Matrix-Game与Matrix-Zero,以及智能体界中的全能选手——天工超级智能体(Skywork Super Agent)。更令人惊喜的是,这些模型中的大多数都是可以免费获取的,供大家自由使用。(详情请点击相应链接查阅。)
Skywork-SWE的问世,象征着该体系迈向了更深入的实践阶段,同时也是昆仑万维在代码编写、内容创作、办公自动化等智能体应用场景中持续研究的自然延伸。在这一过程中,他们不仅构建了模型,还精心打造了数据;不仅负责创作,还注重验证。展望未来,基于高质量任务型数据的智能体训练方法,有望成为代码开发、软件工程乃至通用多模态智能体领域的“行业标准”。
天工重现,一切从数据着手。Skywork-SWE 成为了对“工程智能体”时代最坚实的回应,同时也是昆仑万维在行业领域内所撰写的一份“天工开物”。
Copyright C 2018 All Rights Reserved 版权所有 聚贤人力 皖ICP备20008326号-40
地址:安徽省合肥市高新技术开发区人力资源产业园 EMAIL:qlwl@foxmail.com
Powered by PHPYun.