Terminal-Universe:将智能体轨迹转化为可扩展的终端环境 Terminal-Universe: Turning Agent Trajectories into Scalable Terminal Environments
把已积累的智能体轨迹回放重建为可执行环境,再合成可验证任务用于后训练。
前置知识
轨迹与环境
智能体轨迹是模型完成一次任务的全部交互记录(用户请求、工具调用、文件修改),是一条被当时策略模型能力封顶的、冻结的单一演示;环境则是可执行的代码工作区,可以被反复查询成许多可验证任务,并提供真实的执行反馈。
本文全部动机建立在'环境比轨迹更有训练价值'这一判断上,分清两者才能理解为何要把轨迹'逆向'成环境而非直接模仿轨迹。
确定性回放
按时间顺序重放轨迹中记录的读、写、编辑操作,为每个被访问路径保留智能体首次修改前的最早可见版本,并排除智能体自建的文件,从而机械地恢复出一个部分工作区 $\hat{E}_0$。
这是环境重建流水线的第一阶段,理解它才能理解'回放+补全'两段式设计的分工与消融结论。
SFT 后训练
监督微调:用(指令,参考解法)配对数据直接训练模型模仿目标行为,与强化学习的探索式优化相对。数据质量与覆盖面直接决定模型上限。
论文所有实验都是'SFT 后模型对比基座',且核心消融正是在比较不同来源 SFT 数据的优劣。
Terminal-Bench
终端智能体权威基准,每个任务配定制容器、任务指令与可执行验证器,报告多次运行的平均通过率(Avg. Pass@1),2.0 与 2.1 是其两个版本。
它既是本文的主评测基准(在 Terminus2-XML 与 Claude Code 两种脚手架下报告),也是数据去污染的对象。
TF-IDF 最近邻检索
经典文本检索权重方法,衡量一个词对某文档的重要性。本文用工作区的领域与能力剖析文本做 TF-IDF 向量化,检索候选配对以发现跨工作区的方向性依赖关系。
广度扩展(Cross-WS)合成跨代码库任务的第一步就依赖这种检索找到'目标缺、参考有'的工作区对。
研究动机
终端代码智能体日益普及,其产生的轨迹已大规模积累,但真实、可执行的环境却极度稀缺。这一缺口之所以关键,在于轨迹与环境的价值并不对等:轨迹是一条被策略模型能力封顶的固定记录,我们既无法验证它对代码库的修改是否正确,也无法在其上提出更难的新任务;而环境恰好是智能体后训练真正需要的资源——同一个环境可以被反复查询成许多可验证任务,并提供执行反馈。现有扩充环境的路线各有硬伤:基于 git 历史的仓库法(SWE-Gym、R2E-Gym)依赖真实仓库的历史修复记录,任务局限于缺陷修复;扰动法(SWE-smith、CLI-Gym)向健康工作区注入 bug,29 个环境也只能产出 1,655 个同质化修复任务;任务条件合成(Endless Term.、TMax、CLI-Universe 等)从零生成任务与环境,虽然可控但环境不绑定真实项目,往往只是小而整洁的人造工作区。人工策划的 Terminal-Bench 质量最高,但每个任务都需手工定制容器与验证器,规模天花板明显,而后训练需要的环境数量远超人工策划所能供给。
本文的目标是本文的目标是构建一个可规模化的框架,把已积累的海量智能体轨迹转化成可复用、可执行、可验证的终端环境,并在其上合成多样化训练任务用于后训练。具体要做到三点:其一,既不依赖原始仓库也不从零造环境,仅凭轨迹中记录的文件读写操作恢复出智能体动手之前的工作区;其二,在恢复出的环境上同时支持四类再查询——恢复原始意图任务(Intent Recovery)、单工作区新任务(Single-WS)、跨工作区广度任务(Cross-WS)与多轮深度任务(Multi-Round),以贴近真实工程中跨代码库协作与迭代式需求演化的常态;其三,为每个新任务配备容器内智能体编写的可执行 pytest 验证器,只保留教师模型全部通过测试的轨迹。最终在 37.3k 个任务充分的环境上生成 32.0k 条 SFT 数据,微调 Qwen3.5-27B,并在 Terminal-Bench 2.0/2.1 与 EvoCode-Bench v2 上系统验证有效性。
与已有工作不同的是,本文的独特切入是提出'轨迹—环境对偶'视角并反转了以往的数据流向。先前工作要么从现有环境出发采样轨迹(env→trajectory),要么把任务与环境当作配套产物从零生成,而轨迹本身作为'其所运行环境的观测记录'这一资源长期被忽视。作者的关键观察是:轨迹中的工具调用已经暴露了环境的结构与内容——Read 调用显示文件内容,Write 与 Edit 调用显示工作区如何被改变,这些信息足以重建一个可执行的环境副本。于是本文不再问'如何从环境得到轨迹',而是问'如何从轨迹恢复环境',把一条单一的、冻结的演示记录升维成可反复查询、可验证、可扩展的环境资产,从而开辟了环境规模的全新来源。作者还指出按广度(跨工作区)与深度(多轮交互)两个正交轴扩展同一环境的任务产出,是对'每环境一任务'惯例的突破。
核心方法
方法的直觉是'把电影倒着放':智能体在环境中留下的每一步文件操作都是环境状态的一枚快照,按时间顺序重放这些操作,就能恢复出它动手之前的工作区。技术路线上,Terminal-Universe 分三阶段重建环境:第一阶段确定性回放按时间顺序处理轨迹 $\tau$ 中的读、写、编辑操作,收集每个被访问路径的最早可见版本,排除智能体自建文件,得到部分工作区 $\hat{E}_0$;第二阶段智能体补全由补全智能体在不泄露解法的前提下补齐缺失文件与依赖,得到 $\hat{E}$;第三阶段环境过滤由裁判智能体以只读工具检查工作区,仅保留对恢复任务 $q$ 充分的部分。随后通过四种再查询机制(Intent Recovery、Single-WS、Cross-WS、Multi-Round)合成任务,每个任务配以容器内智能体编写的 pytest 验证器,用 Qwen3.7-Max 教师在 Claude Code 脚手架中求解并只保留全部通过的轨迹。整条流水线在公开轨迹语料上产出 68,263 个重建环境、最终保留 37,273 个任务充分环境与 32.0k 条约 1.42B token 的 SFT 数据。
核心创新是三点联动。第一,轨迹即环境:与以往所有方法不同,环境不来自 git 历史、不来自扰动注入、也不来自从零生成,而是从既有轨迹中逆向重建——这利用了'工具执行历史必然暴露环境状态'的物理事实,是一条此前未被开采的数据矿脉,也是与 SWE-Gym、SWE-smith、TMax 等路线的本质区别。第二,重解优于模仿:在恢复出的环境上用更强教师重新求解恢复的任务(Intent Recovery),而不是直接模仿原始轨迹,这一范式转变在 Terminal-Bench 2.1 上拉开 15.4 分的差距(52.1 对 36.7)。第三,沿广度与深度两个正交轴扩展环境价值:广度上挖掘环境间的方向性依赖关系,合成跨代码库任务,参考仓库只挂载为只读路径;深度上用用户智能体把单轮任务延展成至多 6 轮的多轮会话,捕捉真实开发中迭代式的需求演化,每轮先写验收测试再交互,并刻意保留中途失败—恢复的片段作为纠错监督。
方法步骤详情
完整流程分七步。第一步种子筛选:从公开终端式 CLI 与软件工程语料中选取结束状态至少含 5 个文件、100 行的轨迹,剔除 Terminal-Bench 衍生来源。第二步确定性回放:按时间顺序重放读写编辑操作,取每个文件最早版本构成 $\hat{E}_0$,智能体的修改单独记录供验证。第三步补全与过滤:补全智能体补齐缺失文件与依赖(平均文件数从 2.9 增至 22.4),经 13-gram 污染检查与去重后由裁判判定充分性,充分率从 40.2% 升至 93.5%,保留 37,273 个环境。第四步意图恢复与单工作区合成:前者把源请求整合为自包含任务;后者在每个工作区提出 5 个候选任务、随机选 1 个。第五步跨工作区合成:剖析各工作区领域与能力,TF-IDF 最近邻检索候选对,LLM 裁判识别方向性依赖边,每对一题,可写目标区配只读参考区。第六步多轮扩展:用户智能体维护需求跟踪器,按扩展、修订、冲突三种风格追问,每轮先写验收测试,至多 6 轮。第七步验证与训练:验证器智能体在容器内编写 pytest 套件,Qwen3.7-Max 教师以温度 1.0、top-p 0.95、256k 上下文求解,只保留全通过的轨迹,最后以学习率 $7\times10^{-6}$、批大小 256 对 Qwen3.5-27B 做 2 轮 SFT。
技术新颖性
技术新颖性体现在四个层面。其一,数据来源的新颖:37.3k 环境全部来自对既有轨迹的重建,对比方法中环境最多的 RST(37.5k)依赖递归种子演化,CLI-Gym 仅 29 个工作区,本文是首个以轨迹为主要环境来源的系统性框架。其二,重建机制的新颖:确定性回放与智能体补全的两段式设计把'有损恢复'拆成可机械并行的部分与需要语义推理的部分,消融显示补全使终端工作区充分率从 40.2% 跃升至 93.5%,且训练更稳定(±1.4 对 ±3.5)。其三,任务空间的正交扩展:Cross-WS 使教师 pass@1 从 72.3% 降到 49.2%、轨迹中位轮数从 14 增到 23,说明难度来自真实的双仓库协调而非数据堆叠;Multi-Round 的回合级验证被证明不可或缺(去掉后 MT@4 降 2.2 分)。其四,预算分析的新颖:在固定约 35k 记录下,扩环境(56.0)显著优于扩查询(53.8)与扩解法(53.9),为'环境才是值得规模化之物'的论点提供了受控证据。
实验结果
核心结果分两层。主实验:在 32.0k 混合数据上微调 Qwen3.5-27B,Terminus2-XML 下 Terminal-Bench 2.0 从 41.6 提至 52.8(+11.2),2.1 从 46.2 提至 58.1(+11.9),Claude Code 下 2.1 从 47.8 提至 58.2;EvoCode-Bench v2 的 MT@4 从 6.3 提至 20.1(+13.8),Case 分从 67.8 提至 76.1,全面超过 RST-27B(49.4)、TMax-27B(44.9)等同类方法。消融一(重解对模仿):同为 35.8k 数据,源轨迹 SFT 仅 36.7,Intent Recovery 达 52.1(+15.4)。消融二(补全):仅回放 48.7,加补全 52.9 且方差更小。消融三(验证器过滤):Cross-WS 过滤后半量数据 55.4 对 53.2。消融四(广度):Single-WS 56.4,加 Cross-WS 升至 58.4,模型训练类目涨 15.0 分。消融五(深度):加 Multi-Round 后 MT@4 从 18.4 升至 21.0,去掉回合级验证回落 2.2 分。消融六(预算):等预算下扩环境 56.0 显著优于扩查询 53.8 与扩解法 53.9。消融七(跨域):SWE 意图恢复的 10.3k 数据使平均分从 47.0 升至 50.0,证明方法可迁移出终端域。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| Terminal-Bench 2.1 单轮求解(Terminus2-XML 脚手架) | 平均 Pass@1(6 次运行) | 58.1 | Qwen3.5-27B 基座 46.2 | +11.9 分 |
| Terminal-Bench 2.0 单轮求解(Terminus2-XML) | 平均 Pass@1 | 52.8 | 基座 41.6;最优同类 RST-27B 49.4 | 对基座 +11.2 分,对最优同类 +3.4 分 |
| Terminal-Bench 2.1(Claude Code 脚手架) | 平均 Pass@1 | 58.2 | 基座 47.8 | +10.4 分 |
| EvoCode-Bench v2 多轮持久任务 | MT@4(fail-stop 连续通过轮数) | 20.1 | 基座 6.3;TMax-27B 17.1 | +13.8 分(对基座) |
| EvoCode-Bench v2 多轮持久任务 | Case Score(验证器用例通过率) | 76.1 | 基座 67.8;TMax-27B 72.5 | +8.3 分(对基座) |
| Terminal-Bench 2.1:重解恢复任务 vs 模仿源轨迹 | 两脚手架平均分 | Intent Recovery 52.1 | 源轨迹 SFT 36.7 | +15.4 分 |
局限与改进
作者承认三点局限:所有工作区统一使用 ubuntu:24.04 标准容器而非 SWE-Factory、RepoLaunch 式的仓库定制镜像,依赖特殊系统组件或复杂编译的边缘场景保真度会下降;重建工作区的领域、语言与工具链分布受限于所收集的源轨迹(重建池中 Python 占 84.7%、数据处理占 47.4%,分布明显偏斜);任务、解法与验证器均由 Qwen3.7-Max 单一教师生成,其能力盲区既限制任务覆盖,其解法错误也可能被其自写的测试漏检。我自己的观察补充四点:其一,论文未报告重建环境与真实原始环境的保真度对比,'环境质量'只有充分性判定的间接证据;其二,Cross-WS 任务教师 pass@1 仅 49.2%,近一半采样算力被丢弃,成本效率存疑;其三,去污染仅对 Terminal-Bench 做 13-gram 检查,其他评测集的污染风险未讨论;其四,全部实验止步于 SFT,未探索在重建环境上做强化学习这一最自然的延伸,而环境可重复查询、可验证的特性恰恰适合 RL。
独立分析的弱点
独立分析发现四个弱点。第一,循环性风险:任务、解法与验证器出自同一教师,若教师对某类任务存在系统性误解,错误会在三个层面同向传播且难以被内部过滤发现,改进方向是引入独立验证器模型或少量人工抽检校准测试质量。第二,回放的信息天花板:未被访问的文件、隐式系统依赖与外部网络资源不留痕迹,补全智能体只能'猜测性重建',可能造成训练环境与真实工程环境的系统性分布差,改进方向是聚合同一工作区的多个会话联合回放(作者已提及)以扩大状态覆盖。第三,成本未量化:论文给出 pass@1 与轨迹长度,但未报告每个环境的重建开销、任务合成成本与单位训练样本费用,难以与 git 历史法比较性价比,建议补充端到端成本模型。第四,Cross-WS 的依赖边由 TF-IDF 加 LLM 裁判发现,检索天然偏向文本相似而非真实工程依赖,可能漏掉'文本不相似但功能互补'的高价值配对,可换用代码嵌入模型或调用图/导入图挖掘,并为每对生成多个任务以提高每对环境的产出率。
未来方向
作者提出的方向包括:利用更高质量、操作动态更丰富的源轨迹(多文件操作、长工具链)合成更难的任务;聚合多会话回放以合并各自暴露的状态,构建比任何单轨迹都复杂的环境;用 SWE-Factory、RepoLaunch 式自动管线构建仓库定制镜像提升保真度;引入多教师与独立验证器构建模型以打破单点能力瓶颈。基于本文成果还可延伸四点:其一,在重建环境上运行可验证奖励的强化学习(RLVR/GRPO),环境可重复查询、自带 pytest 验证器正是 RL 的理想条件,SFT 基线(TB 2.1 58.1)已铺好路;其二,打通'终端→SWE'的反向迁移并量化双向增益,论文只测了 SWE→终端方向;其三,把 Cross-WS 的依赖挖掘扩展到跨语言、跨领域配对(如前端+后端、Python+CUDA),进一步释放广度轴潜力;其四,把深度扩展中'用户智能体+需求跟踪器+回合级验证'的机制抽象为通用交互式后训练范式,迁移到 web 智能体、多模态智能体等场景。
复现评估
复现难度中等偏高。有利因素:方法各阶段(回放、补全、四类再查询、验证器构建)在正文与附录(§A–§F)中描述得相当细致,给出充分率、通过率、交互风格分布等中间统计量;种子数据来自公开轨迹语料且筛选标准明确(结束状态至少 5 个文件、100 行);评测配置(温度 1.0、top-p 0.95、256k 上下文、6 次运行取均值、去污染规则)完整公开,主要对比分数可核对。不利因素:论文文本未见明确的开源代码或数据发布链接;教师 Qwen3.7-Max(xhigh effort)为闭源 API 模型,任务合成、解法生成与验证器编写均依赖它,复现者难以获得同等质量,可能显著影响最终成绩;训练需以 256k 序列长度微调 27B 模型(全局批 256、约 1.42B token),对显存与工程能力要求较高;EvoCode-Bench v2 每任务 10 小时墙钟、4 次运行的评测成本也不低。若作者开源数据与流水线,复现门槛将大幅下降,届时核心贡献可由中等规模团队验证。
论文图表