xiaods/k8e
k8e.sh - OpenSource Agentic AI Sandbox Matrix
什么是 K8E?
K8E(ホスト:k8e.sh)はオープンソースのAIエージェント用サンドボックスプラットフォームです。単一バイナリ(< 100 MB) として提供され、任意のLinuxマシンを、自律型エージェント(Claude Code、Codex、Piなど)が信頼できないコードを安全に実行できるクラスタに変換します。サンドボックスはプラグイン可能な隔離ランタイム(gVisor、Kata Containers、Firecracker microVM)を使用し、エージェントが直接呼び出せる軽量API(gRPC + E2B互換HTTP)を提供します。
コア機能
| 機能 | 機能の説明 |
|---|---|
| ハードウェア隔離 | セッションごとに gVisor(ユーザー空間カーネル)、Kata(VMベース)、Firecracker(microVM)を選択可能。 |
| ネットワークポリシー | Cilium(toFQDNs)によるセッションごとのeBPFルール。外部プロキシは不要。 |
| リソース制限 | エージェントごとにCPU/メモリ制限を設定し、コストの暴走を防ぐ。 |
| ウォームプールポッド | 事前に起動済みのサンドボックスポッドにより、新セッションの起動遅延を500ms未満に。 |
| 一時的なワークスペース | セッション終了後に自動クリーンアップ。サブエージェントは親ポッドを共有するが、再利用時にリセットされる。 |
| コンテンツアドレス付きスナップショット | SHA-256ベースの階層ストレージとzstd圧縮。--baseオプションでインクリメンタルリストア可能。 |
| 実行トランザクションとログ | ファイルバックエンドの再開可能なコマンドログ。k8e-sandbox-cli logでアクセス可能。 |
| 観測性 | PrometheusメトリクスとNDJSONイベントストリーム(events、psコマンド)。 |
| E2B SDK互換性 | 公開E2B SDKと同一API。既存SDKコードはそのまま利用可能。 |
| CLIカタログ | SDKバインディング自動生成に適した機械可読なコマンド説明(catalog)。 |
アーキテクチャの概要
AIエージェント ──► k8e-sandbox-cli (gRPC/mTLS) ──► サンドボックスゲートウェイ
│
├─► ウォームプールコントローラ(準備完了ポッドを維持)
└─► 隔離サンドボックスポッド (gVisor/Kata/Firecracker)
ゲートウェイは唯一の公開エントリポイント。セッションライフサイクル、ファイルI/O、PTY端末、スナップショット、サービス公開を処理します。
クイックスタート(30秒インストール)
# 1️⃣ 隔離ランタイムのインストール – gVisorがデフォルトでKVM不要
ARCH=$(uname -m)
URL=https://storage.googleapis.com/gvisor/releases/release/latest/${ARCH}
wget ${URL}/runsc ${URL}/runsc.sha512 \
${URL}/containerd-shim-runsc-v1 ${URL}/containerd-shim-runsc-v1.sha512
sha512sum -c runsc.sha512 -c containerd-shim-runsc-v1.sha512
chmod +x runsc containerd-shim-runsc-v1
sudo mv runsc containerd-shim-runsc-v1 /usr/local/bin/
# 2️⃣ K8E本体のインストール(単一バイナリインストーラ)
curl -sfL https://k8e.sh/install.sh | sh -
# 3️⃣ サービスの確認
k8e-sandbox-cli status # → {"available":true,…}
# 4️⃣ サンドボックス内でコマンド実行
k8e-sandbox-cli run 'echo hello from the sandbox'
上記すべては、現代のx86_64、ARM64、RISC-V Linuxホストで動作します。
AIエージェントからサンドボックスを使う方法
- サーバーでAPIキーを作成(TTLはデフォルト30日):
k8e sandbox-apikey create my-agent # → {"name":"my-agent","key":"k8e-abc123..."} - プラットフォーム用のクライアントバイナリ(約44MB)をダウンロードし、
k8e-sandbox-cliにシンボリックリンクを張る。 - 接続 – mTLS認証を実行し、エージェントのハーネスに
/k8e-sandboxスキル をインストール:./k8e-sandbox-cli --endpoint <server-ip>:50051 \ --apikey k8e-abc123... connect - エージェントは「このPythonスニペットをサンドボックスで実行して」といった自然言語コマンドを発行可能。スキルが内部で
k8e-sandbox-cli run ...に変換します。
主なCLIコマンド(エージェント向け)
| コマンド | 目的 |
|---|---|
run <code> |
一時的なコマンドまたはスクリプトを実行(セッション自動作成)。 |
create |
明示的にセッションを開始 – ランタイム、許可ホスト、Gitリポジトリなどを設定可能。 |
destroy <sid> |
セッションを破棄し、リソースを解放。 |
write / read / list |
サンドボックスワークスペース内のファイルを操作。 |
subagent <parent-sid> |
親ポッドを再利用する子サンドボックスを生成(最大深さ1)。 |
catalog |
CLIの機械可読な説明をダンプ – SDK生成に有用。 |
sandbox-apikey ... |
サーバーサイドAPIキーの管理(作成、一覧、削除)。 |
K8Eを使うべき場面
- 任意のコード実行が必要なエージェントAIサービス(例:コード生成エージェント、データ分析ボット)。
- 各テナントのエージェントが互いに隔離される必要があるマルチテナントプラットフォーム。
- コスト感度の高い展開 – ウォームプールポッドで起動遅延を低く保ちつつ、バイナリサイズは極めて小さく。
- E2B、Daytona、Kubernetes SIG
agent-sandboxプロジェクトなどの商用製品のセルフホスト代替。
他のサンドボックスとの違い
| K8E | E2B | Daytona | agent-sandbox (SIG) | |
|---|---|---|---|---|
| セルフホスト、単一バイナリ | ✅(< 100 MB) | ❌ メタVMイメージ | ✅ | ❌ 完全なK8sクラスタが必要 |
| プラグイン可能なランタイム | gVisor / Kata / Firecracker | Firecrackerのみ | microVM/コンテナ | RuntimeClass(K8sが必要) |
| 500ms未満の起動を実現するウォームプール | ✅ | ❌ | ✅ | ❌ |
| E2B SDK互換性 | ✅ ネイティブ | ✅ | ❌ | ❌ |
| 組み込みeBPFネットワークポリシー | ✅(Cilium) | ❌ | ❌ | ❌ |
TL;DR
K8Eはコンパクトで自己完結型のサンドボックスマトリクスであり、スケールしてAI生成コードを安全に実行できます。ランタイム(gVisorが最も簡単)をインストールし、1行インストーラを実行し、APIキーを作成すれば、エージェントはミリ秒単位の遅延で隔離ポッド内でコードを実行可能。完全なKubernetesクラスタや重いVMは不要です。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト