告别Docker:北大开源「迷你沙盒」,无容器也能训练SWE Agent

AITNT-国内领先的一站式人工智能新闻资讯网站
# 热门搜索 #
告别Docker:北大开源「迷你沙盒」,无容器也能训练SWE Agent
6919点击    2026-03-23 13:44

AI 编程这么火,想训练个 SWE Agent 却没有资源怎么办?


最近,软件工程智能体(后统称 SWE Agent)由于其清晰的落地场景和巨大的应用价值受到了学术界和工业界的广泛关注。


然而,当上手训练 SWE Agent 时,却发现事情并不简单。当前 SWE Agent 的训练都是通过容器(Docker 或 Podman)来实现运行环境的隔离和复现。但是,容器的高昂开销却把很多从业者拒之门外。


那么能不能做一个不依赖容器的低成本框架,让资源不多的从业者也能训练自己的 SWE Agent 呢?SWE-MiniSandbox 正是在这样的初衷下开源了~


告别Docker:北大开源「迷你沙盒」,无容器也能训练SWE Agent


  • 论文标题:SWE-MiniSandbox: Container-Free Reinforcement Learning for Building Software Engineering Agents
  • 论文链接:https://arxiv.org/abs/2602.11210
  • 代码链接:https://github.com/lblankl/SWE-MiniSandbox
  • 文档链接:https://lblankl.github.io/SWE-MiniSandbox/
  • 镜像链接:https://hub.docker.com/repository/docker/lblankl/swe-minisandbox/general
  • 训练曲线 Demo 链接:https://wandb.ai/open_source_blank/SWE-MiniSandbox


SWE-MiniSandbox 是一个无需容器(Container-Free)的软件工程沙盒环境。其目标是解决当前 SWE Agent 训练中依赖容器的痛点:需要构建和维护大量的容器镜像,并运行高性能的容器服务器集群,导致了高昂基础设施和运维成本。因此,当扩展批量规模或提高 rollout 数量时,容器服务器承载量成为主要性能瓶颈,造成计算资源受限情况下训练无法扩展,而缺乏容器管理权限或没有专用编排基础设施的从业人员则无法训练自己的 Agent。


与容器环境相对,SWE-MiniSandbox 在实现进程和文件系统隔离的过程中绕过了对容器或重型镜像的依赖,通过按实例划分的挂载命名空间(mount namespaces)和基于 chroot 的文件系统隔离机制,为每个实例创建隔离的终端会话和私有目录。


在此基础上,SWE-MiniSandbox 实现了一套环境预缓存流水线:构建基于轻量级 Python conda+venv 的混合环境,安装特定任务的依赖项,并在不同运行间复用压缩的缓存产物。通过将环境和代码仓库打包成缓存,利用基于 Ray 的资源控制和信号量来限制并发解压,从而实现 I/O 的精细管理。


通过直接与现有核心 SWE 工具集成 ——SWE-Rex(终端管理)、SWE-agent(任务求解)和 SkyRL(可扩展的多节点 RL),SWE-MiniSandbox 成为了 SWE Agent 任务中容器后端的一个无缝、即插即用的替代品。


在实际效果上,SWE-MiniSandbox 使环境缓存大小降低至同类基于容器方法的 5% 左右,将环境准备时间缩短至容器基线的 25%,并且消除了对额外容器服务器的需求。


而在这样低资源依赖下,该环境在同等数据和参数设置下训练出的 SWE Agent 和容器环境下训练出的 Agent 在 SWE-bench Verified 上评测效果相当,可以说,大幅降低了 SWE Agent 的入门门槛。


具体方法


告别Docker:北大开源「迷你沙盒」,无容器也能训练SWE Agent


I. 无容器隔离机制(Container-Free Isolation)


📌 核心优化:Chroot + Mount Namespaces + Terminal Isolation


Chroot


  • 将每个任务的根目录(/)重定向到一个独立的、预先配置好的目录。
  • 任务进程只能访问该目录下的文件,形成「虚拟根文件系统」,实现文件系统隔离。例如:任务 A 的根目录是 /sandbox/A,任务 B 是 /sandbox/B,彼此隔离。


Mount Namespaces(挂载命名空间)


  • 每个任务拥有独立的挂载视图。可以在不干扰宿主机的情况下,挂载宿主文件系统(如 tmpfs、dev、mnt 等)。
  • 混合只读,可写挂载模式保证任务间不冲突。


Terminal Isolation(终端隔离)


  • 每个任务分配一个独立的伪终端,通过 SWE-Rex 进行终端会话管理。
  • 支持标准输入 / 输出、信号传递(如 Ctrl+C 中断),确保交互式执行的完整性。


✅ 优势:


  • 内核开销比容器小,速度更快


II. 环境预缓存流水线(Pre-Caching Pipeline)


告别Docker:北大开源「迷你沙盒」,无容器也能训练SWE Agent


传统解决方案


每个任务都需要建立独立镜像,并基于 conda 安装独立 python 环境


SWE-MiniSandbox 解决方案


1. 构建轻量级 Python 环境(conda+venv)


  • 预制不同 python 版本的 conda 环境,每个任务根据需求选择对应的 conda 版本创建 venv 虚拟环境。
  • 仅包含任务所需依赖(如 numpy, requests, pytest 等),体积平均不到 100MB。
  • 摒弃直接用 conda(太重,通常 >500MB)。
  • 将创建出的 venv 打包成 tar 文件,再次启动环境时直接解压加速启动。


2.I/O 瓶颈管理与并发控制


为解决任务高并发下磁盘队列拥堵问题,为并发任务总吞吐量设置上界:


