犀牛鸟 2026 研究笔记 estelledc.github.io

第一章 · 这个领域在解决什么问题

1.1 一个故事:你让 AI 帮你写代码

想象这样一个场景:你打开 Claude Code 或者 Cursor,跟 AI 说”帮我写一个 Python 脚本,把 Downloads 文件夹里的所有 PDF 按日期重命名”。AI 很快给出了代码——但这段代码需要被执行才能完成任务。

问题来了:这段代码是 AI 生成的,不是你自己写的。你怎么知道它不会干出这些事?

大多数时候 AI 不会做这些事。但「大多数时候」不等于「永远不会」——特别是当有人在提示词里故意夹带恶意指令(这叫提示注入,后面会详细讲)的时候。

代码沙箱就是为了解决这个问题:给 AI 生成的代码一个”安全屋”——代码可以在里面随便跑,但不管做什么都不会影响到外面的真实世界。

沙箱(sandbox):一个隔离的执行环境。代码在沙箱里可以读写文件、发网络请求、跑进程,但这些操作都被限制在沙箱内部,不会泄漏到宿主机。名字来源于儿童游乐场的沙坑——小孩在里面随便玩沙子,但沙子不会跑到坑外面。

1.2 为什么现在这个问题特别紧迫

三年前(2023 年),AI 写代码还是个新鲜事。你让 ChatGPT 写段代码,它写完你自己看一遍再手动跑——等于你是最后一道安全关卡。

但到了 2026 年,情况变了:

AI Agent 自己执行代码了。Codex、Claude Code、Manus、Devin——这些产品让 AI 不只是「写代码」,而是「写完直接执行」。人类不再是每一步的把关者。AI 可能连续执行几十条命令,中间没有人类审核。

规模上来了。一个 Agent 可能同时派出 100 个子 Agent(这叫 Swarm 模式),每个都在独立执行代码。如果没有隔离,一个子 Agent 出问题就可能影响所有其他子 Agent。

商业化了。E2B、Daytona 这样的产品让任何人都可以通过 API 把代码提交给云端执行——你的代码和别人的代码可能在同一台物理机上跑。这就是「多租户」场景,安全要求陡然上升。

1.3 这个领域叫什么名字

这个领域没有一个统一的名字。不同的人从不同角度叫它不同的东西:

微虚拟化(micro-virtualization / microVM):从底层技术角度的叫法。强调的是用精简的虚拟机做隔离,区别于传统的重量级虚拟机。

AI 代码沙箱(AI code sandbox):从应用场景角度的叫法。强调的是为 AI Agent 的代码执行提供安全环境。

安全容器(secure container):从云原生角度的叫法。强调的是在容器技术(Docker/K8s)上增加 VM 级别的隔离。

这三个名字描述的是同一个领域的不同侧面。本导读统一用「AI 代码沙箱」来指代整个领域。

1.4 六个项目,六种解题思路

这个赛道研究的是 6 个开源项目,它们用不同的方式解决同一个问题——「怎么安全地执行不可信代码」。

用一个日常类比来理解它们的关系:

项目 类比 一句话说它在做什么
Firecracker 汽车发动机制造商 造微虚拟化引擎——最底层的隔离技术
CubeSandbox 造了一台即插即用的赛车 引擎和 Firecracker 同源,方向盘接口和 E2B 通用,自己加了快照和网络安全
E2B 租车平台(Uber) 用 Firecracker 的引擎,加上 App 和计费,你只管叫车
Daytona 汽车 + 车库 + 维修厂的全套体验 不只是车,是整个用车生态——Dashboard、终端、VNC 一应俱全
gVisor 驾驶模拟器 不是真车(不用 KVM 硬件),但让你体验”开车”的感觉
Kata Containers 密封集装箱货轮 每个集装箱是一个独立密封舱(VM),但用叉车(Docker/K8s 接口)管理

读到这里你应该懂了:6 个项目不是互相竞争的同质产品,而是在不同的层次、面向不同的场景做事。后面的章节会一个个展开讲。

1.5 这条赛道和「犀牛鸟 2026」的关系

犀牛鸟 2026 是一个开源贡献竞赛。CubeSandbox 是其中一个赛道项目。你的目标是在 2026 年 7 月到 9 月之间,给 CubeSandbox 提交有价值的贡献(代码、文档、测试),拿到社区认可。

理解整个领域的全景——6 个项目各自做什么、解决什么问题、有什么取舍——不只是为了应付竞赛,更是为了让你的贡献有深度。一个理解了 Firecracker 为什么砍掉 BIOS 的人,写出的 CubeSandbox 文档比只会复制 README 的人好十倍。

1.6 最小体感:5 行 Dockerfile 感受”隔离”

在你理解所有技术细节之前,先用 5 行代码体验一下”沙箱隔离”的核心直觉:

# sandbox-demo.Dockerfile — 最小沙箱隔离演示
FROM alpine:3.19                    # 1. 从干净的迷你 Linux 开始
RUN adduser -D sandbox              # 2. 创建无特权用户
USER sandbox                        # 3. 切换到该用户(不能 sudo)
WORKDIR /tmp                        # 4. 限制工作目录
CMD ["sh", "-c", "echo 我被隔离了; ls /root 2>&1 || true"]  # 5. 尝试访问宿主——失败

运行:docker build -f sandbox-demo.Dockerfile -t demo . && docker run --rm demo

你会看到:容器里的代码无法访问 /root,无法安装软件,无法看到宿主机文件。这就是最原始的”隔离”——后续章节讲的所有技术(gVisor、Firecracker、CubeSandbox)本质上都是在回答同一个问题:如何让这种隔离更强、更快、更适合 AI Agent 的使用场景


1.7 读完本章你能做什么

章节自测

  1. 如果一个 AI Agent 需要帮用户运行 rm -rf / 来”清理磁盘”,没有沙箱会发生什么?有了沙箱后,你会如何设计隔离策略?
  2. 容器(Docker)已经能隔离进程了,为什么 AI 场景还需要 gVisor / Firecracker 这样的更强隔离?试从”攻击面”角度思考。
  3. 六个项目中,哪些偏向”引擎”层(提供隔离能力),哪些偏向”平台”层(编排多个沙箱)?你觉得竞赛选哪一层切入更容易产出贡献?

导读目录:README.md 下一章:第二章 · 六个项目一览:从发动机到整车