Kit 让你按照自己的工作方式搭建沙箱。使用自定义基础镜像,添加项目需要的工具,并为智能体提供使用这些工具的说明。你还可以控制沙箱能访问哪些服务、如何进行身份验证,以及沙箱启动时运行什么。
一个 Kit 既可以定义完整的环境,也可以为已有环境补充内容,比如一套工具链或团队共享的配置。把这些选择打包一次,就能跨项目复用,并与团队共享。
如果要把沙箱的配置保存在一个可编辑、可共享的文件里,请使用 沙箱环境文件。它在指定工作区路径、资源和凭据的同时,还会选择 Kit。把工具的依赖放在它所属的 Kit 里,这样这些依赖就能跟着工具在各环境之间迁移。搭建沙箱时的各种选择都用环境文件来管理。
Docker 推荐使用 v3 Kit。本节讲的是 v3。仍受支持的 v2 格式请参见 Kits v2。
什么是 Kit?
Kit 把软件和配置打包进沙箱。一个 YAML 文件(称为描述符)告诉 Docker Sandboxes 这个 Kit 需要什么:网络访问、凭据、安装命令,或者给智能体的说明。你把 Kit 发布为一个容器镜像,其中包含它的文件和描述符。
你通过容器镜像引用来标识一个已发布的 Kit,例如 docker.io/docker/sbx-kit-claude:2.1.267。使用这个 Kit 时,sbx 会准备它的文件并应用它的设置。你既可以用一个 Kit 提供完整环境,也可以组合多个各自贡献不同部分的 Kit。
Kit 能做什么
用 Kit 可以:
- 打包一个自定义智能体,或者为团队项目配置已有智能体。
- 包含智能体需要的工具,比如 linter、语言运行时、测试运行器和编译器。
- 共享 linter 规则、编辑器设置、辅助脚本和参考资料,并为智能体提供使用它们的说明和技能。
- 通过网络规则和凭据把智能体连接到服务,包括内部 API 和私有包镜像仓库。
- 在沙箱启动时初始化它并运行配套服务,比如用于预览智能体工作成果的开发服务器。
工作负载和 Mixin
Kit 在沙箱中有两种角色:工作负载(workload)提供基础环境和启动命令,Mixin 则往其中添加工具或行为。
| 类型 | 提供什么 | 怎么用 |
|---|---|---|
workload | 要运行的环境和命令,比如一个智能体或 shell | 传给 sbx run 或 sbx create |
mixin | 额外的工具、配置或运行时行为 | 用 --kit 添加 |
例如,下面的命令用一个 Mixin 运行一个工作负载:
$ sbx run docker.io/docker/sbx-kit-claude:2.1.267 --kit docker.io/sbx/playwright:1.61.1Claude Code 工作负载启动智能体,Playwright Mixin 添加浏览器测试工具。
Kit 集合
Kit 集合把多个 Kit 合并成一个可以发布和复用的 Kit。用它把工作负载和你需要的 Mixin 打包在一起,这样你和团队只需一个引用就能运行这个环境。
集合指定要合并哪些 Kit 以及各自的版本。它还可以为合并后的环境添加安装命令、智能体说明、网络访问和其他设置。
如果集合中包含工作负载,用 sbx run 运行发布后的 Kit。如果只包含 Mixin,用 --kit 把它加到工作负载上。
环境文件既可以选择单个 Kit,也可以选择一个已发布的集合。当你想要一个固定组件列表的发布引用时,就选集合。构建集合时会记录这些组件的镜像 digest。
关于如何运行 Kit 和添加 Mixin,请参阅 使用 Kit。要定制并发布自己的组合,请参阅 编写 Kit 集合。
版本兼容性
V3 需要 sbx v0.45 或更高版本。v3 沙箱中的每个 Kit 都必须是 v3:选择一个 v3 工作负载,并且只添加 v3 Mixin。
像 claude 和 codex 这样的内置智能体名对应的是 v3 Kit,可以直接添加 v3 Mixin,例如 sbx run claude --kit ./some-v3-mixin。v1 和 v2 Kit 不能与 v3 Kit 组合。
Kit 的能力可能要求更新的版本或本地沙箱。详情请参阅 Kit 能力支持。V2 仍受支持,也没有被废弃。
选择下一步
- 使用 Kit:运行已发布的环境,或把工作负载和 Mixin 组合起来。
- 编写 Kit:搭建智能体环境、打包工具,或把 Kit 合并成集合与团队共享。
- 浏览 sandbox-kit-spec 仓库,查看权威的 v3 规范、构建前端和示例。
若要保存你在沙箱内配置好的环境,请参阅 把沙箱保存为模板。