Skip to content

SkyWork 系列

📅 发表于 2025/01/02
🔄 更新于 2026/08/05
👁️ — 次访问
📝 4622 字
⏳ 16 分钟
skywork
#SkyRL-Agent
#Skywork-SWE
#SWE任务收集
#执行测试

变化点 ​

2025

2025.12 · Skywork-R1V4

  • 交错使用图像操作与搜索,构建可验证的视觉推理轨迹。
  • 通过纯 SFT 学习工具交互,扩展多模态推理。

2025.11 · SkyRL-Agent(NovaSky Agent 框架)

  • 将工具交互、异步任务调度和训练后端解耦。
  • 支持真实环境中的多轮 Agent RL 与不同推理后端。

2025.06 · Skywork-SWE

  • 构建可执行 SWE 任务与正确解题轨迹,用于代码 Agent SFT。
  • 从单段代码生成转向仓库定位、修改和测试。
2025(续)

2025.06 · SkyRL-V0.1(NovaSky RL 框架)

  • 将 rollout、训练和环境交互模块化,便于组合不同 RL 任务。

2025.05 · SkyRL-v0(NovaSky SWE 训练)

  • 结合远程 sandbox 与异步 rollout,在真实代码环境中进行 RL。

(2512) Skywork-R1V4 (图像操作与搜索交错、纯 SFT) ​

🌺 论文摘要

Skywork-R1V4 摘要

参考链接

问题背景

  • 被动看图难以处理细节与外部知识,工具轨迹中的错误操作又容易被 SFT 学到。

核心方法

  • 工具轨迹:Python 图像操作与图像反搜、文本搜索交错执行。
  • 数据过滤:检查答案、推理和真实工具结果的一致性。
  • 纯 SFT:不到 30K 数据混合训练感知、搜索和依赖明确的计划。

模型效果

  • Qwen3-VL-30B-A3B → R1V4:MMSearch 18.7 → 66.1,FVQA 53.3 → 67.2。

重要结论

  • 过滤低质工具轨迹很关键;加入错误操作示范反而可能让模型重复低效行为。

核心贡献

  • 给出感知、搜索与规划统一的多模态工具轨迹构建和 SFT 路线。

未来方向

  • 扩展分割、深度估计和 DOM 操作,覆盖更复杂的视觉与网页任务。
  • 加入记忆或预测模块维持长程计划;结合 SFT 与 Agentic RL 继续优化策略。

问题背景 ​

问题背景
  • 视觉题目可能同时需要局部图像检查与外部知识,单次看图回答难以覆盖完整求解过程。

核心方法 ​

工具轨迹与数据构建 ​

Think with Image

轨迹采样

  • 从 Thyme-RL、Fine-Vision 等选择高分辨率图片和问题。
  • 教师生成 Python 图像操作,在 Sandbox 执行,将结果作为下一轮 Observation。
  • 可执行裁剪、放大、旋转和对比度增强,直到信息足够生成答案。

一致性过滤

  • 先检查最终答案,再检查最后一轮推理是否支持答案。
  • 逐步比较操作图像与后续推理,去掉“裁出空白却声称找到目标”等幻觉。
  • 删除执行错误和低效重复裁剪轨迹,避免模型模仿错误模式。
图像操作轨迹的数据闭环:判断是否需要操作图像,执行代码,再检查推理与真实输出是否一致;只保留流程子图。
原文图 2(a):图像操作轨迹的数据闭环:判断是否需要操作图像,执行代码,再检查推理与真实输出是否一致;只保留流程子图。 来源
Multimodal Search

基础搜索

  • 用 FVQA 问题采样 ReAct 轨迹,先过滤工具格式,再由 o3-mini 判断答案一致性。
  • Serper 提供图像反搜、文本搜索和网页读取;长网页由 Qwen3-32B 摘要。

