把 agent 轨迹变成可复用的终端环境

来自 arXiv · 期号 2026-09-04

摘要

终端 agent 在运行时留下了大量轨迹,但 agent 后训练真正需要的是可执行的环境——每个环境都能反复生成可验证的任务、提供执行反馈,而轨迹只是一次性的演示。 Terminal-Universe 的思路是:轨迹里已经记录了工具执行历史,暴露了运行环境的文件结构和内容,可以反过来把环境重建出来。它回放轨迹中的文件操作,把每个文件恢复到 agent 修改前的状态,得到一个不完整的工作区;再用一个补全 agent 补上缺失的文件和依赖。 在恢复出的工作区上,它既重建原始任务,也合成全新的任务。广度上,它挖掘相关环境之间的依赖关系,合成跨代码库的查询(真实开发中常见);深度上,它把单轮查询扩展成多轮会话,用一个用户 agent 模拟迭代反馈和需求细化。 在公开的终端 agent 轨迹上,Terminal-Universe 产出了 37.3k 个任务充分的环境。用这批数据对 Qwen3.5-27B 做 SFT,单轮 Terminal-Bench 2.1 提升 11.9 分,多轮 EvoCode-Bench v2 MT@4 提升 13.8 分。

深读

导读 终端 agent 后训练最缺的不是轨迹数据,而是可执行的环境。Terminal-Universe 提出一个反直觉的思路:从已有的 agent 轨迹里把运行环境重建出来,再在上面合成新任务。读完能理解为什么轨迹不等于训练数据,以及如何从一次性演示中回收可复用的环境。 关键信息 - 终端 agent 轨迹中记录了工具执行历史,暴露了运行环境的文件结构和内容,Terminal-Universe 据此重建环境,而非从零生成。 - 重建流程分两步:回放轨迹中的文件操作,将每个文件恢复到 agent 修改前的状态,得到一个不完整的工作区;再用一个补全 agent 补充缺失的文件和依赖。 - 在重建的工作区上,Terminal-Universe 既重建原始任务,也合成全新任务。广度上挖掘环境间的依赖关系,合成跨代码库的查询;深度上把单轮查询扩展为多轮会话,用一个用户 agent 模拟迭代反馈和需求细化。 - 在公开的终端 agent 轨迹上,产出 37.3k 个任务充分的环境。 - 用这批数据对 Qwen3.5-27B 进行监督微调,在 Terminal-Bench 2.1 上单轮性能提升 11.9 分,在 EvoCode-Bench v2 MT@4 上多轮性能提升 13.8 分。 逐节讲解 问题:轨迹多,环境少 终端 agent 在运行时留下了大量轨迹,但 agent 后训练真正需要的是可执行的环境,每个环境都能反复生成可验证的任务、提供执行反馈,而轨迹只是一次性的演示。从零生成环境成本高昂,且难以覆盖真实场景的复杂度。 核心思路:从轨迹中重建环境 Terminal-Universe 观察到,轨迹中的工具执行历史已经暴露了运行环境的文件结构和内容,因此可以反过来把环境重建出来。具体做法是:回放轨迹中的文件操作,把每个文件恢复到 agent 修改前的状态,得到一个不完整的工作区;再用一个补全 agent 补上缺失的文件和依赖。 任务合成:广度与深度 在恢复出的工作区上,Terminal-Universe 既重建原始任务,也合成全新的任务。广度上,它挖掘相关环境之间的依赖关系,合成跨代码库的查询,这是真实开发中常见的场景;深度上,把单轮查询扩展成多轮会话,用一个用户 agent 模拟迭代反馈和需求细化。 实验效果 在公开的终端 agent 轨迹上,Terminal-Universe 产出了 37.3k 个任务充分的环境。用这批数据对 Qwen3.5-27B 进行监督微调,在 Terminal-Bench 2.1 上单轮性能提升 11.9 分,在 EvoCode-Bench v2 MT@4 上多轮性能提升 13.8 分。 值得注意 本文仅基于论文摘要,未看到具体的方法细节(如补全 agent 的设计、依赖补全的成功率、跨代码库查询的合成策略等),也未看到与从零生成环境或…

读原文

本站只做摘要与索引,全部内容版权归原作者所有。