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。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目