WebAssemblyとV8を基盤に、AIエージェントにファイル、プロセス、シェル、ネットワークを備えたLinux風の隔離サンドボックスを提供するライブラリとホステッドサービス。
capsulerun/runtime
AIエージェント向けに、タスクごとのCPU・メモリ・タイムアウト制限を設け、分離されたWebAssemblyサンドボックス内で信頼できないコードを実行するランタイム。
- スター
- 303
- フォーク
- 22
- 未解決の Issue
- 0
- 最終コミット
- 26 日前
これは何?
Capsuleは、信頼できないコードを分離された環境で実行するためのランタイムです。各タスクはホストシステムから切り離された専用のWebAssemblyサンドボックスで実行されます。開発者はPythonまたはTypeScript/JavaScriptの関数をタスク用ラッパーで囲み、ランタイムがファイルをWebAssemblyにコンパイルして実行します。
各タスクには、計算レベル、RAM上限、タイムアウト、リトライ回数を設定できます。CPU使用量はWebAssemblyのfuel meteringで制御します。ファイルアクセスは読み取り専用または読み書き可能のモードを指定した、明示的に許可されたディレクトリに限定されます。外部ネットワークへのアクセスは、許可リストに登録されたホストに限定されます。環境変数は、指定されたものだけが公開されます。実行のたびに、結果やエラーの詳細に加え、実行時間、消費fuel、ピークメモリなどの実行メトリクスを含むJSONエンベロープが返されます。
CLI(capsule run、capsule build)とPythonおよびnpmのSDKを提供しており、ホストコードからサンドボックス内のタスクを呼び出すrun()関数も利用できます。C拡張に依存するPythonパッケージをサンドボックス内で実行するには、wasm32-wasi向けのビルドが必要です。
主な機能
- 01各タスクをホストから分離された専用のWebAssemblyサンドボックスで実行する。
- 02fuel meteringによるCPU制限に加え、タスクごとにRAM上限とタイムアウトを設定できる。
- 03読み取り専用または読み書き可能のモードで、ファイルアクセスを指定ディレクトリに制限する。
- 04外部HTTPアクセスを、許可リストに登録されたドメインのみに制限する。
- 05PythonおよびTypeScript/JavaScriptのタスクに対応し、自動リトライも利用できる。
- 06実行時間、fuel、メモリのメトリクスを含む構造化JSONの結果を返す。
ユースケース
- ホストマシンを危険にさらさず、コードインタープリターでLLMが生成したコードを実行する。
- ファイル、ネットワークホスト、環境変数に厳しい制限を設けて、AIエージェントのツール呼び出しを実行する。
- 予測可能なリソース上限が必要な、小規模なサーバーレス形式の関数をパッケージ化する。
- run()を使って、ホストアプリケーションからサンドボックス内のPythonまたはTypeScriptコードを呼び出す。
クイックスタート
- 1
Pythonパッケージをインストールする
pip install capsule-run - 2
挨拶を返す main タスクを含む hello.py を作成する
- 3
Capsule CLI でファイルを実行する
capsule run hello.py
使う前に知っておきたいこと
- README に掲載されている例は Python と TypeScript のみのため、他の言語は対象外です。
- capsule build で事前にコンパイルしない場合、ソースファイルのコンパイルにより初回実行時に数秒の遅延が発生します。
収録されている特集
トピック
よくある質問
- runtime とは?
- AIエージェント向けに、タスクごとのCPU・メモリ・タイムアウト制限を設け、分離されたWebAssemblyサンドボックス内で信頼できないコードを実行するランタイム。 Capsuleは、信頼できないコードを分離された環境で実行するためのランタイムです。各タスクはホストシステムから切り離された専用のWebAssemblyサンドボックスで実行されます。開発者はPythonまたはTypeScript/JavaScriptの関数をタスク用ラッパーで囲み、ランタイムがファイルをWebAssemblyにコンパイルして実行します。
- runtime は無料で使えますか?ライセンスは?
- runtime は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- runtime は今もメンテナンスされていますか?
- 活発にメンテナンス中。runtime の最終コミットは 2026年10月12日 です。
- runtime は何に使えますか?
- ホストマシンを危険にさらさず、コードインタープリターでLLMが生成したコードを実行する。 ファイル、ネットワークホスト、環境変数に厳しい制限を設けて、AIエージェントのツール呼び出しを実行する。 予測可能なリソース上限が必要な、小規模なサーバーレス形式の関数をパッケージ化する。 run()を使って、ホストアプリケーションからサンドボックス内のPythonまたはTypeScriptコードを呼び出す。
- runtime のインストール方法は?
- Pythonパッケージをインストールする: pip install capsule-run 挨拶を返す main タスクを含む hello.py を作成する Capsule CLI でファイルを実行する: capsule run hello.py
- runtime はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/capsulerun/runtime
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
ブラウザー、Node、MCPサーバー上で複数言語のコードを実行できる、サンドボックス化されたWebAssemblyランタイム。
Docker、Kubernetes、Podman、ローカルのLinuxやWindowsなど、複数のバックエンドでLLM生成コードを隔離環境内で実行するPythonライブラリ。
アプリやAIエージェントのコードを、高速で軽量なサンドボックス環境で実行するWebAssemblyランタイムとCLI。
AI生成コードを隔離されたクラウドサンドボックスで実行するオープンソース基盤。JavaScriptとPythonのSDKを提供します。
AIが生成したコードを分離されたクラウドサンドボックスで実行し、出力を取得するためのPythonおよびJS/TS SDK。