告别Docker:北大开源「迷你沙盒」,无容器也能训练SWE Agent


告别Docker:北大开源「迷你沙盒」,无容器也能训练SWE Agent


SWE-MiniSandbox 通过结合信号量和 ray 资源标签机制对并发数进行控制。


III. 与现有工具链的集成


告别Docker:北大开源「迷你沙盒」,无容器也能训练SWE Agent


在 RL 分布式扩展方面,该框架基于 Ray 构建,支持多节点资源分配调度,适应大规模 RL 训练需求。


实验效果


I. 更小体积


告别Docker:北大开源「迷你沙盒」,无容器也能训练SWE Agent


传统容器方法需要维护动辄 GB 级的容器镜像,而 SWE-MiniSandbox 单环境仅需维护 100MB 左右轻量化 venv 缓存。例如在 SWE-smith 数据集上,SWE-MiniSandbox 环境缓存大小仅为传统容器镜像的 5%。


II. 相同训练效果,更快的环境启动时间


告别Docker:北大开源「迷你沙盒」,无容器也能训练SWE Agent


实验结果显示 SWE-MiniSandbox 框架的训练质量(SWE-bench Verified)和传统 Docker 框架几乎一致,同时在环境准备时间上仅仅是 Docker 的 25% ,显著减少了 rollout 的平均时间开销。


III. 优秀的多节点可扩展性


告别Docker:北大开源「迷你沙盒」,无容器也能训练SWE Agent


在多节点训练中 SWE-MiniSandbox 会被平均分配到各个节点上,因此在负载合理的情况下多节点的平均环境启动速度和单节点几乎一致。


IV. 可视化


告别Docker:北大开源「迷你沙盒」,无容器也能训练SWE Agent


通过拆解强化学习 rollout 的时间代价并对各部分进行可视化分析,发现 SWE-MiniSandbox 在环境准备时间(蓝色)上明显短于 Docker 环境。


除此之外,使用 1600 条数据在 SWE-Agent-LM-7B 上训练 200 步后对比 SWE-MiniSandbox 和 Docker 环境的 Reward 曲线,发现二者走势基本一致,从而进一步验证了 SWE-MiniSandbox 提供的无容器环境能够实现和传统 Docker 环境一致的训练效果。


告别Docker:北大开源「迷你沙盒」,无容器也能训练SWE Agent


未来展望


在 SWE-MiniSandbox 开源基础上,团队认为未来有几个方向可以考虑:


  • 在现有自动构建环境基础上,引入 Agent 工作流,打造适配 SWE-MiniSandbox 框架的环境自动化构建流程,并扩展对更多开源 SWE 数据集的支持。
  • 将 SWE-MiniSandbox 的应用生态拓展至更广泛的任务场景,如 Terminal Bench、Skill Bench 等。
  • 优化环境启动机制,例如基于 BranchFS 实现分支隔离从而避免缓存的解压拷贝开销。优化强化学习的训练机制,通过实现环境启动与梯度反向传播的异步重叠等方式,提升训练效率。


文章来自于“机器之心”,作者 “袁旦龙”。

AITNT-国内领先的一站式人工智能新闻资讯网站
AITNT资源拓展
根据文章内容,系统为您匹配了更有价值的资源信息。内容由AI生成,仅供参考
1
AI代理

【开源免费】Browser-use 是一个用户AI代理直接可以控制浏览器的工具。它能够让AI 自动执行浏览器中的各种任务,如比较价格、添加购物车、回复各种社交媒体等。

项目地址:https://github.com/browser-use/browser-use


2
AI工作流

【开源免费】字节工作流产品扣子两大核心业务:Coze Studio(扣子开发平台)和 Coze Loop(扣子罗盘)全面开源,而且采用的是 Apache 2.0 许可证,支持商用!

项目地址:https://github.com/coze-dev/coze-studio


【开源免费】n8n是一个可以自定义工作流的AI项目,它提供了200个工作节点来帮助用户实现工作流的编排。

项目地址:https://github.com/n8n-io/n8n

在线使用:https://n8n.io/(付费


【开源免费】DB-GPT是一个AI原生数据应用开发框架,它提供开发多模型管理(SMMF)、Text2SQL效果优化、RAG框架以及优化、Multi-Agents框架协作、AWEL(智能体工作流编排)等多种技术能力,让围绕数据库构建大模型应用更简单、更方便。

项目地址:https://github.com/eosphoros-ai/DB-GPT?tab=readme-ov-file



【开源免费】VectorVein是一个不需要任何编程基础,任何人都能用的AI工作流编辑工具。你可以将复杂的工作分解成多个步骤,并通过VectorVein固定并让AI依次完成。VectorVein是字节coze的平替产品。

项目地址:https://github.com/AndersonBY/vector-vein?tab=readme-ov-file

在线使用:https://vectorvein.ai/付费

3
智能体

【开源免费】AutoGPT是一个允许用户创建和运行智能体的(AI Agents)项目。用户创建的智能体能够自动执行各种任务,从而让AI有步骤的去解决实际问题。

项目地址:https://github.com/Significant-Gravitas/AutoGPT


【开源免费】MetaGPT是一个“软件开发公司”的智能体项目,只需要输入一句话的老板需求,MetaGPT即可输出用户故事 / 竞品分析 / 需求 / 数据结构 / APIs / 文件等软件开发的相关内容。MetaGPT内置了各种AI角色,包括产品经理 / 架构师 / 项目经理 / 工程师,MetaGPT提供了一个精心调配的软件公司研发全过程的SOP。

项目地址:https://github.com/geekan/MetaGPT/blob/main/docs/README_CN.md