代码 Agent 已积累了海量终端轨迹,但后训练真正缺的是可执行环境。轨迹是一段冻结的示范,质量被当时的模型锁死;环境却能反复提问、换更强模型重做,并用测试验证新答案。
Terminal-Universe 从轨迹反向恢复环境,再生成新任务
图:轨迹和环境是同一段交互的两个视角,Terminal-Universe 尝试反转这条映射。来源:原论文。
#从工具调用里“考古”工作区
终端轨迹已经泄露了大量环境结构:Read 暴露文件内容,Write 和 Edit 记录修改前后差异,命令输出暴露依赖和运行方式。Terminal-Universe 先确定性重放这些操作,把被 Agent 修改的文件恢复到任务开始前的状态;再让补全 Agent 添加缺失文件和依赖,形成一个不包含答案的部分工作区。
系统随后重建原始意图,也可以在同一环境里生成全新任务。每个任务都配套一个在容器内运行的验证器,只保留测试通过的解题轨迹。
#一个环境,沿宽度和深度继续生长
“宽度”扩展会挖掘环境之间的依赖关系,构造跨工作区任务,例如参考另一个实现、迁移功能或连接两个组件。“深度”扩展把单轮任务变成多轮会话,由用户 Agent 根据当前工作区状态继续补充需求;如果上轮失败,反馈也以自然的用户请求返回。
图:恢复出的工作区覆盖不同文件量、依赖与任务复杂度。来源:原论文。
在公开终端轨迹上,这套流程得到 3.73 万个“任务充分”的环境。用它们生成数据微调 Qwen3.5-27B 后,Terminal-Bench 2.1 单轮成绩提升 11.9 点,EvoCode-Bench v2 的多轮 MT@4 提升 13.8 点。消融显示,在恢复环境里重新求解,明显优于直接模仿原始轨迹。
这改变了 Agent 数据工程的单位:不再把日志只当成 SFT 样本,而是把它看成可恢复、可变异、可验证的环境压缩包 。只要恢复过程能避免答案泄漏和依赖幻觉,一条旧轨迹就能持续产生新训练信号。
