跳转到内容

附录 A 速记

面试 / 评审 / 决策前的 5 分钟快速回顾。按主题分类,每条都是「一句话能说清」的版本。

  • 沙箱对 Agent 是执行运行时,不只是安全笼子。
  • 它同时是「笼子」和「手脚」:约束是赋能的前提。
  • 定义:远程、可编程、一次性 / 可持久的计算环境,经 API / MCP 暴露。
  • 沙箱管边界,不管意图。
  • 六个刚需:执行不可信代码、有状态、可回滚、可并行、可观测、可回收。
  • 前一个是安全诉求,后五个是功能诉求,缺一不可。
  • 代码由模型运行时生成、无法提前审计 → 沙箱从可选变必需。
  • 最小接口集合:create / exec / read_file / write_file / destroy。
  • 架构 = 控制面(无状态、调度、鉴权、配额)+ 数据面(有状态、执行、隔离)。
  • 控制面永不进入执行上下文。
  • 会话粘性靠 sandbox_id → node 映射;冷启动靠 warm pool。
  • 隔离强度排序:Docker / bwrap < gVisor < microVM < 完整 VM;WASM 是另一条轻量路线。
  • 口诀:可信代码 → Docker;不可信 / 多租户 → microVM 或 gVisor;轻量函数 → WASM;完整电脑 → 完整 VM。
  • 隔离强度与兼容性通常反向相关。
  • 选型三问:托管还是自建?隔离要多强?要 GPU 吗?
  • 头号风险是 prompt injection 导致的数据外泄,不是沙箱逃逸。
  • 最重要的三个开关:默认断网、不放长期凭据、短生命周期。
  • 间接注入(藏在网页 / 文档里的指令)是 Agent 时代的新威胁。
  • 出网必须走白名单代理,用域名而非 IP,DNS 也受控。
  • 接入选 MCP / SDK,生命周期管理选快照 + 分叉。
  • 判断是否需要沙箱:出现「任意代码 / 任意 shell / 不可信输入驱动执行」就上。
  • 用 L0–L3 分级,避免全站一刀切最强隔离。
  • 先托管跑通,抽象出接口层,再视规模换自建数据面。

给 Agent 一台一次性的、默认断网的、用完即销毁的电脑。

要跑任意代码吗? ── 否 → 普通 tool,别上沙箱
│ 是
输入不可信 / 多租户吗? ── 否 → Docker + 断网
│ 是
需要 GPU / 完整 OS 吗? ── 是 → 完整 VM
│ 否
→ Firecracker microVM + 白名单代理 + 短生命周期