rivet-dev/agentos

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

agentOS – AIエージェント向けの小型・高速なLinux互換サンドボックス

概要 – agentOSは、単一プロセス内で隔離された軽量なLinux風環境を実行できるJavaScript/TypeScriptライブラリ(およびホスト型サービス)です。各エージェントは独自のファイルシステム、プロセス、シェル、ネットワークを持ち、JavaScript、TypeScript、Python、コンパイル済みWebAssemblyツールを実行できます。分離は完全なVMではなくV8アイソレートとWebAssemblyによって提供され、非常に高速なコールドスタートと小さなメモリフットプリントを実現します。


主なポイント

機能 重要性
WebAssembly + V8アイソレート ゲストコード(シェル、coreutils、Pythonなど)を同じランタイムを共有するサンドボックスで実行し、重量級のマイクロVMを回避します。
ライブラリモード npmから@rivet-dev/agentos-coreをインストールし、自分のバックエンドプロセス内でVMを起動します。
ホスト型モード Rivet Cloud(またはセルフホスト)を使用して、HTTPでアドレス指定可能な永続VMを実行し、オプションでサービス公開用のプレビューURLを提供します。
コールドスタート速度 約5ms(p50)対典型的なコンテナサンドボックスの約440ms – 92倍高速。
メモリ効率 VMあたり約22MiB対フルLinuxコンテナの1GiB超 – 47倍少ない。
きめ細かい権限 ネットワーク、ファイルシステム、リソース制限は宣言的で、シークレットはホストから離れることはありません。
永続ストレージ SQLite、ホストディレクトリ、S3バケットをマウント可能。インメモリまたは永続ルートを選択可能。
リッチなAPI プロセス、ファイルシステム、ネットワーキング、言語ランタイム(JS/TS、Python)、cron、ソフトウェアパッケージ、対話型PTYがすべてクリーンなTypeScript APIまたはプレーンなHTTP呼び出しで公開されます。

典型的なユースケース

  • AIエージェントのバックエンド – 各LLM駆動エージェントに独自のサンドボックスOSを提供し、シェルコマンドの実行、データの取得、カスタムPython/JSコードの安全な実行を可能にします。
  • サーバーレス風ワークロード – 短いタスク(例:データ変換)のためにオンデマンドでVMを起動し、即座に破棄します。
  • テストとCI – フルコンテナを起動せずに、隔離されたビルドステップやセキュリティに敏感なスクリプトを実行します。
  • エッジまたは低コストコンピューティング – 単一のVM/インスタンス上で多数のエージェントを実行し、メモリとクラウドコストを節約します。

クイックスタート(ライブラリモード)

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

設定(永続FS、マウント、環境変数、ネットワークルール、リソース上限)は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>)でも利用可能なので、任意の言語から呼び出すことができます。


アーキテクチャ概要

  • サイドカーカーネル(Rust) – 仮想カーネル、ファイルシステム、プロセステーブル、ソケット、権限システムを所有する別プロセス。
  • ゲストコード – V8アイソレート(JS/TS)またはWebAssemblyモジュール(シェル、coreutils、Python)として実行されます。
  • ライブラリ – @rivet-dev/agentos-coreパッケージはサイドカーを起動し、stdio/Unixソケットを介して通信し、TypeScript APIを提供します。
  • ホスト型サービス – Rivet Cloudは同じサイドカーを実行し、REST/JSON APIを公開します。サイドカーをセルフホストすることもできます。
  • 分離モデル – ゲストコードからのすべてのシステムコールはサンドボックス化されたsyscallです。ホストリソースには、明示的なマウント、ホスト関数、ネットワーク許可リストを通じてのみ到達できます。

ライセンス

このプロジェクトは、リポジトリのLICENSEファイルにあるライセンスの下でリリースされています(READMEがそれを指しています)。


詳細情報 – ドキュメント、ベンチマーク、詳細なAPIリファレンスはhttps://rivet.dev/agentosおよびリポジトリの`docs/`フォルダにあります。

関連

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