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。