模型 / 数据集
rivet-dev/agentos avatar
rivet-dev/agentos

agentOS:把代理运行时塞进现有后端进程的 Rust 库

Give agents an operating system as a library. Runs in your existing backend – no sandboxes, VMs, or SaaS. Powered by WebAssembly & V8 isolates.

4,631 个 Star252 个 ForkRustApache-2.0

秒懂

它是什么?
agentOS 用 V8 isolate 和 WebAssembly 在进程内跑 AI 代理,宣称冷启动只需几毫秒。本文基于仓库文档与基准数据,拆解它的实现思路、接入方式,以及它和传统沙箱的真正差异。
适合谁用?
适合那些已经用 Node.js 或 TypeScript 写后端、希望让代理直接调用内部函数、又不想为每个会话启动完整 Linux 沙箱的团队。不适合需要运行浏览器、原生二进制或完整开发服务器的场景,这类负载仍应交给传统沙箱。
能商用吗?
可以。Apache-2.0 是宽松许可证:你可以使用、修改并销售基于它的软件,只需保留版权和许可证声明。
还在维护吗?
在维护。仓库最近一次提交在 1 天前。
用什么语言写的?
主要是 Rust(依据 GitHub 的语言统计)。

以上回答依据项目的 GitHub 数据(最近同步于 2026年9月15日)和我们的分析,不构成法律意见。

开源项目深度解析

它解决的问题:代理执行环境的高开销

跑一个 AI 代理,传统做法是给它一个完整 Linux 沙箱。每个会话都要启动微虚拟机或容器,冷启动几百毫秒起步,内存占用按 GiB 计。agentOS 换了一条路:把代理运行时作为库嵌入你的后端进程,用 V8 isolate 跑 JavaScript,用 WebAssembly 跑编译后的工具。文档宣称这样能把冷启动压到个位数毫秒,内存降到几十 MB。它面向的是已经拥有后端服务、想让代理直接调用内部函数的开发团队,而不是需要隔离完整操作系统的场景。

进程内运行与绑定调用的架构选择

agentOS 的核心设计是每个 VM 都是一个轻量运行时,运行在你的进程地址空间里。代理不通过另一个网络服务访问你的函数,而是通过 bindings 直接调用,文档称这是普通的 JavaScript 调用。凭据留在宿主机,代理只看到输入和输出。这种模型消除了网络跳转,也减少了攻击面,因为代理无法直接接触宿主机的环境变量或文件系统,除非权限配置允许。代价是隔离强度低于真正的虚拟机,同一个进程内的崩溃或资源耗尽可能影响宿主。文档没有回避这一点,它明确说 agentOS 是轻量 VM,不是完整 Linux 环境。

权限模型与默认拒绝的网络访问

agentOS 的权限系统控制文件系统、网络、进程和环境变量的访问。文档强调网络出口默认拒绝,这是与典型沙箱的一个重要区别。沙箱通常模拟完整网络栈,而 agentOS 默认不给代理任何出网能力,需要显式开启。这种默认安全策略适合处理敏感数据的内部工具,但也意味着如果你的代理需要调用外部 API,你必须配置额外的权限。文档没有给出具体的权限配置语法,只提到有专门的文档页面,所以实际配置复杂度需要去官方文档确认。粒度控制是它的卖点,但也是学习成本所在。

快速开始:从 npm 包到运行代理

接入方式很简单。先安装两个包:`npm install @rivet-dev/agentos @agentos-software/pi`。然后在服务端创建一个 VM 实例,注册 Pi 代理,启动 registry。客户端通过 HTTP 端点连接,用 `getOrCreate` 获取或创建会话句柄,然后可以 `openSession`、`prompt`、`readFile`。整个流程在 README 里有完整示例,服务端和客户端各一个文件。它还支持在 VM 里直接运行 Node.js 脚本和 shell 命令,例如 `handle.exec("node /hello.mjs")`。预置的 POSIX 工具包括 coreutils、sed、grep、gawk 等,意味着很多常见文件操作不需要额外安装。

与沙箱的对比:不是替代品,而是补充

agentOS 文档自己承认沙箱有存在价值。沙箱提供完整 Linux 环境,适合跑浏览器、原生二进制和开发服务器。agentOS 的优势在轻量集成,但如果你需要完整的系统调用兼容性,它就不合适。文档提出了一个混合方案:sandbox mounting。当工作负载确实需要完整沙箱时,可以按需启动一个,并把沙箱的文件系统挂载到 agentOS VM 上。这承认了单一运行时无法覆盖所有场景。所以它不是沙箱的终结者,而是沙箱前面的一个快速路径。选择时要想清楚你的代理是否真的需要完整操作系统,还是只需要一个受限的文件执行环境。

基准数据:冷启动与成本的真实含义

README 给出了对比数据,基准日期是 2026 年 3 月 30 日。冷启动 p50 为 4.8 毫秒,对比最快的沙箱提供商 E2B 的 440 毫秒。内存方面,完整编码代理约 131 MB,对比 Daytona 的 1 GiB。成本按自托管计算,假设每沙箱一个代理和 70% 主机利用率,agentOS 在某些配置下宣称便宜数百倍。这些数字看起来很漂亮,但有几个前提:测量硬件是 Intel i7-12700KF,成本模型依赖你的主机利用率和云厂商定价。文档提供了复现步骤的链接,任何严肃评估都应该先跑一遍自己的基准,而不是直接采信宣传数字。

维护成本与许可:Apache-2.0 下的预览期风险

agentOS 采用 Apache-2.0 许可,这对商业使用友好,没有 copyleft 义务。但项目明确标注处于 preview 阶段,API 可能变化。这意味着升级到新版本可能需要修改代码。发布节奏看起来频繁,最近一次 push 是 2026 年 9 月 9 日,有 rc 版本在活跃迭代。维护成本包括跟踪 API 变动、重新验证权限配置,以及更新 agent 版本。由于它嵌入你的进程,每次升级都可能影响宿主稳定性。没有看到长期支持承诺,所以生产使用前要准备应对 breaking change 的策略。

编辑结论

适合那些已经用 Node.js 或 TypeScript 写后端、希望让代理直接调用内部函数、又不想为每个会话启动完整 Linux 沙箱的团队。不适合需要运行浏览器、原生二进制或完整开发服务器的场景,这类负载仍应交给传统沙箱。采用前先验证三件事:确认你的代理依赖的 POSIX 工具是否在预置列表内,检查权限模型能否覆盖你的网络与文件系统访问需求,以及跑一遍官方基准复现步骤,确认自托管成本模型在你的主机利用率下成立。agentOS 的预览期 API 可能变化,锁版本并跟踪 release note 是必要的。

官方来源

  1. License: Apache-2.0
  2. Project website
  3. README
  4. Releases
  5. rivet-dev/agentos on GitHub
社区笔记

社区笔记