共享智能体技能让你可以从 Git 仓库安装技能,或从宿主上受支持的智能体导入技能,供本地 沙箱使用。sbx 把已安装的技能保存在一个持久化存储中,该存储在沙箱被删除后依然 保留,并默认与运行受支持智能体的新沙箱共享。
NOTE
共享智能体技能是实验性功能。
从仓库添加技能
添加 Git 仓库中的全部技能:
$ sbx skills add anthropics/skills该仓库必须包含一个或多个有效的 SKILL.md 文件。你可以使用 GitHub 的 owner/repository 简写形式,也可以使用 Git URL,包括 HTTPS 和 SSH URL。
要添加特定技能,为每个名称使用 --skill,或传入一个以逗号分隔的列表:
$ sbx skills add https://github.com/anthropics/skills --skill frontend-design --skill pdf当同名的技能已经安装时,sbx 会在替换前提示确认。使用 --force 可以不经提示直接 替换已有技能。
管理已安装的技能
列出共享存储中的技能:
$ sbx skills ls更新从某个仓库安装的全部技能:
$ sbx skills update要更新特定技能,传入一个或多个名称:
$ sbx skills update frontend-design pdfsbx skills update 只刷新通过 sbx skills add 安装的技能。要刷新从宿主导入的技能, 请重新运行 sbx skills import。要用 sbx skills update 管理它,请改为从仓库安装。
移除一个或多个已安装的技能:
$ sbx skills rm frontend-design pdf移除正在被运行中的智能体使用的技能时,sbx 会要求确认。在脚本中使用 --force 可以跳过确认。
从宿主导入技能
预览 sbx 找到的技能,但不复制它们:
$ sbx skills import --dry-run预览会按以下顺序扫描宿主来源。下表同时显示受支持的智能体在沙箱内读取共享存储的 位置:
| 智能体 | 宿主来源 | 沙箱挂载目标 |
|---|---|---|
| Codex and Devin | ~/.agents/skills | /home/agent/.agents/skills |
| Claude Code | ~/.claude/skills | /home/agent/.claude/skills |
| OpenCode | ~/.config/opencode/skills | /home/agent/.config/opencode/skills |
| Copilot | ~/.copilot/skills | /home/agent/.copilot/skills |
| Cursor | ~/.cursor/skills | /home/agent/.cursor/skills |
| Droid | ~/.factory/skills | /home/agent/.factory/skills |
无论来源如何,所有导入的技能都会进入同一个存储。如果多个来源包含同名目录的技能, 则以表中靠前来源的技能为准,sbx 会就其余的给出警告。
把技能复制到共享存储:
$ sbx skills import导入会复制每个技能目录,包括通过来源顶层符号链接访问到的目录。它会跳过技能目录 内部的符号链接,以及来源目录中的散落文件。如果某个技能依赖被链接的文件,请在导入 前把这些链接替换为实际文件。
最终输出会报告共享存储路径。默认位置如下:
| 平台 | 共享存储路径 |
|---|---|
| macOS | ~/Library/Application Support/com.docker.sandboxes/sandboxes/agent-skills |
| Linux | ~/.local/state/sandboxes/sandboxes/agent-skills |
| Windows | %LOCALAPPDATA%\DockerSandboxes\sandboxes\state\agent-skills |
在 Linux 上,当设置了 XDG_STATE_HOME 时,sbx 使用 $XDG_STATE_HOME/sandboxes/sandboxes/agent-skills。
当存储中已存在同名技能时,sbx 会在替换前提示确认。使用 --force 可以不经提示 直接替换已有技能。导入会替换整个技能目录,而不是合并文件。想从宿主导入更新时, 请再次运行导入命令。如果某次导入替换了从仓库安装的技能,sbx 就不再把该技能与其 仓库关联,因此 sbx skills update 不会刷新它。
共享存储的行为
运行 sbx reset 会清空共享存储。
为受支持的智能体创建的沙箱,默认以只读方式挂载共享存储。这些沙箱每次启动时都会 挂载该存储的内容,因此你可以在创建沙箱之前或之后安装技能。
使用 sbx run 或 sbx create 配合 --skills,在创建沙箱时选择访问模式:
readonly:以智能体可读取技能但无法修改的方式挂载存储。readwrite:以智能体可读取和修改共享技能的方式挂载存储。off:不挂载共享存储。
例如,创建一个不使用共享存储的沙箱:
$ sbx run --skills=off claude要改变未来沙箱的默认值,把 skills.defaultMode 设置为 off、 readonly 或 readwrite:
$ sbx settings set skills.defaultMode readonly该模式仅在创建沙箱时生效。升级 sbx 或修改 skills.defaultMode 不会改变已有沙箱 的挂载。要改变某个沙箱的模式,请删除并重新创建它。未启用共享技能的沙箱同样需要 重新创建才能挂载该存储。
WARNING
拥有 readwrite 访问权限的沙箱可以修改其他沙箱加载的技能,包括以 readonly 访问权限加载的沙箱。只读访问可以阻止该沙箱写入,但并不能把它与对存储的变更隔离 开来。该存储是沙箱专用的状态,因此仅凭这一点并不会让被修改的技能在你的宿主上 执行。创建沙箱时使用 --skills=off 可以让它留在这个共享信任边界之外。
有些智能体会在会话开始时扫描技能。如果已安装的技能在已有会话中没有出现,请另开 一个智能体会话。