用AgentENV训练Terminal-Bench-2:搭建Agent强化学习的沙箱后端

发布时间:2026/9/27 6:56:01
用AgentENV训练Terminal-Bench-2:搭建Agent强化学习的沙箱后端 用AgentENV训练Terminal-Bench-2搭建Agent强化学习的沙箱后端【免费下载链接】AgentENVAgentENV (AENV) is a distributed platform for running agent environments at scale.项目地址: https://gitcode.com/gh_mirrors/age/AgentENVAgentENVAENV是一个用于大规模运行 Agent 环境的分布式沙箱平台也是 Kimi K3 的 agentic RL 训练所依赖的后端。本文带你用 4 个步骤把 AgentENV 搭建成 Terminal-Bench-2 训练的沙箱后端部署平台、对接 E2B 兼容 API、接入训练框架 Miles最终让每个训练 episode 都运行在独立的 Firecracker microVM 里。为什么用 AgentENV 做强化学习的沙箱后端Terminal-Bench-2 不同于只给提示词的评测数据集——每个任务都包含一个环境、一段指令和一套判定测试Agent 必须在真实终端里完成文件操作、命令执行等软件任务。这意味着训练框架需要一个能成百上千个并发拉起、隔离又快速的沙箱环境。AgentENV 恰好为此设计详见 README.md能力对 RL 训练的意义大规模 Firecracker microVM 隔离每个 episode 一个独立 VM互不污染快照启动/恢复 50ms、暂停 100ms空闲沙箱可快速释放资源成本可控增量快照 分叉fork同一环境可并行复制到多条 rolloutoverlaybd 按需加载 OCI 镜像镜像总量可远超本地磁盘集群冷启动依然快E2B 兼容 API无需改代码即可接入 Miles / OpenEnv 等框架它的架构是API 层接收请求 → src/orchestrator/ 中的编排器管理沙箱生命周期 → 每个沙箱是一个带独立内核与网络栈的 Firecracker VMsrc/sandbox/firecracker/sandbox.rs块设备层由 overlaybd ublk 提供高性能 I/Ostorage/ublk/。先搞懂三个核心概念模板、沙箱、快照在动手前用 30 秒理解 AgentENV 的三个术语完整说明见 docs/src/concepts/overview.md模板Template从 OCI 镜像或 Dockerfile 构建的可复用起点一条命令aenv pull ubuntu:22.04 --name ubuntu即可把 Docker Hub 镜像变成模板沙箱Sandbox由模板启动的运行中的隔离 Linux 环境Agent 在里面执行命令、修改文件快照Snapshot对沙箱的持久化检查点可反复启动新沙箱也是环境分叉的基础。日常操作都通过aenvCLI 完成aenv start / exec / pause / resume / delete命令参考 docs/src/getting-started/aenv-cli/sandboxes.md。第一步一键安装 AgentENV 服务器前置要求只有一个Linux 内核 6.8 且支持 KVM/dev/kvm。curl -fsSL https://raw.githubusercontent.com/kvcache-ai/AgentENV/main/scripts/install.sh | sudo bash sudo systemctl start aenv安装脚本scripts/install.sh会自动完成/dev/kvm权限配置、加载 ublk 内核模块并下载 Firecracker、内核等运行资产。服务器默认监听http://127.0.0.1:8000可用curl http://127.0.0.1:8000/health验证健康状态。 更喜欢容器化也可以docker pull ghcr.io/kvcache-ai/aenv-server:latest后直接运行镜像单节点 Docker / 多节点部署方式见 docs/src/deployment/ 中的部署章节与 deploy/docker-compose.yml。验证成功后拉一个模板试跑沙箱aenv auth # 粘贴 /var/lib/aenv/secrets/api-key 中的密钥 aenv pull ubuntu:22.04 --name ubuntu aenv start ubuntu # 启动沙箱并进入交互式 shell第二步暴露代理端口让沙箱可被外部访问训练框架需要把沙箱当作带 URL 的远程环境来使用。用 Docker 启动时请同时发布 8000 和 80 端口并把AENV_SANDBOX_PROXY_DOMAINS指向该主机 IP 对应的 sslip.io 域名IP 中每个.换成-docker run -d --name aenv --privileged -v /dev:/dev \ -p 8000:8000 -p 80:8000 \ -e AENV_SANDBOX_PROXY_DOMAINSip-with-dashes.sslip.io \ ghcr.io/kvcache-ai/aenv-server:latest所有服务级配置项都记录在 docs/src/configuration/env-vars.md。第三步把 Miles OpenEnv 指向 AgentENVMiles 是大规模模型后训练的 RL 框架OpenEnv 提供任务交互与评测接口而 AgentENV 负责跑每个 episode 的隔离沙箱。关键在E2B 兼容层只需设置几个环境变量官方 E2B SDK 就能直接对接 AgentENV原理见 docs/src/integration/e2b.mdpip install e2b export E2B_API_URLhttp://server:8000 export E2B_SANDBOX_URLhttp://server:8000 export E2B_API_KEYyour-api-key # 即 aenv auth 用的密钥 export OPENENV_E2B_URL_SCHEMEhttp # 本部署走纯 HTTP⚠️ 提示API key 只负责认证、不加密流量请把这套纯 HTTP 部署放在可信内网或在反向代理上终结 HTTPS。然后准备数据按 Miles 官方的 OpenEnv 配方克隆 Miles、OpenEnv 与 Terminal-Bench-2 仓库可在可信网络中从源码镜像获取安装tbench2_env环境包并用make_tbench2_data.py把任务目录转换成本地 JSONL 训练集。加--n 8可先跑一个 8 条任务的小规模冒烟子集。第四步启动 Terminal-Bench-2 的 GRPO 训练一切就绪一条命令开始训练export OPENENV_TB2_TASKS_DIR$(realpath ./terminal-bench-2) OPENENV_SANDBOX_BACKENDe2b \ python ./miles/examples/experimental/openenv/run-openenv-tbench2.py启动器会为每个 episode 创建一个 AgentENV microVMOpenEnv 在沙箱内执行任务交互任务自带的测试套件跑出标准结果该结果直接作为 GRPO 的奖励信号返回训练框架。整个闭环里AgentENV 就是那个随开随用、用完即走的终端执行环境。完整训练配置与运维注意事项参见仓库内的官方用例文档 docs/src/use-cases/miles.md。常见问题速查Q为什么不用普通 Docker 容器当沙箱Docker 共享宿主内核隔离性弱RL 训练中一个失控的 Agent 进程可能影响同机的其他 episode。AgentENV 的 Firecracker microVM 为每个沙箱提供独立内核与网络栈隔离强度接近云主机。Q单机能同时开多少沙箱取决于 CPU/内存与磁盘。AgentENV 通过共享宿主页缓存、ublk 高性能 I/O 与内存气球ballooning回收闲置内存生产环境曾实现 9.6 倍的内存超分比密度远高于每沙箱独立镜像的传统做法。Q多节点集群怎么扩官方提供 Docker Compose 多节点模拟、静态多节点与 Kubernetes 三种部署路径deploy/k8s/ 内含完整清单调度器与网关会自动把沙箱请求分发到有资源可用的节点。Q快照数据会不会丢快照可持久化到 S3 兼容对象存储或共享分布式文件系统节点重启不丢数据相关实现见 src/snapshot/ 与 docs/src/troubleshooting/common-issues.md。写在最后回到开头的问题如何为 Agent 强化学习搭建一个既能横向扩展、又足够隔离的沙箱后端答案就是 AgentENV E2B 兼容 API 的组合一行脚本部署 AgentENV 服务器README.md Quick Start暴露代理端口让沙箱 URL 对外可达用 4 个环境变量把 Miles/OpenEnv 指向它跑run-openenv-tbench2.py让每个 episode 都在独立 microVM 中接受 Terminal-Bench-2 的考验。从此你的 Agent 训练循环不再被环境启动速度和隔离安全拖慢——沙箱即资源随开随用。【免费下载链接】AgentENVAgentENV (AENV) is a distributed platform for running agent environments at scale.项目地址: https://gitcode.com/gh_mirrors/age/AgentENV创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考