复杂任务合成

  • 从百科实体及链接进行受限随机游走,保留实体关系与独特属性。
  • 固定答案,把问题中的直接实体名逐轮改成间接线索,增加检索步骤。
  • 检查答案唯一性,再用实体图片替换部分文字线索,使视觉成为必需信息。
交错轨迹与 Planner

交错执行

  • 从 LiveVQA 构建图像操作与搜索交错的轨迹,由 VLM 过滤不一致操作。
  • 例如先裁出建筑标识,再图像反搜,依据网页证据继续检查局部图像。

规划监督

  • 把已验证轨迹转成计划:子任务说明、工具名称、参数和步骤依赖。
  • 用“第 1 步识别的人物”等占位符连接上下游,保证计划可以沿已有结果执行。

混合模式 SFT ​

Mix-mode SFT
  • 混合图像操作、搜索、交错执行和 Planner 数据,使用不同 System Prompt 区分任务。
  • 加入属性识别、空间关系和普通 VQA,保留基础感知能力。
  • 本工作只做 SFT,不追加 RL;训练重点是高质量工具轨迹。

实验设置(Skywork-R1V4) ​

实验设置

基础模型与数据

  • 基础模型:Qwen3-VL-30B-A3B;总 SFT 样本少于 30K。
  • 图像任务每题 4 次 rollout;交错任务从 LiveVQA 抽取 3K 问题。

评测任务

  • VLMEvalKit:HRBench、MME-RealWorld、V* 等感知与视觉推理。
  • MMSearch、FVQA、BrowseComp-VL:多步多模态搜索;对照 Qwen3-VL 与 Gemini 2.5。

关键结果(Skywork-R1V4) ​

关键结果

搜索与感知

  • MMSearch 18.7 → 66.1,FVQA 53.3 → 67.2;工具交互明显补强知识型视觉问答。
  • BrowseComp-VL 30.0 → 38.4,复杂搜索仍比基础搜索更困难。
  • V* Overall 82.2 → 88.0,图像操作同时改善细粒度感知。

训练观察

  • 未过滤的交错轨迹曾降低效果,一致性过滤后改善。
  • 移除错误执行示范后,模型仍能在推理时纠错;不必把所有失败过程都当作优质监督。

未来方向 ​

未来方向

原文提出的方向

  • 扩展分割、深度估计和 DOM 操作,覆盖更复杂的视觉与网页任务。
  • 加入记忆或预测模块维持长程计划;结合 SFT 与 Agentic RL 继续优化策略。

(2511) SkyRL-Agent ​

🌺 论文摘要

SkyRL-Agent 论文摘要

参考链接

核心方法

  • SkyRL-Agent 框架:Tool-接口 + 异步Dispatcher + 桥接后端
  • SWE-RL实验:AST工具增强 鼓励检索 + 增加环境提示信息 + On-Policy + 留一法优势估计
  • 数据:4.5k R2E-Gym ,Scaffold:Simple ReAct Agent

模型效果(Qwen3-32B + RL)

  • 纯RL,SWE pass@1 达 39分,相比基模提升15pt。
  • 超过DeepSWE 36分 (报告42分),训练成本降一半。
  • 弱于蒸馏模型 SWE-Agent-LM-32B 38分。
  • 泛化性:Terminal-Bench(+2.5%), BrowseComp-Plus(+1.3%), WebArena(+1.2 turns)

重要结论

关键贡献

  • SKyRL-Agent 框架。SkyRL-Agent-SWE 开源实现。

问题背景 ​

❓问题背景

问题背景

RL阶段

  • 阶段1:单轮推理
  • 阶段2:简单工具使用:Mask-based Loss
  • 阶段3:Long-Horizon 多轮Agent,POMDP。

现有RL框架缺陷

  • 调度效率低:一堆Agent一起跑, 再一起训练。GPU等CPU、CPU等GPU等。
  • 状态管理混乱:Agent内部操作,不属于环境,经常写死。
  • 后端绑定:如VeRL-Tool, rLLM强绑定VeRL等。SkyRL-Agent后端无关,可使用各种。
