CalibForge:用对抗求解器校准合成终端任务,基准最高提升30个百分点
CalibForge: Adversarial Solver Calibration for Scaling Learnable Terminal Tasks

让大语言模型自主操作命令行终端、编写脚本并排查环境故障,已经成为构建自主智能体(Agent)的核心方向。为了训练这些终端智能体,学术界和工业界投入了大量精力来合成端到端可执行的沙盒任务。现有的自动化任务合成流程大多遵循“出题—构建沙盒—验证可解性”的范式:只要出题模型写出的任务能跑通自己的验证脚本,且自身能够成功解出,这个任务就会被打包进训练集。
ArXiv URL:https://arxiv.org/abs/2608.06352v1
然而,这种传统的“可执行性验证”存在一个巨大的认知盲区:一个在沙盒里完全可执行、可被验证的任务,并不代表它对模型的后续训练是有价值的。许多合成任务往往走向两个极端——要么过于浅薄,模型输入一两个简单命令就能轻松过关;要么隐含了歧义、缺陷或过高的隐式门槛,变成了实质上的“不可解死局”。单纯的可解性无法揭示任务相对于不同求解器(Solver)的能力边界究竟处于什么位置。

针对这一核心瓶颈,来自 AweAI、中国人民大学及独立研究团队的研究者们提出了 CalibForge。这是一套基于对抗求解器校准(Adversarial Solver Calibration)的自主终端任务合成系统。该工作的核心主张在于:任务的“可学习性”(Learnability)是一个相对于求解器而言的动态状态;不能把验证通过的任务当成静态成品,而应当利用外部求解器在执行过程中的行为痕迹与验证结果,动态调整和修改任务本身。通过引入多求解器分歧校准与对比式“强过弱挂”校准,CalibForge 成功构建了 5,431 个经过严格行为校准的高质量终端任务。在下游测试中,基于这些任务蒸馏轨迹训练的模型,在 Terminal-Bench 2.0 上取得了最高 47.57% 的准确率,相较基座模型提升幅度达 24.71 个百分点;并且在分布外的软件工程基准 SWE-bench Pro 和仓库级代码生成基准 Doc2Repo 上,分别实现了 27.68 和 30.04 个百分点的跨领域性能跃升。
为什么可执行的任务不等于可学习的任务?
在构建高质量 Agent 训练语料时,研究者通常会借助大语言模型根据某个线索(Clue)生成具体的工程任务。为了防止幻觉任务污染训练集,流水线中一般包含严格的结构校验与自解测试:生成模型不仅要写出指令(Instruction)、Dockerfile、初始环境和校验测试脚本(Verifier),还必须在刚拉起的沙盒里通过一次完整的自解流程,证明目标状态是可达且可测的。
这种做法看似滴水不漏,实则忽略了模型训练中的“学习区”(Zone of Proximal Development)原理。一个通过了自解验证的任务,如果直接拿去作为下游训练数据,其难度与有效性通常是未知的。如果一个任务让轻量级的弱模型也能不假思索地一键解出,它对强化学习或监督微调提供的梯度信号就极其有限,难以迫使模型形成深度的多轮推理与排错能力;反之,若任务中存在作者模型自身未意识到的环境特异性假设或隐蔽缺陷,导致其他模型即便具备充足的能力也无法在有限步数内定位问题,这种任务就会变成无效的噪音。
更关键的问题在于,以往的研究大多把外部求解器的评测结果仅仅作为下游评估的标准,而没有将其作为反哺任务构建的上游反馈。面对一个失败的求解轨迹,传统方法要么直接把任务丢弃,造成高昂的算力浪费;要么盲目信任出题者的首次判定。研究团队意识到,求解器在环境中的每一次交互轨迹、每一步报错日志以及最终的通过与否,恰恰是对任务“环境级可学习性”最真实的采样反馈。
对抗求解器校准的核心机制
为了打破上述局限,CalibForge 将终端任务的构建转化为一个受约束的对抗式“作者—求解器”(Author–Solver)闭环系统。在这个闭环中,出题智能体(Authoring Agent)与一组独立的求解智能体(Solver Agents)展开多轮交互。

