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 / 記憶體限制,防止成本失控。 |
| 預熱池 Pod | 預先啟動的沙箱 Pod 可實現新會話 <500 毫秒的申請延遲。 |
| 暫時工作區 | 會話結束後自動清理;子代理共享父 Pod,但重用時會重置。 |
| 內容尋址快照 | 基於 SHA-256 的分層儲存,使用 zstd 壓縮;透過 --base 實現增量還原。 |
| 執行日誌與記錄 | 檔案後端、可恢復的命令日誌,可透過 k8e-sandbox-cli log 存取。 |
| 可觀測性 | Prometheus 指標和 NDJSON 事件串流(events、ps 命令)。 |
| 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 代理使用沙箱
- 在伺服器上建立 API 金鑰(TTL 預設 30 天):
k8e sandbox-apikey create my-agent # → {"name":"my-agent","key":"k8e-abc123..."} - 下載適用於您平台的客戶端二進位檔(約 44 MB),並連結至
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> |
派生一個複用父 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。
相關
- 專案
- 專案
- 專案
- 專案
- 專案