
面向Terminal-Bench交互任务的数据规模化生产管线首次公开发布!
- 开源了一套完整的自动化数据构建算法
- 构建了1655个高可靠CLI任务环境镜像
- 通过291条轨迹数据实现了20%的解决率提升
在Agentic Coding领域,基于SWE-bench的数据管线研究已取得显著进展。过去一年里,业界涌现了许多相关工作,如SWE-Gym、SWE-Smith和R2E-Gym等,极大促进了以代码生成为核心的Agentic Coding发展,并缩小了开源模型与闭源模型之间的性能差距。然而,在更广泛的环境交互问题方面(例如Terminal-Bench涵盖的任务),目前尚无公开的高效规模化数据生产方案,导致相关数据构建困难重重且高度依赖人工参与,这已成为该方向发展的瓶颈之一,使得在这些任务上开源模型的表现显著落后于闭源模型。

因此推出了CLI-Gym!我们首先尝试使用Dockerfile对环境进行结构化和可复现定义;进一步地,将数据生产管线本身建模为一种Agentic Coding任务:驱动Code Agent执行健康环境中环境反演(即“劣化”操作),自动生成问题环境及其准确的单元测试,从而实现问题实例与验证工具的自动化构造。在29个基础镜像上制造出1655个针对Terminal-Bench实例并产出291条高质量成功轨迹,我们的微调模型LiberCoder 32B和235B在Terminal Bench上的性能分别提升至38.9%(+28.6%)和46.1%(+21.1%)。
我们的管线以Codebase、Dockerfile与Base Image为核心抽象,完整定义任意CLI Coding实体,使环境构建、问题生成及验证机制形成统一表达框架,并具备良好的可组合性和通用性。我们希望这一范式能进一步拓展至更多Agentic Coding场景,推动更广泛的数据生产算法和基准构建方法的发展。

本文的论文、代码和镜像数据均可在以下链接获取:
- 论文链接:https://arxiv.org/pdf/2602.10999
- 开源代码:https://github.com/LiberCoders/CLI-Gym
- 镜像数据:https://huggingface.co/datasets/LiberCoders/CLI-Gym
背景介绍
近年来,Agentic Coding正在快速改变软件工程任务解决方式,模型的能力边界已从“写代码”扩展至“处理复杂的真实软件系统问题”。尽管当前的研究重点集中在基于SWE-bench的代码层面研究上,但在实际的软件工程和系统运维场景中,许多问题源自运行环境而非代码本身。这些问题通常难以通过修改代码来修复,必须依赖agent通过命令行理解系统状态并执行一系列操作恢复环境正常运行。因此,对agent在CLI环境下的理解和干预能力要求越来越高。
Terminal-Bench的任务恰好满足这一需求。其基准包含大量以环境修复为核心目标的任务,对agent的CLI环境交互、诊断及修复能力提出更高要求。然而,从当前官方排行榜可以看出,高性能解决方案往往依赖于围绕强闭源模型构建的复杂agent框架,并通过大量提示工程与多轮反思机制来弥补模型在环境理解与问题定位方面的不足。相比之下,围绕开源模型如何系统性训练以提升其环境修复能力的研究仍然相当有限。
根本瓶颈在于:环境密集型任务难以规模化生成。代码类问题可通过挖掘仓库历史和pull request自动构建训练数据,但环境状态通常缺乏可追溯的演化记录,难以进行自动化重建与标注。这使得环境任务的数据长期依赖人工构造,规模难以扩展,并限制了模型在该方向上的持续训练及能力提升。

CLI-Gym正是在此背景下提出,旨在通过自动化机制突破环境依赖型任务数据难以规模化的问题,为agent提供可持续的数据来源进行能力训练。我们创新性地将数据生产管线建模为一种Agentic Coding任务:驱动一个“破坏者”agent在健康环境中执行环境反演(即“劣化”操作),自动生成问题环境及其精确的单元测试,从而实现问题实例与验证机制的自动化构建。