整体流程从一个模糊的技术线索(如某特定软件版本的配置冲突、依赖异常或特定系统的边缘 Bug)出发。出题智能体首先在一个草稿沙盒(Draft Sandbox)中展开深度网络调研,查阅官方文档、GitHub Issue 讨论以及 Stack Overflow 问答,提炼出真实的工程痛点。随后,它选择具备可行性与独特性的一条技术路线,制定出包含依赖规范、边界测试和预期失败模式的完整任务方案。
在正式编写任务脚本前,出题智能体必须在草稿沙盒内预先测试依赖是否能正常安装、工具命令输出是否符合预期。完成编写后,候选任务 $\tau$ 需经历两阶段的基础校验:
-
结构校验:检查构建文件完整性,编译镜像并初始化沙盒,执行校验脚本确认所有测试在初始状态下均处于失败状态(避免无操作直接通过的漏网之鱼);
-
自解验证:在一个隔离的全新沙盒中,出题智能体亲自运行并完成任务,验证预设方案能够彻底通过校验脚本。
只有同时满足这两项、即 $V(\tau)=1$ 的任务,才会进入核心的对抗求解器校准环节。在这里,候选任务不再被视为不可更改的静态资产。出题智能体会根据设定的校准规范 $\gamma$ 调度求解器。若求解器的行为模式不满足目标准则 $C_\gamma$,出题智能体就会根据求解器留下的完整交互轨迹和诊断摘要,重新检索信息,修改指令描述、调整依赖环境,甚至是重写校验测试,然后重新打包、重新校验,直到满足标准或达到最大轮数 $R_{\max} = 50$。
为了界定合理的“可学习区间”,CalibForge 设计了两种互补的保留准则:
1. 多求解器分歧校准(Multi-Solver Calibration)
在该策略下,系统调度 $K$ 个基于不同模型架构的求解器子智能体,让它们各自在独立的沙盒副本中独立尝试解决同一个候选任务。设它们经过验证后的二值结果向量为 $\mathbf{y} = (y_1, \dots, y_K)$,其中 $y_i \in {0, 1}$。保留准则定义为:
\[C_{\mathrm{multi}}(\mathbf{y}) = \mathbf{1}\!\left[\,0 < \sum_{i=1}^{K} y_i < K\,\right]\]这一准则强制要求求解器之间产生分歧。如果所有求解器全部通过,说明任务过于简单,可能存在浅显的捷径(Shallow solution path);如果所有求解器全部失败,则说明任务难度过高、规范不明确或存在隐含的环境死锁。唯有出现“部分通过、部分失败”时,任务才被证明既是切实可解的,又具备足够的辨别度。
2. 对比求解器校准(Contrastive Solver Calibration)
多模型异构池虽然鲁棒,但计算开销相对分散。对比校准策略则通过引入强弱梯度的概念,显式锚定能力阶梯。系统指定一个较强的求解器模型(其验证结果为 $y_{\mathrm{s}}$)和一个较弱的求解器模型(结果为 $y_{\mathrm{w}}$),其保留准则形式化为:
\[C_{\mathrm{con}}(y_{\mathrm{s}}, y_{\mathrm{w}}) = \mathbf{1}\!\left[\,y_{\mathrm{s}} = 1 \land y_{\mathrm{w}} = 0\,\right]\]即该任务必须且只能由强求解器成功解决,弱求解器则必须在限定交互步数和时限内遭遇失败。这种“强过弱挂”的对比关系,直接将任务锁定在弱模型当前的认知盲区与强模型的能力辐射区之间,从而为弱模型的进阶学习提供了信噪比极高的探索边界。
数据集的生成规模与领域分布
在具体实现上,CalibForge 选用了 DeepSeek-V4-Pro 作为出题智能体。在多求解器校准中,研究团队引入了 DeepSeek-V4-Flash、GLM-5 以及 Kimi K2.5 三种异构模型作为求解器;而在对比校准中,则分别由 DeepSeek-V4-Pro 担任强求解器、DeepSeek-V4-Flash 担任弱求解器。每个求解器在单次尝试中均受到 100 步交互和 30 分钟时限的严格约束。
依托这套闭环系统,团队最终成功合成了 5,431 个高质量校准终端任务,其中 1,263 个来自多求解器分歧校准,4,168 个来自对比校准。为了消除潜在的测试泄漏,生成的数据集针对评估基准实施了极其严密的去污染过滤机制:通过 14-gram 重合度检测、针对指令与验证代码的 5-shingle Jaccard 相似度计算,结合共享输出路径与测试函数重合度检查,任何被标记与评测基准存在重合嫌疑的样本都会被彻底剔除。
对这批数据的深入统计揭示了其在领域广度上的明显优势。过去广泛使用的终端任务基准往往存在严重的领域倾斜:
-
SETA-Env 中有高达 74.6% 的任务扎堆在系统管理(System Administration)类别;
-
TerminalTraj 同样有 49.9% 集中在系统管理;
-
CLI-Gym 中调试类(Debugging)任务占到了 67.0%;
-
Endless-Terminals 则有 40.6% 的比例单纯是在处理文件操作。
相比之下,CalibForge 生成的任务均匀覆盖了分类体系下的 16 个工程领域。占比最高的软件工程领域(Software Engineering)仅为 25.5%,其余算力均匀分布在科学计算、网络安全、文件操作、数据科学、系统运维、复杂故障排查以及数据处理等多个核心方向。这种多元化的分布形态,从源头上保证了终端智能体能够接触到多样化的工具链与不同的报错反馈风格。
实验结果与泛化能力检验
为了验证校准任务对智能体能力的实际提升效果,研究者基于两款代表性的开源基座(Qwen3-30B-A3B-Instruct 与 Qwen3-35B-A3B-Instruct),利用 CalibForge 合成任务中成功求解器的完整交互轨迹进行了微调蒸馏,并在权威终端基准与跨领域的软件工程任务上展开了全方位评测。
在最具代表性的可执行终端基准 Terminal-Bench 2.0 上,经过 CalibForge 全量数据微调的模型展现出了显著的性能跃迁。CalibForge-30B-A3B 达到了 32.58% 的成功率,而 CalibForge-35B-A3B 更是取得了 47.57% 的高分。相比于各自未经微调的基座模型,绝对提升幅度分别达到了 18.25 和 24.71 个百分点。横向对比来看,这一表现明显超越了同等规模下使用 CLI-Gym、Endless-Terminals、SETA-Env 等同类训练数据微调的模型,较各基座对应的最强 baseline 仍有超过 6 个百分点的显著净优势。
更具说服力的是智能体在分布外(Out-of-Distribution, OOD)复杂软件工程任务上的泛化迁移表现。研究者进一步在两个极具挑战性的软件工程基准上检验了模型能力:
-
SWE-bench Pro:专注于长程工业级真实 issue 修复,要求智能体在大型代码仓库中完成定位、修改与测试验证;
-
Doc2Repo:要求智能体根据规范文档端到端合成出完整的软件仓库架构与工程实现代码。
评测结果表明,终端环境下磨炼出的交互与排错直觉,能够高度无缝地迁移到纯代码工程领域。在 SWE-bench Pro 上,CalibForge-35B-A3B 取得了 44.32% 的优异表现,相较原始基座模型的 16.64% 暴涨了 27.68 个百分点;在 Doc2Repo 上,该模型更是从基座的 18.73% 跃升至 48.77%,提升幅度高达 30.04 个百分点。在相同基座模型的对比实验中,CalibForge 训练出的模型在这两个代码大工程基准上均斩获了同组最佳成绩,充分证实了“在终端环境中学会如何试错与修正”是一种高度底层、高度可通用的 Agent 基础认知能力。
对抗校准为何能够带来高质量增益?
消融实验进一步剖析了性能提升的核心诱因:增益究竟来自于任务数量与轨迹长度,还是精准锁定的“可学习区间”?
研究团队设计了四组严格对齐的对照变体:
-
无求解器干预(No Solver):仅保留出题与自解校验流程,任务一经自身验证通过即被保留;
-
单求解器普通反馈(Single Solver):引入一个与出题模型同架构的独立求解器提供反馈,允许出题模型根据报错修改任务,但不施加任何跨模型分歧或能力对比的约束;
-
多求解器分歧校准(Multi Solver):采用前文所述的多异构模型分歧保留机制;
-
对比求解器校准(Contrast Solver):采用严格的“强过弱挂”保留机制。
在基准评测中,仅通过出题自检的“无求解器”版本在 Terminal-Bench 2.0 上仅获得 22.47% 的成绩;引入单求解器普通反馈后,成绩小幅提升至 24.34%,显示出一定的轨迹修正价值;但一旦引入对抗校准,多求解器版本与对比校准版本的分数迅速拉升至 29.21% 与 31.09%。
这一结果有力地反驳了一种常见的误区:认为只要求解轨迹足够长、交互轮数足够多,数据质量就一定高。在对 CLI-Gym 等环境修复类任务的轨迹分析中可以发现,其步数往往被机械性的反复编译和长耗时轮询拉得极长,但其中模型真正调用的思考 Token 并不密集。CalibForge 在更少的交互步数内激发出了模型更深度的推理思考,这表明单纯依靠步数无法定义轨迹质量。
另一个极具启发性的实验现象来自于对比校准的转化漏斗。在所有顺利通过了出题智能体结构校验和自解验证的候选任务中,当它们首次面对对比求解器测试时,初始阶段仅仅只有 19% 的任务能够自然满足“强模型解出、弱模型失败”的黄金条件。换句话说,超过八成的初次生成任务,在未经过校准前,要么由于过于平凡让弱模型轻易蒙混过关,要么因为存在环境晦涩点导致连强模型也一并翻车。
正是得益于多轮闭环中的动态修改与重新探测(Revision & Re-probing),出题智能体能够根据弱求解器的具体报错日志,针对性地增加环境噪声或提升逻辑严密度;或者根据强求解器的阻断点,厘清指令中的含糊说明与依赖缺陷。经过最多 50 轮的动态对抗打磨,累计通过对比校准准则的任务比例最终爬升至 96%。这直接证明了:任务是否处于可学习区间,既不是静态的可执行性所能担保的,也不是一次性出题所能决定的,而必须在与求解器的动态博弈中被重塑出来。
总结与未来展望
CalibForge 为大模型智能体训练数据的合成范式提供了一个极具辨识度的演进方向。它明确将“任务可学习性”从一个抽象的主观假设,具象化为了一个可观测、可执行、由求解器相对行为所锚定的操作准则。
这一机制对后续 Agent 研究具有双重启示。在数据工程层面,它表明以往单纯堆砌任务生成量、片面追求“通过率”的做法正逐渐见顶;未来的合成系统应当更加重视“出题者”与“解题者”之间的协同演化与对抗博弈,将训练集筛选推进到针对特定模型能力阶梯的动态定制阶段。在模型泛化层面,终端交互中包含的勘探、假设检验、环境复原与错误修正,其底层逻辑与大型软件工程高度同构。通过高质量、处于合适认知区间的终端交互数据进行微调,将成为低成本撬动复杂工程智能体通用能力的关键支点。