POMDP

部分可观测马尔可夫决策过程POMDP

  • 在每一步t,观察上下文ot,从策略π(at|ot) 生成动作a,从环境接受奖励rt,最大化累计期望回报。

    J(θ)=Eπθ[∑t=1Trt]
  • 通常对完整上下文会做摘要/截断/检索等。

  • 交互历史 不平稳,non-stationary

Transition-based 表示

  • 不把对话看作1条长文本,而是看作独立的状态转换:在状态A,执行动作B,得到奖励C
  • 标准RL格式:解耦上下文和模型学习

SkyRL-Agent 框架 ​

📕核心方法

SkyRL-Agent 框架

以工具为中心的AgentLoop

  • 工具接口(Interface):允许用户请示插入新工具,无需改核心代码。
  • 一切皆工具:PythonTool、BrowserTool、MemoryTool等。

异步细粒度调度器Dispatcher

  • 初始化环境 CPU重 -> 模型思考 GPU重 -> 执行工具 CPU重
  • Async Pipeline
    • 维护3个队列,GPU永远有活干,利用率拉满。
    • 如任务A-GPU思考,任务B-CPU初始化,任务C-CPU算奖励。

桥接后端Bridge

  • Transition-based设计,LLM调用记录:输入token+输出token+logprobs
    • 缓解训推不一致:记录logprobs。
    • token-level保真:消除re-tokenization导致的策略偏移
    • 算法灵活性:支持动态上下文摘要等更广泛的RL算法。

SWE-RL 实验 ​

RL Recipe ​

工具环境

工具增强

  • 背景:Bug定位效果不行,限制SWE效果。
    • 无法有效利用命令在代码库中导航。
    • 过度依赖直接查看文件,很少利用搜索。
    • 无法定位相关上下文,消耗大量不想跟内容,消耗token。
  • 方法:实现基于AST的搜索工具。
    • 鼓励搜索:在每个搜索结果末尾,增加上下文提示。引导精确查询。
  • 如果没有这个,端到端Long-Horzion RL + 稀疏奖励,会非常难训练。

增加环境提示信息

  • 背景:(纯基模等) Agent容易产生重复或非生产性的行为。
    • 无法调用工具、无调用或错误调用、死循环、丢失上下文不知还剩几步而放弃任务等。
  • 方法:在环境信息中,加入元信息。
    • 工具报错:格式命令错误,正确格式是:
    • 快没步数:你只剩5步了,请尽快提交Patch。
    • 编辑失败:过程编辑没生效,请检查行号。
RL 算法策略
  • full on-policy
  • 超长停止的轨迹:直接Mask丢掉。
  • 优势估计:Leave One Out 留一法优势估计,不除以标准差。
  • 不使用KL Loss和Entropy奖励。
  • 每一步均保留前面的思考过程。
  • Simple ReAct Agent

实验设置 ​

✍️实验设置

实验设置

基础模型

  • Qwen3-32B

训练任务/数据

  • 4.5k R2E-Gym

评测任务/数据

  • SWE-verified:超参:40k, 100步
  • 泛化性评估:
    • Terminal-Bench-0.1.1:80任务,命令行系统任务,OpenHands
    • WebArena:
    • BrowseComp-Plus

算法/策略

  • On-policy,留一法优势估计,去掉KL损失和熵奖励,Mask超长截止的序列
  • Simple ReAct Agent

超参

  • train_bs=mini_bs=64,rollout=8,lr=1e-6。
  • 32k,50步

关键结果(Qwen3-32B+RL) ​

🍑关键结果

关键结果

模型效果(Qwen3-32B + RL)

  • 纯RL,SWE pass@1 达 39分,相比基模提升15pt。
  • 超过DeepSWE 36分 (报告42分),训练成本降一半。
  • 弱于蒸馏模型 SWE-Agent-LM-32B 38分。
  • 泛化性:Terminal-Bench(+2.5%), BrowseComp-Plus(+1.3%), WebArena(+1.2 turns)

重要结论

关键贡献

  • 1套 SKyRL-Agent 框架。
  • SWE-Agent, DeepResearch Agent, MemoryAgent, ComputerUse Agent 实验。

未来方向 ​

⛳ 未来方向

未来方向
  • 完善框架
  • 扩展应用
  • 纯RL到混合策略:结合蒸馏+RLVR提升性能。

(2506) Skywork-SWE ​

🌺 论文摘要

Skywork-SWE 摘要

参考链接

核心方法

  • SWE任务收集构建方法
    • Repo+PR 收集 + 统一环境安装 + 执行验证等。
    • 基于真实环境执行来做数据验证,3层增量式镜像 (基础+环境+实例镜像)。
  • Skywork-SWE数据:10k任务 + 2.5k仓库 + 8k蒸馏轨迹。没开源数据
  • Scaffold:Openhands

模型效果 (Qwen-2.5-Coder-32B + SFT)

  • SWE-verified 达36分,TTS-3 达47分。

重要结论

  • SWE Data-Scaling, Test-Time-Scaling, 轮数Scaling Law 得到验证。
  • 经过单元测试验证的数据比SWE-smith合成数据 靠谱,提升6.8%

关键贡献

  • 仅开源模型,未开源代码和数据。

问题背景(SWE任务挑战+SWEAgent) ​

❓问题背景

代码任务

代码生成

  • 竞赛代码、一次性生成,self-contained。
  • 简答代码(HumanEval/MBPP) -> 竞赛代码(LiveCodeBench) -> 推理LLM.

SWE

  • bug定位、修改源代码、执行测试,多轮迭代式解决问题。使用工具,长上下文依赖。

  • 一些工作:

    • SWE-Bench-extra:扩展了6k python数据,无环境。

    • SWe-Dev:测试用例合成pipeline。

    • SWE-Gym:有环境,仅2k数据;

    • SWE-Fixer/SWE-Smith:注入验证合理的bug,合成F2P实例,产生几k SWE任务实例。

SWE 挑战

挑战

  • 环境验证不足:可执行环境 + 验证过的单元测试 + 代码执行套件(统一执行脚本)
  • 高质量数据不足:量大质低 + 质高量小
    • SWE-Dev:数据多,但缺环境和单元测试
    • SWE-Gym:有环境,但仅11仓库
  • SWE-Scaling Law 尚不清晰:SWE数据量小,Scaling Law尚未得到验证,增加数据是否带来效果提升?
SWE CodeAgent

全能派 Rich ACI

  • OpenHands
    • 提供编辑器 + 命令行终端 + 网页搜索,agent在沙箱环境 自主迭代式完成任务。
    • 优点:上限高,能处理复杂问题,更像人。
    • 缺点:成本高,容易陷入死循环
  • SWE-Agent
    • 使用Agent-Computer-Interface,提供编辑器+shell+测试运行器给LLM。

专有精细派

  • 专有Pipeline
    • Agentless:固定的定位-修复-验证 pipeline
    • Moatless:主张有效上下文检索才是关键。
  • 检索微调
    • SWE-fixer:由粗到细,文件检索和编辑解耦。

📕核心方法

SWE任务收集构建方法和轨迹蒸馏 ​

SWE任务收集构建和轨迹蒸馏流程:

Repo+PR数据收集和环境预过滤 ​

RepoPR数据收集&环境安装预过滤

Repo 收集

  • 通过Github DeveloperAPI 收集Metadata信息 (name/star/pull数量等)。
  • 过滤缺字段repo,数量:15k -> 8k

PR 收集

  • 拉取Repo的PR,只选这3类PR
    • Merged:关键字closes/fixes/resolves#
    • Linked to Issue:必须解决了某个Issue
      • 要base_commit+gold_patch + test_patch
    • 修改了测试文件:只保留修改了测试相关文件的PR
  • 共146w 任务

