rivet-dev/agentos

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

agentOS – AI エージェントのための「オペレーティングシステム」(Node.js ライブラリ)

これは何かagentOS は、独自の Node.js プロセス内に小さく隔離された仮想マシンをスピンアップし、その中で AI エージェント(Claude-Code、Codex、Pi、OpenCode、または独自のもの)を実行できるようにする npm パッケージのランタイムです。これらの VM は、POSIX ライクな環境をエミュレートし、実際のファイルシステム、プロセス、ネットワークスタックを提供する side-car カーネル上に構築されていますが、ホスト OS には直接触れません。数ミリ秒で起動し、数十メガバイトの RAM しか使用せず、他のサーバー側コンポーネントと同様に永続化、スケジュール、またはオーケストレーションできる軽量サンドボックスと考えてください。


なぜ重要なのか

主張 README の説明
高速なコールドスタート 最速の公開サンドボックスの約 440 ms に対し、4.8 ms の中央値で起動(約 92 倍高速)。
低メモリ 同等のサンドボックスの約 1 GiB に対し、単純なシェルコマンドで 22 MB(約 47 倍小さい)。
低コストで実行 Hetzner ARM では、主流のサンドボックスと比較して実行秒あたり最大 2,800 倍安価。
プロセス内で実行 マイクロ VM、コンテナ、ネストされた仮想化は不要 – V8 isolates と WebAssembly のみ。
きめ細かいセキュリティ 権限によりファイルシステム、ネットワーク、プロセス、環境へのアクセスを制御。デフォルトで送信ネットワークは拒否されます。
どこでもデプロイ 通常の npm パッケージとして使用し、npx rivetkit dev でローカルに実行するか、Rivet Cloud または自己ホストにデプロイします。

コア概念

概念 説明
VM エージェントとインストールするソフトウェアをホストする軽量仮想マシン(V8 isolate + side-car カーネル)。
Agent Agent Client Protocol (ACP) を介して VM と通信する、LLM 駆動の「コーディング」または「アシスタント」モデル(Pi、Claude-Code、Codex、OpenCode)。
Registry VM に追加できるエージェント、POSIX ユーティリティ、ブラウザ、その他のソフトウェアの npm ベースのカタログ(@agentos-software/*)。
Bindings エージェントが独自のコードを安全に呼び出せるよう、CLI スタイルのコマンドとして VM に公開されるホスト側 JavaScript 関数。
Persistence すべての会話/セッションは自動的に保存され、後で再開するか、デバッグのために再生できます。
Orchestration マルチプレイヤー観察、エージェント間の委任、リトライ/分岐のあるワークフロー、cron ジョブ、Webhooks の組み込みサポート。

ハイライト機能

  • 組み込みエージェント – Pi、Claude-Code(beta)、Codex(beta)、OpenCode、およびカスタムエージェントを追加する簡単な方法。
  • 統一されたトランスクリプト形式 – すべてのエージェントで同じログスキーマを使用し、デバッグと監査証跡を容易にします。
  • 完全なプロセスサポート – VM 内で Bash、Node.js、Python、または登録されたバイナリを実行。exec、ファイルの読み書きなどが可能です。
  • マウント可能なストレージ – S3 互換バケット、Google Drive、ホストディレクトリ、またはメモリ内マウントを VM のファイルシステムとしてアタッチ。
  • ブラウザアクセス(beta) – クラウドベースの Browserbase インスタンスをマウントし、エージェントがヘッドレスブラウザを制御できるようにします。
  • サンドボックスマウント(beta) – ワークロードが完全な Linux サンドボックスを必要とする場合、agentOS は外部サンドボックス(E2B、Daytona など)をスピンアップし、オンデマンドでそのファイルシステムをマウントできます。
  • セキュリティ – VM ごとの権限、ネットワークエグレス制御、CPU/メモリ制限、side-car カーネルによる完全な隔離。
  • Rivet Actor 統合 – 各 VM は、組み込みの永続性、スリープ/ウェイク、プレビュー URL を備えた耐久性のあるアクターです。

典型的なユースケース

  1. AI支援のコーディングアシスタント – ファイルの読み書き、nodebash、その他のツールの実行、Web UI への結果返却が可能なコーディングエージェント(Pi、Claude-Code)をデプロイ。
  2. サーバー側のツール自動化 – 内部関数をバインディングとして公開し、LLM にそれらをオーケストレーションさせる(例:データパイプラインのステップ、管理スクリプト)。
  3. マルチユーザー共同エージェント – マルチプレイヤー機能を使用して、複数のフロントエンドが同じエージェントセッションを観察し、対話できるようにします。
  4. ワークフローオーケストレーション – リトライと分岐を持つ複数のエージェントタスクをチェーンし、ステップ間で状態を永続化します。
  5. 安全で低コストなサンドボックス – 完全なコンテナのオーバーヘッドなしに、信頼できないコード(ユーザー送信スクリプト、プラグイン)を隔離された VM 内で実行。

クイックスタート(README から)

# Install core library and a built‑in agent
npm install @rivet-dev/agentos @agentos-software/pi

サーバー(VM を定義)

// 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();

クライアント(VM と通信)

// 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");

const conn = handle.connect();
conn.on("sessionEvent", e => console.log(e));

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" }] });
const content = await handle.readFile("/workspace/hello.js");
console.log(new TextDecoder().decode(content));

tsx(または Node 互換のランナー)で 2 つのファイルを実行すると、プロセス内に存在する完全に機能する AI コーディングアシスタントが完成します。


詳細を学ぶ


ライセンス

Apache-2.0(リポジトリの LICENSE ファイルによる)。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト