能被diff的权限,才是能被负责的权限

小白爱摸鱼 @chaozuoye

Docker 发布了 Sandbox Kit 规范 v3,并联合 Linux Foundation/CNCF 把它推为中立开放标准。它要干的事一句话:把 AI agent 运行所需的全部权限声明——网络规则、凭据、卷、工具、指令——打包成一个普通 OCI 镜像,让"这个 agent 被允许做什么"第一次变得可版本化、可审查、可复现、可跨运行时移植。

规范:github.com/docker/sandbox…

它点破的问题比方案更值得先讲:agent 的权限是"隐形积累"的。每一项有用能力都来自一次授权——一个 bind mount、一个范围过宽的 token、一条为省事开大的防火墙规则;每一项单独看都合理,加起来就摧毁了隔离,而且全程不需要任何漏洞利用——"漏洞就是配置本身"。

更糟的是这些授权没有落盘:散落在 shell 历史、控制台与人的记忆里,既无法交接给同事,也没法 diff 与上周的版本。今晚权限三问(能动什么、碰了什么、能不能收敛)问了三轮,这一篇给出的答案是把它变成基础设施:权限不再住在记忆里,住进镜像里。

核心洞察的对比也相当锋利。容器共享宿主内核,靠 namespace 与 cgroup 给一个固定行为的工作负载提供隔离视图——适合"拿到什么就只用什么"的常规软件;而 agent 是概率性行为者:它自己决定下一步并直接执行,会装需要 root 的包、开没人规划过的端口、第一条路被挡就换下一条——容器的边界恰好是它正在探测的同一枚内核,这对它不可靠。

所以 Docker Sandbox 用 microVM:独立内核,边界位于模型能触及或改写的一切之下——正因为破坏止步于沙箱边界,才可以放心在沙箱内给 agent root、放开限制。

这一段是今晚"加固版 OpenClaw""四到五个月补沙箱"那些产品叙事的技术底座:要给自由,先给一个自由到头撞不穿的围墙。

规范也没有天真地以为"沙箱=环境":空沙箱还不是环境,还必须声明谁在运行——哪个 agent、配哪些工具与 MCP、哪些技能和指令塑造它、确切能碰什么。这四项与四件套(why/map/rules/workflows)跨层呼应:仓库层用文档回答,沙箱层用镜像注解回答;同一组问题,在两层各写一遍,且都要求可执行。

今晚"先有三页再谈好看"、"没写清楚就起不来"的纪律,到这里被固化成了可被 docker build 构建、docker pull 拉取的字面事实。

v3 最重要的变化在工程细节里:Kit 不再是独立 artifact,而是一个普通 OCI 镜像——没有新的 media type、没有 sidecar 文件、registry 不需要学任何新东西;声明放进单一注解、内容放进镜像层,天然用 buildx 构建、用 pull 分发。

用生态已经会的动作推送新标准,是这份规范最聪明的地方:采纳成本不取决于规范多好,取决于运维的肌肉记忆要不要重训——这与 kubectl 化、"新范式穿上旧衣服"是同一条路径在同一周里的第三次现身。

把今晚的序列合起来看,这一篇是拼图的地基层。规格驱动管事前、归属引擎管事中、预算与心跳管资源、沙箱 Kit 管底线——而底线的形态从"文档里的一句话"升级成"镜像里的一行注解",意味着 agent 的安全边界第一次可以进 CI、过 review、回滚到上周。

能被 diff 的权限,才是能被负责的权限;这是从"能动什么"到"能证明什么"的一跃。

给要落地的人一句落地的:先别谈标准,做一次"权限落盘"实验——把你手头 agent 现有的授权(挂载、token、端口)按 Kit 的五类写进一个镜像注解,跑通 build 与 run;然后回答一个更扎心的问题:这份声明与你上周实际给它的权限,差几条?差的那几条,就是隐形积累的存量;清掉它们,你才配谈"可审查"——标准给了你容器,装什么是你的事。

话题来源 @shao__meng 11.2K阅读 ❤️107 x.com/…↗ 已改写,非原文转载
139 浏览 0 评论 0 反应
登录 后参与评论
还没有评论,来抢沙发。
查看完整榜单
查看完整榜单
查看完整榜单