rivet-dev/agentos

Tiny, fast, Linux-compatible sandboxes. Powered by WebAssembly.

agentOS – 为AI代理提供小巧、快速的Linux兼容沙箱

它是什么 – agentOS 是一个JavaScript/TypeScript库(以及托管服务),允许您在单个进程内运行隔离的、轻量级的类Linux环境。每个代理拥有自己的文件系统、进程、shell、网络,并且可以执行JavaScript、TypeScript、Python和编译的WebAssembly工具。隔离由V8隔离和WebAssembly提供,而非完整的虚拟机,从而实现极快的冷启动和极小的内存占用。


关键点

特性 为何重要
WebAssembly + V8隔离 在共享同一运行时的沙箱中运行客户代码(shell、coreutils、Python等),避免重量级微虚拟机。
库模式 从npm安装@rivet-dev/agentos-core,并在您自己的后端进程中启动虚拟机。
托管模式 使用Rivet Cloud(或自托管)运行可通过HTTP寻址的持久虚拟机,并可选择预览URL来暴露服务。
冷启动速度 约5毫秒(p50)对比典型容器沙箱的约440毫秒 – 快92倍。
内存效率 每个虚拟机约22 MiB对比完整Linux容器的超过1 GiB – 少47倍。
细粒度权限 网络、文件系统和资源限制是声明式的;秘密永远不会离开主机。
持久化存储 挂载SQLite、主机目录或S3存储桶;选择内存或持久根。
丰富的API 进程、文件系统、网络、语言运行时(JS/TS、Python)、cron、软件包和交互式PTY都通过简洁的TypeScript API或普通HTTP调用暴露。

典型用例

  • AI代理后端 – 为每个LLM驱动的代理提供其自己的沙箱操作系统,以便安全地运行shell命令、获取数据或执行自定义Python/JS代码。
  • 无服务器风格的工作负载 – 按需为短任务(例如数据转换)启动虚拟机,并立即释放。
  • 测试与CI – 运行隔离的构建步骤或安全敏感脚本,而无需启动完整容器。
  • 边缘或低成本计算 – 在单个虚拟机/实例上运行多个代理,节省内存和云支出。

快速开始(库模式)

npm install @rivet-dev/agentos-core
import { AgentOs } from "@rivet-dev/agentos-core";

const vm = await AgentOs.create();
await vm.process.exec("echo hello && ls /home/agentos", {output:{capture:"all"}});
await vm.filesystem.writeFile("/home/agentos/hello.txt", "Hello, world!");
await vm.javascript.execute("console.log(1+2)");
const answer = await vm.python.evaluate<number>("21*2");
await vm.dispose();

配置(持久文件系统、挂载、环境变量、网络规则、资源限制)传递给AgentOs.create() – 完整模式请参阅README。


快速开始(托管模式)

npm install @rivet-dev/agentos
import { createAgentOsClient } from "@rivet-dev/agentos";
const client = createAgentOsClient({endpoint:"https://api.rivet.dev"});
const vm = client.agentOS.getOrCreate(["my-vm"]);
const res = await vm.v1.process.run({command:"sh", args:["-c","echo hi"] , options:{captureStdio:true}});
console.log(res.stdout);

所有操作也可通过普通HTTP(POST /gateway/{vm_id}/action/v1.<group>.<action>)使用,因此您可以从任何语言调用。


架构概览

  • Sidecar内核(Rust) – 一个单独的进程,拥有虚拟内核、文件系统、进程表、套接字和权限系统。
  • 客户代码 – 在V8隔离(JS/TS)中运行,或作为WebAssembly模块(shell、coreutils、Python)运行。
  • 库 – @rivet-dev/agentos-core包启动sidecar,通过stdio/Unix套接字与其通信,并提供TypeScript API。
  • 托管服务 – Rivet Cloud运行相同的sidecar并暴露REST/JSON API;您也可以自托管sidecar。
  • 隔离模型 – 来自客户代码的每个系统调用都是沙箱化的系统调用;主机资源只能通过显式挂载、主机函数或网络允许列表访问。

许可证

该项目根据仓库LICENSE文件中的许可证发布(README指向该文件)。


了解更多 – 文档、基准测试和详细的API参考位于https://rivet.dev/agentos和仓库的`docs/`文件夹中。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目