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 を備えた耐久性のあるアクターです。
典型的なユースケース
- AI支援のコーディングアシスタント – ファイルの読み書き、
node、bash、その他のツールの実行、Web UI への結果返却が可能なコーディングエージェント(Pi、Claude-Code)をデプロイ。 - サーバー側のツール自動化 – 内部関数をバインディングとして公開し、LLM にそれらをオーケストレーションさせる(例:データパイプラインのステップ、管理スクリプト)。
- マルチユーザー共同エージェント – マルチプレイヤー機能を使用して、複数のフロントエンドが同じエージェントセッションを観察し、対話できるようにします。
- ワークフローオーケストレーション – リトライと分岐を持つ複数のエージェントタスクをチェーンし、ステップ間で状態を永続化します。
- 安全で低コストなサンドボックス – 完全なコンテナのオーバーヘッドなしに、信頼できないコード(ユーザー送信スクリプト、プラグイン)を隔離された 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 コーディングアシスタントが完成します。
詳細を学ぶ
- ドキュメントとクイックスタート – https://agentos-sdk.dev/docs
- ソフトウェアのレジストリ – https://agentos-sdk.dev/registry
- ベンチマークと方法論 – https://agentos-sdk.dev/docs/benchmarks
- Discord コミュニティ – https://rivet.dev/discord
ライセンス
Apache-2.0(リポジトリの LICENSE ファイルによる)。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト