xiaods/k8e
k8e.sh - OpenSource Agentic AI Sandbox Matrix
K8Eとは?
K8E(k-eight-eと発音)は、AIエージェントのためのオープンソース・サンドボックスプラットフォームです。自律型エージェント(Claude Code、Codex、Piなど)によって生成された信頼できないコードを、隔離されたコンテナやマイクロVM内で実行するために必要なすべてをパッケージ化しています。システム全体が 100MB未満の単一バイナリ として提供され、あらゆるLinuxホストを安全なマルチテナント実行環境に変えることができます。
コアコンセプト
- エージェントの隔離 – AI駆動の各ワークロードは、厳格なCPU/メモリ制限を備えた独自のサンドボックス(gVisor、Kata Containers、またはFirecracker)内で実行されます。
- エージェント間のゼロトラスト – ネットワークポリシー、eBPFによるエグレスルール、セッションごとのワークスペースにより、あるエージェントが他のエージェントに影響を与えることを防ぎます。
- 高速起動 – 事前に起動されたPodの ウォームプール により、新しいセッションを500ms以下で利用可能です。
- E2B互換API – ゲートウェイはElastic Engine for Bots (E2B) APIと一致するgRPC/mTLSエンドポイントを公開しているため、既存のLLMエージェントツールキットをそのまま使用できます。
- ワンクリックインストール – 小さなインストールスクリプト (
curl … | sh -) により、バイナリ、最小限のKubernetesスタイルのコントロールプレーン、およびサンドボックスランタイムを約60秒でセットアップできます。
アーキテクチャの概要
AI Agent (Claude Code / Codex / Pi) ──► k8e-sandbox-cli (gRPC over mTLS)
│
▼
Sandbox Gateway (E2B-compatible)
│
┌────────────────────────────┼─────────────────────────────┐
│ │ │
Session manager Metrics & Events Warm-pool
│ │ │
▼ ▼ ▼
┌─────────────────────┐ ┌─────────────────────┐ ┌─────────────────────┐
│ Sandbox pod (gVisor│ │ Sandbox pod (Kata │ │ Pre-booted pod ready│
│ / Kata / Firecracker)│ │ / Firecracker) │ │ to be claimed │
└─────────────────────┘ └─────────────────────┘ └─────────────────────┘
- Sandbox Gateway – セッションのライフサイクル、ファイルI/O、PTY端末、コマンド実行、スナップショット、サービスの公開を処理する単一のgRPCサーバー。
- 隔離ランタイム – プラグイン可能なRuntimeClass:gVisor(ユーザースペースカーネル、起動約10ms)、Kata Containers(VMベース、約500ms)、Firecracker(マイクロVM、約125ms)。
- Cilium – デフォルトのCNIが、eBPFによる
NetworkPolicyの強制とセッションごとのエグレスホワイトリストを提供します。 - ウォームプールコントローラー – 設定可能な数の事前起動済みサンドボックスPodを維持し、新しいセッションを500ms以下で開始できるようにします。
主要コンポーネント
| コンポーネント | 機能 |
|---|---|
| Sandbox Gateway | gRPC + mTLSエントリーポイント。セッション、実行、ファイル、PTY、スナップショット、メトリクス用のE2B互換APIを実装。 |
| 隔離ランタイム | gVisor、Kata Containers、Firecracker。Pod作成時に RuntimeClass で選択。 |
| Cilium (eBPF) | Kubernetesの NetworkPolicy とセッションごとのエグレス (allowed_hosts) を強制。 |
| ウォームプールコントローラー | 準備完了状態のサンドボックスPodプールを維持し、需要に応じて自動スケーリング。 |
| k8e-sandbox-cli | エージェントがセッション作成、コード実行、ファイル操作、スナップショット管理を行うためのスタンドアロンクライアント (~44 MB)。 |
| API-key サービス | エージェント用の短命キーを生成。キーはmTLS認証に使用。 |
はじめに(クイックスタート)
# 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のインストール (単一バイナリ, <100 MB)
curl -sfL https://k8e.sh/install.sh | sh -
# 3. サービスの確認
k8e-sandbox-cli status
k8e-sandbox-cli run 'echo hello from the sandbox'
インストールスクリプトは、最小限のコントロールプレーンをセットアップし、ゲートウェイを起動し、サンドボックスPodのウォームプールを作成します。
AIエージェントからサンドボックスを使用する
- サーバー上でAPIキーを作成:
k8e sandbox-apikey create my-agent # → {"name":"my-agent","key":"k8e-abc123..."} - OS用のクライアントをダウンロード (≈44 MB) し、実行可能にします。
- 接続 (エージェントに
/k8e-sandboxスキルをインストール):./k8e-sandbox-cli --endpoint <host>:50051 \ --apikey k8e-abc123... connect - コードの実行 – エージェントは以下のようなコマンドを発行できます:
CLIは自動的にセッションを作成し、コマンドを隔離されたPodにストリーミングして出力を返します。k8e-sandbox-cli run "print('hello')" --lang python
READMEに記載されているサポート対象エージェントは Claude Code、Codex、Pi です。
AIエージェントワークロード向けの主な機能
- 安全な隔離 – 軽量(gVisor)と強力なVMベースのランタイムを選択可能。
- リソースクォータ – コスト暴走を防ぐためのセッションごとのCPU/メモリ上限。
- エフェメラルワークスペース – 各セッションは自動クリーンアップされる新しいファイルシステムを取得。
- コンテンツアドレス指定スナップショット – SHA-256 CASレイヤーストアによる高速な増分復元。
- 実行トランスクリプトとログ – デバッグ用の再開可能なコマンドログ。
- 可観測性 – PrometheusメトリクスとNDJSONイベントストリーム。
- サブエージェントの再利用 – 子エージェントは隔離を維持したまま親Podのワークスペースを共有可能。
- CLIカタログ – SDK生成用の機械可読なコマンド記述。
K8Eの利用シーン
- コードをオンザフライで生成・実行する 自律型AIエージェント を構築している場合。
- 強力な隔離 が必要(悪意のある、またはバグのあるエージェントコードがホストや他のエージェントに影響を与えるのを防ぐ)。
- 毎回フルVMをプロビジョニングすることなく、高速なオンデマンド実行 を求めている場合。
- 大規模なクラウド管理サービスよりも、セルフホスト型の単一バイナリソリューション を好む場合。
ライセンスとコミュニティ
- ライセンス: Apache 2.0
- スター/リリース: バージョン管理されたリリースで積極的にメンテナンス。x86_64、ARM64、RISC-V用のバイナリが利用可能。
- GitHubのプルリクエストワークフローを通じた貢献を歓迎します。
要約
K8Eは、信頼できないAIエージェントのコードを安全かつ大規模に実行できる、コンパクトなセルフホスト型サンドボックス環境です。ランタイムをインストールし(gVisorが最も簡単)、1行のインストーラーを実行し、APIキーを作成して k8e-sandbox-cli バイナリを使用するだけで、LLMエージェントはサブ秒の起動、厳格なリソース制限、組み込みの可観測性を備えた隔離Pod内でコードを実行できます。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- Dispatch