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。
相关
- 项目
- 项目
- 项目
- 项目
- 项目