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エージェントからサンドボックスを使用する

  1. サーバー上でAPIキーを作成:
    k8e sandbox-apikey create my-agent
    # → {"name":"my-agent","key":"k8e-abc123..."}
    
  2. OS用のクライアントをダウンロード (≈44 MB) し、実行可能にします。
  3. 接続 (エージェントに /k8e-sandbox スキルをインストール):
    ./k8e-sandbox-cli --endpoint <host>:50051 \
        --apikey k8e-abc123... connect
    
  4. コードの実行 – エージェントは以下のようなコマンドを発行できます:
    k8e-sandbox-cli run "print('hello')" --lang python
    
    CLIは自動的にセッションを作成し、コマンドを隔離されたPodにストリーミングして出力を返します。

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