作为 Docker Sandboxes 团队的成员,我每天的工作就是跟隔离、微虚拟机、一次性文件系统、爆炸半径这些硬核基础设施打交道。但真让我日常离不开的功能,反而是一个听起来很无聊的细节——kits。
空沙箱的逻辑很安全:给 agent 一个干净的文件系统、一个受限的网络基线、一个白纸般的凭证环境。然后,坏就坏在这个“然后”——agent 立刻就会要 gcloud、Java、Maven、某个内部 CLI、你私有的包仓库凭证,还有那种沉淀了团队多年隐性知识的技能脚本。空沙箱成了拦在你和实际工作之间的屏障。
![]()
开发者不会因为架构图上的边界漂亮就坚持用某个工具,他们留下来,是因为工作流比替代方案更不闹心。而空白沙箱的起点,偏偏是开发者在现实中几乎从未遭遇过的状态。真实的开发机早已塞满 SDK、包管理器、云 CLI、Shell 配置、本地凭证、项目文档、缓存工具,以及没人想再凭记忆重搭一遍的种种配置。有些是工程规范,有些是考古现场。不论哪种,都直接决定 agent 能不能把任务跑通。
失败的显影剂通常不戏剧化:agent 花几分钟装包,撞上一堵被封锁的仓库,向你要一个它本不该碰的 API key,沙箱慢慢变成了“横在你和工作中间的那个东西”。这时候,开发者只有两条路:再花十分钟准备这个隔离环境,或者直接在宿主机上跑 agent,然后该干嘛干嘛。你猜他会选哪条。
kits 正是从这种循环里逃生的出口。一个 kit 让你描述沙箱需要什么、怎么获取、可以碰到哪些外部服务、能用哪些凭证,然后把这些描述在沙箱启动时一次性注入。
从技术上讲,kit 就是一个 spec.yaml 加一些可选文件。更好理解的心智模型是:kit 是沙箱与你想要在那里面可用的工具之间的契约。一个最简的 kit 可以只安装一个工具,比如 jq:
schemaVersion: "1"kind: mixinname: jqcommands: install: - command: "apt-get update && apt-get install -y jq"
实用的 kits 远不止于此。它们能把文件塞进 /home/agent/ 或工作区,设置非敏感环境变量,运行启动命令,启动后台服务,
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.