xiaods/k8e

k8e.sh - OpenSource Agentic AI Sandbox Matrix

什麼是 K8E

K8E(托管於 k8e.sh)是一個開源的 AI 代理用沙箱平台。它以 單一二進位檔(< 100 MB) 提供,可將任何 Linux 機器轉換為一個叢集,讓自主代理(Claude Code、Codex、Pi 等)能安全地執行 不受信任的程式碼。該沙箱使用可插入的隔離執行環境——gVisorKata ContainersFirecracker microVM,並提供輕量級 API(gRPC + E2B 相容 HTTP),供代理直接呼叫。

核心功能

功能 說明
硬體隔離 每個會話可選擇 gVisor(使用者空間核心)、Kata(VM 基礎)或 Firecracker(microVM)。
網路政策 透過 Cilium(toFQDNs)提供會話級 eBPF 规則,無需外部代理。
資源配額 為每個代理設定 CPU / 記憶體限制,防止成本失控。
預熱池 Pod 預先啟動的沙箱 Pod 可實現新會話 <500 毫秒的申請延遲。
暫時工作區 會話結束後自動清理;子代理共享父 Pod,但重用時會重置。
內容尋址快照 基於 SHA-256 的分層儲存,使用 zstd 壓縮;透過 --base 實現增量還原。
執行日誌與記錄 檔案後端、可恢復的命令日誌,可透過 k8e-sandbox-cli log 存取。
可觀測性 Prometheus 指標和 NDJSON 事件串流(eventsps 命令)。
E2B SDK 相容性 API 與公開的 E2B SDK 一致,現有 SDK 程式碼無需修改。
CLI 目錄 機器可讀的命令描述(catalog),可用於自動產生 SDK 綁定。

架構概覽

AI 代理 ──► k8e-sandbox-cli (gRPC/mTLS) ──► 沙箱閘道
                                            │
                                            ├─► 預熱池控制器(保持就緒 Pod)
                                            └─► 隔離沙箱 Pod (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 代理使用沙箱

  1. 在伺服器上建立 API 金鑰(TTL 預設 30 天):
    k8e sandbox-apikey create my-agent
    # → {"name":"my-agent","key":"k8e-abc123..."}
    
  2. 下載適用於您平台的客戶端二進位檔(約 44 MB),並連結至 k8e-sandbox-cli
  3. 連接 – 執行 mTLS 驗證,並將 /k8e-sandbox 技能 安裝至代理的框架中:
    ./k8e-sandbox-cli --endpoint <server-ip>:50051 \
        --apikey k8e-abc123... connect
    
  4. 代理現在可發出自然語言命令,例如 「在這個沙箱中執行這段 Python 程式碼」;該技能會自動將其轉換為 k8e-sandbox-cli run ...

主要 CLI 命令(代理面向)

命令 用途
run <code> 執行一次性命令或腳本(自動建立會話)。
create 明確啟動會話 – 可設定執行環境、允許主機、Git 倉儲等。
destroy <sid> 摧毀會話並釋放其資源。
write / read / list 操作沙箱工作區內的檔案。
subagent <parent-sid> 派生一個複用父 Pod 的子沙箱(最大深度 1)。
catalog 導出機器可讀的 CLI 描述 – 用於 SDK 產生。
sandbox-apikey ... 管理伺服器端 API 金鑰(建立、列出、刪除)。

何時使用 K8E?

  • 需要執行任意程式碼的 代理式 AI 服務(如程式碼生成代理、資料分析機器人)。
  • 每個租戶的代理必須與其他租戶隔離的 多租戶平台
  • 成本敏感型部署 – 預熱池 Pod 保持啟動延遲極低,同時二進位體積極小。
  • E2B、Daytona 或 Kubernetes SIG agent-sandbox 專案的 自托管替代方案

與其他沙箱的差異

K8E E2B Daytona agent-sandbox (SIG)
自托管、單一二進位 ✅(< 100MB) ❌ 重型 VM 鏡像 ❌ 需要完整 K8s 叢集
可插入執行環境 gVisor / Kata / Firecracker 僅 Firecracker microVM/容器 RuntimeClass(需 K8s)
500ms 內啟動的預熱池
E2B SDK 相容性 ✅ 原生
內建 eBPF 網路政策 ✅(Cilium)

TL;DR

K8E 是一個 緊湊、自包含的沙箱矩陣,可讓您大規模安全執行 AI 生成的程式碼。安裝一個執行環境(gVisor 最簡單),執行一行安裝指令,建立 API 金鑰,您的代理即可在毫秒級延遲的隔離 Pod 中執行程式碼——無需完整 Kubernetes 叢集或重型 VM。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案