环境安装预过滤

  • 尝试去安装环境,过滤123w,最终共23k 任务

环境准备和执行验证 ​

基于执行的验证

统一命令配置

  • 环境初始化、依赖安装、测试命令。

  • 默认python3.9,系统包gcc/g++/make/pkg-config,

  • 依赖:requrements.txt ,

  • 测试包:pytests/hypothesis/mock/setuptools

  • 测试命令:pytest

环境安装:三层增量镜像

  • 每个实例一个docker实例镜像

  • 基础镜像:ubuntu22.04,apt安装系统包,安装miniconda

  • 环境镜像:Repo复用,setup_env.sh,安装requirements.txt和额外开发测试包

  • 实例镜像:增量构建

    • 执行setup_repo.sh,克隆仓库,checkout特定commit_id
    • 安装pre_sintall列出的系统依赖

执行验证

  • 实例进行过,执行测试:
    • Empty测试:复现bug,应用empt-patch,得到:empty-FAIL, empty-PASS
    • Gold测试:验证修复,应用gold-patch,得到:gold-FAIL, gold-PASS
  • 指标计算
    • FAILE_TO_PASS:empty-FAIL & gold-PASS
    • PASS_TO_PASS:empty-PASS & gold-PASS
    • PASS_TO_FAIL:empt-PASS & gold-FAIL

SkyWork-SWE 数据集分析 ​

SkyWork-SWE 数据分析

最终数据

  • 2.5k 仓库,10k python任务实例
  • 每实例:NL描述 + 可执行环境 + 单元测试

特点

  • 数量大:2.5k仓库,10k实例
  • 难度高:平均编辑2.5个文件、74.2行代码,10.2个 FAIL2PASS 。
  • 编辑复杂度:难度适中,60%多文件编辑,50%实例编辑1-3个代码库,70%少于50行代码编辑。
  • 时间分布:2013-2025,但89%都是2018-2024这6年。
  • 分布长尾:

AgentSFT 轨迹数据蒸馏 ​

AgentSFT 轨迹数据蒸馏
  • 轨迹rollout/模型蒸馏

    • 多个私有代码LLM + OpenHands v0.32.0,最多100轮
    • 一系列模型,模型-解决率依次Gemini2.5-Pro (20),GPT-4.1(18),o3-mini(15)...
  • 轨迹验证/过滤:

    • 应用patch做测试,通过所有测试才算成功。仅保留正确数据。
  • 最终:8k 轨迹数据。

实验设置 ​

✍️实验设置

实验设置

基础模型

  • Qwen-2.5-Coder-32B-Instruct

训练任务/数据

  • 8k SFT轨迹蒸馏数据,来自 2.5k仓库 + 10k python实例

评测任务/数据

  • SWE-Verified
  • Skywork-SWE-32B:rollout=1,直接去评测,38分
  • Skywork-SWE-32B (+TTS):rollout=8,使用Critic 打分,选最优轨迹评测,47分

算法/策略

  • SFT,OpenHands agent

超参

  • 8 H100 - 训练12h, 3epoch,总计8000轮
  • Adam, cosine decay, weight decay=0.01

关键结果 (Qwen2.5-Coder-32B) ​

🍑关键结果

SkyWork-SWE-32B 关键结果

效果

  • Qwen2.5-Coder-32B SFT后,SWE达38分,使用TTS(best-of-8)达47分。

重要结论

  • SWE Scaling Law 验证

    • Data Scaling:数据增加,效果增加,6.4 -> 38
    • Test-Time Scaling:Best-of-8,38 -> 47
    • 轮数 Scaling:10步:28,75步:37,100步:38。75步以后收益小。
  • 经过单元测试验证的数据比SWE-smith合成数据靠谱,提升6.8%