如上表所示,这种建模思路具有良好的通用性,不仅适用于环境依赖型任务构造,还涵盖了此前SWE系列方法的核心范式,在统一框架下实现了方法论层面的整合与扩展。
Pipeline:通过环境反演自动生成故障任务
CLI-Gym的核心思想非常巧妙,通过模拟环境历史自动生成故障场景。不同于传统方法从零构建受损环境,我们驱动一个“破坏者”agent主动篡改健康环境,制造多样化故障,并将其转化为可修复的任务实例。

CLI-Gym的核心在于重新思考任务生成方式:既然真实环境问题通常源于状态错误,不再从零人工构造损坏环境,而是从健康环境出发,自动模拟环境如何被破坏,从而反向构造出可修复任务。这一思想被称为“环境反演”,即通过agent将一个原本正常运行的环境主动破坏,使其回退至包含运行错误的状态,再将这一退化过程转换为agent需修复的问题实例。具体流程中,系统从真实开源仓库构建包含健康环境的Docker镜像作为起点,该环境能成功运行并通过全部单元测试;随后系统自动抽取目标UT,并通过语言模型生成诱导agent执行破坏性操作的指令,如删除关键依赖、篡改配置文件等,改变环境状态使部分测试失败。当环境中出现失败测试后,系统根据日志和变更自动生成问题描述与修复目标,形成完整CLI任务实例。整个流程无需人工参与,从健康环境生成故障环境,再构造修复任务,实现了环境问题的自动规模化生成。
产出:规模化与高质量的数据
基于这一自动化pipeline,CLI-Gym在29个真实开源仓库中生成了1,655个环境密集型CLI任务实例,规模远超Terminal-Bench的人工构造数据,并涵盖多个应用领域。相比现有基准,这些任务具有更高复杂度,每个任务平均包含超过20个失败测试,为agent提供更丰富的诊断信号和修复反馈,使模型必须真正理解系统状态并执行多步操作才能完成修复,而不仅仅是通过简单代码修改或投机策略通过测试。此外,该流程完全自动化运行,仅消耗计算资源无需人工标注,大幅降低成本,使得环境任务数据能够持续扩展。

在轨迹数据收集阶段,系统使用强模型运行自动生成的任务并收集成功修复轨迹,并通过严格过滤机制排除过于简单或存在作弊路径的轨迹,保留真正体现复杂环境修复过程的数据。最终获得数百条高质量agent行为轨迹用于后续模型训练。这些轨迹展示了丰富的修复策略,包括依赖恢复、配置调试和权限问题处理等,为模型学习真实环境问题解决模式提供了宝贵监督信号。
实战效果:显著提升环境问题解决能力
基于CLI-Gym生成的数据对Qwen3系列模型进行微调后得到LiberCoder系列模型,在Terminal-Bench上取得了显著性能提升。LiberCoder-32B在Terminal-Bench 1.0上的Pass@1达到38.9%,相比基础模型有大幅提升,而规模更大的LiberCoder-235B-A22B达到了46.1%,超过大多数开源模型并接近部分闭源模型的性能。进一步分析发现,微调后的模型在环境问题处理能力上有明显变化,不再频繁失败于编辑错误或问题定位,而是更多受到上下文长度与执行时间等外部因素限制,表明其核心环境修复能力已显著增强。同时,在软件工程、系统管理、安全修复与调试任务等多个类别中均观察到一致提升,说明CLI-Gym数据并非针对单一场景优化,而是在环境交互任务中的泛化能力得到了全面增强。

CLI-Gym是第一种公开用于扩展CLI代理编码任务训练环境的方法。使用Dockerfile表示每个环境以实现精确配置和版本控制,并用agent模拟环境历史。整理了1655个任务实例,收集了291条成功的轨迹。实验表明,对我们的数据进行微调可以显著增强基于环境的代理编码能力,在开源模型中实现了Terminal Bench上的顶级性能表现。


结语
CLI-Gym 是第一种用于扩展 CLI 代理编码任务训练环境的公开方法。使用 Dockerfile 来表示每个环境,以进行精确的配置和版本控制,并使用 agent 来模拟环境历史。整理了 1655 个任务实例,收集了 291 个成功的轨迹。实验表明,对我们的数据进行微调可以大大增强以环境为中心的代理编码,从而在开源模型中在 Terminal Bench 上实现顶级性能。
