SETA: Scaling Environments for Terminal Agents¶
会议: NeurIPS 2026
arXiv: 2607.10891
OpenReview: https://openreview.net/forum?id=9UIuxqt9cc
代码: https://github.com/camel-ai/seta
领域: LLM Agent
关键词: 终端智能体, 强化学习, 环境合成, 自适应演化, 自动可执行评测
一句话总结¶
针对终端交互智能体缺乏规模化训练环境与可靠验证信号的瓶颈,本文提出 SETA 框架,通过源自多样人类真实问答的 SETA-Synth 与基于模型能力边界动态调控难度与多样性的 SETA-Evol,构建出包含 4,567 个可执行且带单元测试的开源终端强化学习环境集 SETA-Env,在 Qwen3-8B 与 DeepSeek-V4-Flash 上显著刷新了 Terminal-Bench 2.0 评测表现。
研究背景与动机¶
随着大语言模型(LLM)从被动文本生成转向能够调用工具完成复杂交互的自主智能体,终端命令行作为连接操作系统底层、数据科学流程与软件工程的核心文本接口,扮演着至关重要的角色。与关注局部代码仓库编辑的 SWE-agent 等不同,终端环境具有高度的状态隐匿性与开放性:智能体的每一次 Bash 指令执行都可能改变不可见的系统内部状态,且涉及异构系统工具的协同调用。当前终端智能体性能面临的核心瓶颈,在于严重匮乏大规模、高质量且可执行验证的强化学习(RL)训练环境。软件工程智能体可以自然利用 GitHub PR 和 Issue 作为天然真值监督,而通用终端任务既缺乏自然的标注数据,又需要协同合成一致的 Docker 镜像环境、明确的任务指令与细粒度的可执行测试。
不仅如此,现有针对环境合成的探索往往无法兼顾真实场景的真实锚定与任务难度的可控性。单纯依靠大模型从头伪造指令与沙箱,往往缺乏工业级真实性;而直接爬取真实问题又存在难度分布极端失衡的问题,导致大量任务对当前策略而言不是过于平凡(Pass 率 100%)就是完全无法解决(Pass 率 0%)。在强化学习(如 GRPO)训练中,组内奖励方差是策略更新的直接驱动力;缺乏有效方差的环境无法提供学习信号,极大制约了终端智能体的规模化自我演化。
为了攻克环境构建中真实性、可验证性与难度分布的三重矛盾,本文提出了一种持续扩展可验证终端环境的双流水线框架 SETA。核心 idea:将终端环境构建解耦为「基于多样人类问答源的自适应合成(SETA-Synth)」与「基于模型能力边界的自适应难度演化(SETA-Evol)」,结合引入事后轨迹评判的防潜伏漏洞单元测试,构建出高覆盖、强密度的可验证强化学习环境集。
方法详解¶
整体框架¶
SETA 框架由两个紧密协作的核心流水线构成:首先由 SETA-Synth 负责将真实的开源问答社区、数据科学笔记本及经典 Bash 数据集统一转化为标准化的 Harbor 容器环境与单元测试;随后,SETA-Evol 依据当前策略模型在已有环境上的实际通过率分布,自适应选取难度递增、难度递减或上下文迁移算子,使合成任务始终动态收敛于策略模型的“有效强化学习训练区间”。最后,所有生成与演化环境均经过无操作(No-op)测试、真值解法(Oracle)验证及针对假阴性漏洞的事后轨迹审计。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
A["真实多源数据<br/>StackOverflow / Kaggle / NL2Bash"] --> B["SETA-Synth:源自适应环境合成<br/>Idea Agent 生成规范 + Datapoint Agent 实例化"]
B --> C["执行双重验证<br/>No-op 验证 + Oracle 黄金解法验证"]
C --> D["轨迹审计裁决:事后轨迹法官<br/>过滤因未声明隐式约定导致的系统漏洞"]
D --> E["SETA-Evol:自适应难度与上下文演化<br/>依据通过率调控至 RL 有效学习区间"]
E --> F["部分进展奖励驱动的 GRPO 强化学习<br/>非均匀奖励密集信号 + 全通额外奖励"]
F -->|模型能力边界更新| E
关键设计¶
1. SETA-Synth:源自适应环境合成与事后轨迹审计
直接从零提示大模型生成终端任务容易天马行空且脱离实际开发需求,而现存的社区工程数据格式各异且往往缺失测试逻辑。SETA-Synth 建立了分层解耦的生成架构:前端通过针对不同数据源(Stack Overflow、Unix/Linux StackExchange、Kaggle Notebooks、NL2Bash)专门定制的适配器提示词驱动 Idea Agent,将非结构化的高赞问答与脚本规范化为统一的任务草案规范(draft specification);随后后端统一由 Datapoint Agent 根据草案实例化生成独立的 Dockerfile、真值解决方案 solve.sh、测试套件 test_state.py 和规范化指令。针对“生成模型在编写测试时悄悄引入未在指令中说明的硬编码假定”(例如强制要求特定的 JSON 字段名或缩写)导致即使正确轨迹也必定失败的严重假阴性漏洞,SETA 设计了专门的 Trajectory Judge Agent。当某项任务在所有模型 Rollout 下失败率为 100% 时,法官 Agent 结合失败频次、测试源码与执行终端日志进行事后归因审计,将由于未声明假定造成的 94 个“系统设计缺陷任务”有效剔除,避免了污染 RL 训练集。
2. SETA-Evol:基于策略能力边界的自适应难度与上下文演化 为了让强化学习中的组相对策略优化(GRPO)获得最大化的组内奖励方差,环境难度必须动态契合模型的当前能力。若环境完全解不出或轻易秒杀,优势估计将直接塌缩为零。SETA-Evol 根据模型在环境中的基线通过率 \(r\) 自适应分配三类演化算子: - 难度增加(Difficulty Increase, \(d_1\)):针对容易任务(\(r > 0.5\)),引入边界限制条件、多步依赖或更严苛的系统异常,将其向高阶学习边界推进; - 难度降低(Difficulty Decrease, \(d_1\)):针对困难任务(\(r = 0\) 且部分有解决潜力),剥离复杂的次要逻辑或放宽异常约束,使未解任务重新落入可学习区间; - 上下文迁移(Context Shift, \(b_1\)):针对适中任务(\(r \in (0, 0.5]\)),在保持等价难度与交互骨架的前提下横向旋转技术栈(如将 Nginx 替换为 Apache,或将 Python/sklearn 替换为 R/caret)。 实测表明,演化后的任务在难度递减桶中中位数通过率由 6% 上升至 38%,在递增桶中由 83% 抑制至 69%,且上下文迁移成功实现了跨领域技术栈的广泛覆盖,极大丰富了环境表征分布。
3. 部分进展奖励设计与沙箱终端交互工具链 终端任务若仅采用二进制奖励(全部测试通过为 1,否则为 0),会导致严重的反向传播梯度稀疏性,尤其在包含多步骤的长程任务中几乎无法提供优化方向。为此,本文提出基于通过测试比例的连续分段奖励函数: $\(r = \frac{N_{\text{passed}}}{N_{\text{total}}} + 0.2 \cdot \mathbb{I}\left(\frac{N_{\text{passed}}}{N_{\text{total}}} = 1\right)\)$ 其中 \(N_{\text{passed}}\) 为通过的单元测试数,\(N_{\text{total}}\) 为总测试数,当且仅当全部测试通过时赋予额外的 0.2 奖励加成。该设计将提供有效奖励方差的任务比例从 49% 骤增至 86%。配合沙箱终端交互组件 TerminalToolkit,系统通过拦截并解析超时命令为非阻塞后台会话、实施 ANSI 控制符清洗及 1000 字符自适应截断(头尾各 500 字符),为 Agent 提供稳定、可靠且防止上下文爆炸的终端交互基座。
损失函数 / 训练策略¶
训练采用融入非均匀奖励采样的 GRPO(Group Relative Policy Optimization)框架,避免在组内所有 rollout 奖励一致的环境上浪费计算资源: $\(\mathcal{J}(\theta) = \mathbb{E}_{(h, s, a, R) \sim \mathcal{D}} \left[ \min\left( \frac{\pi_\theta(a \mid h, s)}{\pi_{\text{old}}(a \mid h, s)} A, \, \operatorname{clip}\left(\frac{\pi_\theta(a \mid h, s)}{\pi_{\text{old}}(a \mid h, s)}, 1 - \epsilon_{\text{low}}, 1 + \epsilon_{\text{high}}\right) A \right) \right] - \beta D_{\text{KL}}(\pi_\theta(a \mid h, s) \parallel \pi_{\text{ref}}(a \mid h, s))\)$ 其中优势 \(A\) 是通过环境内多个 rollout 的部分进展奖励经均值和标准差归一化得到。Qwen3-8B 采用常数学习率 \(1.70 \times 10^{-5}\),PPO 裁剪范围 \(\epsilon_{\text{clip}} = 0.4\),每个任务采集 16 条轨迹,训练 40 个 epoch。
实验关键数据¶
主实验¶
在严苛的终端基准 Terminal-Bench 1.0 与 2.0 上,对比了基线模型与当前开源 SOTA 模型:
| 模型 | 参数量 | 训练方法 | Terminal-Bench 1.0 (pass@1) | Terminal-Bench 2.0 (pass@1) |
|---|---|---|---|---|
| Qwen3-8B (base) | 8B | — | \(7.8 \pm 1.2\%\) | \(3.1 \pm 0.6\%\) |
| Qwen3-32B (base) | 30B | — | \(11.25\%\) | \(3.4 \pm 1.6\%\) |
| OpenThoughts-Agent-v1-RL | 8B | RL | — | \(4.9\%\) |
| Endless Terminals-8B | 8B | SFT + RL | — | \(6.7\%\) |
| Nemotron-Terminal-8B | 8B | SFT (254k+ 教师轨迹) | — | \(13.0 \pm 2.2\%\) |
| SETA (RL, 本文) | 8B | RL (SETA-Env) | \(17.8 \pm 1.2\%\) | \(10.7 \pm 1.3\%\)(最优单轮 \(12\%\)) |
| DeepSeek-V4-Flash | — | — | — | \(40.0\%\) |
| DeepSeek-V4-Flash + SETA (RL) | — | RL (SETA-Env) | — | \(43.0 \pm 2.5\%\) |
| GPT-OSS-120B | 120B | — | — | \(14.2 \pm 2.3\%\) |
在下游代码迁移基准(CRUST-Bench 跨语言翻译、CompileBench 迭代编译与 QuixBugs 程序修复)上的泛化评测表明,SETA 带来的终端能力直接赋能代码系统调试:
| 模型 | 参数量 | CRUST-Bench (pass@4) | CompileBench (pass@4) | QuixBugs (pass@4) |
|---|---|---|---|---|
| Qwen3-8B (base) | 8B | \(15\%\) | \(6.7\%\) | \(7.5\%\) |
| Qwen3-30B-A3B (base) | 30B | \(28\%\) | \(13.3\%\) | \(13.8\%\) |
| SETA (RL, 本文) | 8B | \(24\%\) | \(40\%\) | \(15.0\%\) |
消融实验¶
针对 SETA-Evol 演化算子有效性与奖励函数有效性的验证:
| 配置 / 演化维度 | 样本数 \(n\) | 核心指标变化 (Qwen3-8B pass rate) | 预期方向迁移一致率 |
|---|---|---|---|
SETA-Evol 难度下调 (slight_decrease) |
505 | 中位数通过率 \(6\% \to 38\%\) | \(77\%\) 对齐预期目标 |
SETA-Evol 难度上调 (increase_difficulty) |
143 | 中位数通过率 \(83\% \to 69\%\) | \(60\%\) 对齐预期目标 |
| 奖励机制:稀疏二进制 vs 部分进展奖励 | 4,567 | 有效学习方差任务占比:\(49\% \to 86\%\) | 显著缓解 RL 梯度耗尽 |
| 轨迹审计法官 (Trajectory Judge) | 审计集 | 识别并剔除 94 项系统设计缺陷任务 (~2%) | 消除隐藏硬编码假定 |
关键发现¶
- 8B 尺度下的强劲突破:仅使用 560 个环境进行 RL 训练,Qwen3-8B 在 Terminal-Bench 2.0 上的表现就从 3.1% 暴增 3.3 倍至 10.7%(最优运行达到 12%),超越所有同尺度 RL 智能体模型,逼近依托 254k 教师轨迹微调的 Nemotron-Terminal-8B 和 120B 大参数模型。
- 跨骨干模型迁移:在百亿/千亿级参数 MoE 混合专家模型 DeepSeek-V4-Flash 上,SETA 同样使 pass@1 从 40% 提升至 43%,pass@5 从 54% 提升至 58%,证明环境质量与奖励信号具备跨模型架构通用性。
- 诱导扎实思考而非冗余刷 Token:案例研究显示,未调优的思维链模型(Basethink)虽然输出了 11 倍于普通基线的推理 token,但面对 Docker 缺少 sudo 或 systemd 的实际报错依然死循环;而 SETA-RL 智能体学会了依据终端错误输出进行因果归因与自我纠错。
亮点与洞察¶
- 事后轨迹法官击破自验证盲区:大模型生成单元测试时普遍存在“出题人和参考答案作者暗合隐式假定”的问题。SETA 引入独立法官 Agent 依据外部真实多轮失败轨迹进行根因归偏,构思极其严密且极具工程实操价值。
- 环境演化契合 RL 收益有效区间:不是一味追求超高难度,而是依照模型实际通过率进行双向难度伸缩与横向技术栈旋转,让数据始终处于最优组内方差带。
- 终端交互泛化反哺编译与修复:终端能力实质上是底层操作系统状态感知与工具协同能力的综合体,在 CompileBench 上将编译成功率直接从 6.7% 提升至 40%,体现出显著的泛化外溢价值。
局限与展望¶
- 算力与环境采样瓶颈:受限于多容器并行并发训练开销,本文主实验仅在均匀抽样的 560 个环境下训练了 Qwen3-8B,全量 4,567 个环境的潜力尚未完全释放。
- 交互边界局限于终端文本流:目前环境尚未涵盖带有浏览器(Web)或 GUI 视窗操作的多模态交互场景,未来的演化可扩展至混合模态接口。
相关工作与启发¶
- vs SWE-Gym / SWE-bench: SWE 依赖 GitHub 真实仓库的 PR/Issue,缺乏对通用终端运维与数据处理任务的泛化能力;SETA 填补了通用终端环境缺少真实可执行监督的空白。
- vs TermiGen / Endless Terminals: 竞品多偏向合成指令或 SFT 轨迹采集,缺少根据模型实际通过率闭环自适应调整环境难度的动态机制。
评分¶
- 新颖性: ⭐⭐⭐⭐⭐ [自适应难度演化与事后轨迹审计法官设计新颖实用]
- 实验充分度: ⭐⭐⭐⭐⭐ [覆盖双基准、跨模型家族及外部编译修复泛化任务]
- 写作质量: ⭐⭐⭐⭐⭐ [问题提炼精准,系统设计完备,案例分析透彻]
- 价值: ⭐⭐⭐⭐⭐ [开源 4,500+ 高质量可执行环境与训练工具链,极大推动智能体强化学习研究]