正在打开仓库文档
正在打开仓库文档
它尝试以库的方式提供 Agent 所需的运行环境,让执行隔离可以进入已有后端。
中文阅读版只翻译说明性文字;术语、代码、命令、链接与原有 Markdown 结构保持不变。
npx rivetkit dev 本地运行,然后部署到 Rivet Cloud 获得托管基础设施,或自行托管。agentOS 是一个在你的进程中运行的轻量级 VM。Sandboxes 是完整的 Linux 环境。agentOS 通过 bindings 和细粒度 permissions 将 agents 集成到你的后端。Sandboxes 为你提供完整的 OS,用于浏览器、原生二进制文件和开发服务器。
你无需二选一:agentOS 通过 sandbox mounting 与 sandboxes 协同工作,在 workload 需要时按需启动完整 sandbox 并挂载其文件系统。
查看 agentOS vs Sandbox 获取完整对比。
npm install @rivet-dev/agentos @agentos-software/pi
常见的 POSIX 工具(coreutils、sed、grep、gawk、findutils、diffutils、tar、gzip)开箱即用。Claude Code、Codex 和 OpenCode 的安装方式与 Pi 相同。
创建 server:
// server.ts
import { agentOS, setup } from "@rivet-dev/agentos";
import pi from "@agentos-software/pi";
const vm = agentOS({
software: [pi],
});
export const registry = setup({ use: { vm } });
registry.start();
创建 client——任何公开前端或另一个后端:
// client.ts
import { createClient } from "@rivet-dev/agentos/client";
import type { registry } from "./server";
const client = createClient<typeof registry>({
endpoint: "http://localhost:6420",
});
const handle = client.vm.getOrCreate("my-agent");
// Subscribe to streaming events. The payload is inferred from the event schema.
const conn = handle.connect();
conn.on("sessionEvent", (event) => {
console.log(event);
});
// Open a durable session and send a prompt.
await handle.openSession({
agent: "pi",
env: { ANTHROPIC_API_KEY: process.env.ANTHROPIC_API_KEY! },
});
await handle.prompt({
content: [
{ type: "text", text: "Write a hello world script to /workspace/hello.js" },
],
});
// Read the file the agent created
const content = await handle.readFile("/workspace/hello.js");
console.log(new TextDecoder().decode(content));
同时运行两者:
# Terminal 1: start the server
npx tsx server.ts
# Terminal 2: run the client
npx tsx client.ts
agentOS 可以在 VM 内运行 Node.js 和 shell 脚本:
// Node.js
await handle.writeFile("/hello.mjs", 'import fs from "fs"; fs.writeFileSync("/out.txt", "hi")');
await handle.exec("node /hello.mjs");
// Bash
const result = await handle.exec("cat /out.txt");
console.log(result.stdout); // "hi"
@rivet-dev/agentos 将每个 VM 作为 Rivet Actor 运行,内置持久化、睡眠/唤醒、multiplayer、preview URLs 和编排功能。如需直接控制进程内 VM 而不使用 actor runtime,可单独使用 @rivet-dev/agentos-core:AgentOs.create() 启动 VM 并返回一个可直接调用的 handle。
查看 Quickstart guide 获取完整教程。agentOS 处于预览阶段,API 可能会发生变化——欢迎在 Discord 上提问和反馈问题。
所有基准测试将 agentOS 与截至 2026 年 3 月 30 日最快/最便宜的主流 sandbox 提供商进行对比。方法和复现步骤:Benchmarks。
| Percentile | agentOS | Fastest Sandbox (E2B) | Speedup |
|---|---|---|---|
| p50 | 4.8 ms | 440 ms | 92x faster |
| p95 | 5.6 ms | 950 ms | 170x faster |
| p99 | 6.1 ms | 3,150 ms | 516x faster |
agentOS:在 Intel i7-12700KF 上测量。Sandbox 基准:E2B,截至 2026 年 3 月 30 日最快的主流 sandbox 提供商。
| Workload | agentOS | Cheapest Sandbox (Daytona) | Reduction |
|---|---|---|---|
| Full coding agent (Pi + MCP + filesystem) | ~131 MB | ~1,024 MB | 8x smaller |
| Simple shell command | ~22 MB | ~1,024 MB | 47x smaller |
Sandbox 基准:Daytona 最小实例(1 vCPU + 1 GiB RAM),截至 2026 年 3 月 30 日最便宜的主流 sandbox 提供商。
Full coding agent:
| Host tier | agentOS | Cheapest Sandbox (Daytona) | Difference |
|---|---|---|---|
| AWS ARM | $0.00000058/s | $0.000018/s | 32x cheaper |
| AWS x86 | $0.00000072/s | $0.000018/s | 26x cheaper |
| Hetzner ARM | $0.000000066/s | $0.000018/s | 281x cheaper |
| Hetzner x86 | $0.00000011/s | $0.000018/s | 171x cheaper |
Simple shell command:
| Host tier | agentOS | Cheapest Sandbox (Daytona) | Difference |
|---|---|---|---|
| AWS ARM | $0.000000073/s | $0.000018/s | 254x cheaper |
| AWS x86 | $0.000000090/s | $0.000018/s | 205x cheaper |
| Hetzner ARM | $0.000000011/s | $0.000018/s | 1738x cheaper |
| Hetzner x86 | $0.000000017/s | $0.000018/s | 1061x cheaper |
Sandbox 基准:Daytona 定价 $0.0504/vCPU-h + $0.0162/GiB-h(最低 1 vCPU + 1 GiB)。假设每个 sandbox 运行一个 agent,主机利用率为 70%。
agentOS 在每个完全虚拟化的 VM 中运行每个 agent。一个受信任的 sidecar 进程拥有每个 VM 的 kernel——虚拟文件系统、进程表、管道、PTYs 和虚拟网络栈——并代理每个 guest syscall;guest 所做的任何事情都不会直接接触主机:没有真实的主机文件系统、没有真实的主机 sockets、没有真实的主机进程。Guest JavaScript 在原生 V8 上运行,具有完整的 JIT(JavaScript runtime),编译后的工具作为 WebAssembly 运行。多个 VM 共享一个 sidecar 进程,因此每个额外的 VM 仅消耗一个 V8 isolate 加 kernel 状态,而非一个 OS 进程。使用 @rivet-dev/agentos 时,每个 VM 都是一个具有 durable state 的 Rivet Actor。
查看 Architecture docs 了解详情。
通过一个 registry 扩展 agentOS,获取 agents、文件系统、浏览器和 software。在 agentOS Registry 浏览完整目录。
常见的 POSIX 工具开箱即用。Registry 添加了 agents(@agentos-software/pi、@agentos-software/claude-code、@agentos-software/codex、@agentos-software/opencode)、命令包(git、ripgrep、jq、sqlite3、duckdb、curl、vim 等)、元包(common、build-essential、everything)以及 Browserbase 云浏览器等集成。从 npm 安装任意包并通过 software: [...] 传入。
Apache-2.0