Kimi AI与kvcache-ai开源AgentENV:为Kimi K3智能体强化学习训练提供支持的分布式系统
Moonshot AI的Kimi团队与kvcache-ai以MIT许可证开源了AgentENV(AENV),这是一个分布式平台,用于大规模运行智能体环境。AgentENV为Kimi K3(Moonshot的2.8万亿参数MoE模型)的智能体强化学习(RL)训练提供动力。它使用Firecracker微虚拟机,实现了毫秒级快照、恢复和16路分支,并兼容E2B API。
Moonshot AI的Kimi团队与kvcache-ai近日开源了AgentENV(AENV),这是一个分布式平台,旨在大规模运行智能体环境。AgentENV为Kimi K3——Moonshot推出的2.8万亿参数混合专家(MoE)模型——的智能体强化学习(RL)训练提供核心支持。该代码以MIT许可证发布。
环境基础设施为何制约智能体RL
智能体RL不仅仅是文本采样。它要求模型在实际计算机环境中执行操作。每次训练都需要一个隔离的Linux环境,包含文件系统、网络栈和实时进程。这一需求带来了严峻的权衡:容器启动快但共享宿主机内核,针对模型生成代码的隔离性较弱;完整虚拟机隔离性强但启动缓慢且闲置时占用内存。AgentENV正针对这一缺口,使用Firecracker微虚拟机,使得闲置、重启和分支操作足够廉价,从而支持训练规模扩展。
AgentENV的Firecracker架构解析
每个沙箱都是一个Firecracker微虚拟机,拥有独立的Linux内核、文件系统和网络命名空间。请求通过Axum HTTP API转发至编排器,后者管理沙箱生命周期。存储设计颇具巧思:根文件系统通过基于overlaybd分层镜像的ublk用户态块设备提供服务。只读基础层在沙箱间共享,每个沙箱写入自己的上层。每个虚拟机内运行一个名为envd的后台进程,负责命令执行、文件操作和健康报告(端口49983)。反向代理将客户端HTTP和WebSocket流量路由至虚拟机内运行的服务。项目还列出了两种密度机制:宿主机页缓存在存储和内存快照数据间共享;内存气球回收可回收的客户机内存给宿主机,随着环境差异扩大,维持超量使用。
快照、暂停、恢复、分支
这四项功能是项目的核心价值。AgentENV增量快照内存和文件系统变化,而非每次都写入完整镜像。报告数据如下:快照支持的环境启动或恢复低于50毫秒,暂停低于100毫秒。即使在高磁盘修改下,增量快照捕获也在100毫秒内完成。分支是RL最特定的功能:运行中的沙箱可在同一节点上克隆为最多16个独立子沙箱。源沙箱在捕获期间短暂暂停,然后恢复。每个子沙箱继承源沙箱的文件系统、内存和资源配置。实际效果是昂贵的初始化只需运行一次:团队可以安装依赖、克隆仓库并达到任务状态,然后该状态分支为并行rollout。快照持久化至S3兼容对象存储或共享分布式文件系统。一个值得注意的默认设置:每个沙箱带有TTL,到期触发暂停而非删除。删除需要在创建API中传递autoPause: false。
按需加载与快照仓库
镜像通过overlaybd按需加载。本地磁盘作为有界缓存,保留热数据并驱逐冷数据。这使得集群级存储成为可能:节点无需预热每个镜像或持有每个快照的完整副本。因此,可寻址镜像集可以超过本地磁盘容量,同时集群范围内启动保持快速。快照状态组织为三层:构建器暂存工作区存放构建期间的构件;已提交快照仓库是持久化的事实来源;节点本地运行时缓存存放启动时派生的配置。支持两种仓库后端:posix_fs(默认)和oss。oss路径通过共享S3兼容客户端运行,因此需要明确指定区域。一个基于iroh的可选点对点传输可向对等节点公告已提交构件,默认禁用。文档明确指出P2P不改变已提交快照模型。对于共享存储,文档要求至少1 Gbps,强烈建议10 Gbps或更高。
E2B兼容性作为采用杠杆
AgentENV暴露了兼容E2B的HTTP API。将E2B_API_URL指向你的服务器,官方E2B Python或TypeScript SDK无需修改代码即可使用。这是一个刻意的分发选择:已在E2B上运行智能体的团队可以自托管运行时,无需重写智能体代码。此外还提供了原生aenv CLI,文档建议将其用于AgentENV特定工作流。
部署路径
前提条件:Linux内核6.8+和/dev/kvm访问;安装脚本额外要求Ubuntu 24.04。aenv CLI支持Linux和macOS的x86_64和arm64架构。服务器本身仅支持Linux,因为它需要KVM。文档列出了五种路径:安装脚本将服务器作为systemd服务运行;Docker镜像发布于ghcr.io/kvcache-ai/aenv-server;Docker Compose栈模拟多节点集群;Kubernetes清单包含网关、调度器和节点DaemonSet;从源码构建使用Rust工具链。多节点部署在:8080添加网关,在:9090添加调度器。
关键要点
部署涵盖安装脚本、Docker、Docker Compose和Kubernetes;多节点控制平面文档描述为原型。AgentENV将每个智能体环境作为Firecracker微虚拟机而非容器运行,因此隔离性达到内核级别。项目报告从快照启动或恢复低于50毫秒,暂停低于100毫秒。运行中的沙箱可在同一节点上分支为最多16个独立子沙箱。HTTP API兼容E2B,因此现有E2B Python和TypeScript SDK代码无需修改即可运行。
请查看GitHub仓库和文档。本研究的所有功劳归项目研究人员所有。
本文首发于MarkTechPost。