关键贡献

  • 1套SWE Data Pipeline:自动构建大规模、高质量、SWE任务数据。
  • SkyWork-SWE-32B:开源。

未来方向 ​

⛳ 未来方向

未来方向
  • 自动为测试配置环境的agent
  • 上下文限制:目前仅32k,需扩展至128k,序列并行。
    • 但交互超过50轮时,会超过32k。
  • 不同OpenHands版本Prompt不同,建议使用最新版本。

(2506) SkyRL-V0.1 (RL框架) ​

摘要

(2505) SkyRL-v0 ​

摘要背景 ​

SkyRL 摘要

参考链接

模型效果

  • 基于Qwen3-14B,从SWE-Gym中选择少量数据,做RL训练,SWE达21分。

核心方法

  • 环境:远程sandbox server + 异步Rollout;OpenHands scaffold + CodeAct Agent。

❓问题背景

问题背景

背景

  • 现有RL任务大多单轮、短期、无状态交互(简单搜索/代码等)。
  • 但复杂真实任务需要高级agent能力
    • 复杂任务:SWE-Bench、WebDev、Web浏览等
    • 能力:多工具调用、code、测试、长期规划等

挑战

  • Agentic RL 训练具有挑战
    • 训练需要:高速环境执行、高效rollout
    • 稳定训练Long Horizon的RL算法

📕核心方法

Sandbox环境和Rollout优化 ​

SandboxServer + Rollout加速优化

环境扩展:远程sandbox server

  • 使用远程sandbox server,环境和训练分开,确保gpu高效利用。
  • Kubernets部署Sever:16CPU节点,运行80-100个容器,且没有稳定性问题。
  • 开源。

Rollout加速优化

  • 背景:agent和环境多次交互,很耗时。
    • 如OpenHands+SWE 需要20-50轮,python测试很耗时。
  • 方法1:异步rollout
    • 每个轨迹独立进行,避免全局同步。
  • 方法2:三阶段Producer-Consumer Pipeline
    • 三个队列:初始化(准备环境) -> 运行 -> 评估(计算奖励)
    • Asyncio:动态创建任务s,异步推送,提高系统吞吐量

RL设计 ​

RL设计

任务设计(Rollout/AgentLoop)

  • CodeAct + OpenHands scaffold
  • 三个Action:execute_bash + finish + str_replace_editor
  • AgentLoop循环,直到任务完成。

奖励设计

  • Rule:应用Patch,测试全部通过:1分;其他:0分。

数据集

2种常见失败模式

  • 陷入死循环:模型连续3轮执行相同动作
  • 没有结束动作:

实验结果 (Qwen3-14B) ​

✍️实验配置

实验配置

模型

  • OpenHands-7B-Agent -> SkyRL-Agent-7B-v
  • Qwen3-8B(非推理) -> SkyRL-Agent-8B-v0
  • Qwen3-14B(推理) -> SkyRL-Agent-14B-v0

训练数据

  • SkyRL-v0-80/220/293-data,从SWE-Gym 选的。

框架

  • OpenHands scaffold + CodeAct Agent。

超参

  • 32k,50轮。

🍑关键结果

  • 14B 达21.6%

三个尺寸模型:7B、8B、14B,四种实验方法:Zero-Shot, Zero-Shot(推理)、SFT、RL。具体如下表所示:

Resolved RateTechnique
Qwen3-14B18%Zero-Shot (Thinking)
SkyRL-Agent-14B-v0 (Best👍)21.6%Outcome based Reinforcement Learning
Qwen3-8B3.6%Zero-Shot (Non thinking)
SkyRL-Agent-8B-v09.4%Outcome based Reinforcement Learning
Qwen2.5-Coder-Instruct1.8%Zero-Shot
OpenHands-7B-Agent11.0%Supervised Fine-tuning
SkyRL-Agent-7B-v014.6%Outcome based Reinforcement Learning
总访客数:— · 总访问量:—
PLM's Blog @ 2016 - 2026