技能
技能:托管与工作区、门控规则和配置/环境变量连接
OpenClaw 使用''''AgentSkills'' 兼容''的技能文件夹来教代理如何使用工具。每个技能是一个包含 ''SKILL.md'' 的目录,其中包含 YAML 前言和说明。OpenClaw 加载''捆绑技能''以及可选的本地覆盖,并根据环境、配置和二进制文件存在性在加载时过滤它们。
位置和优先级
技能从<strong>三个</strong>地方加载:
1. <strong>捆绑技能</strong>:随安装一起提供(npm 包或 OpenClaw.app)
2. '<strong>'托管/本地技能'</strong>':'<code className="bg-white/10 px-1.5 py-0.5 rounded text-emerald-300 text-sm">'~/.openclaw/skills'</code>'
3. '<strong>'工作区技能'</strong>':'<code className="bg-white/10 px-1.5 py-0.5 rounded text-emerald-300 text-sm">'<workspace>/skills'</code>'
如果技能名称冲突,优先级为:
''<workspace>/skills''(最高)→ ''~/.openclaw/skills'' → 捆绑技能(最低)
此外,您可以通过以下方式配置额外的技能文件夹(最低优先级)
''skills.load.extraDirs'' 在 ''~/.openclaw/openclaw.json'' 中。
按代理与共享技能
在<strong>多代理</strong>设置中,每个代理都有自己的工作区。这意味着:
- ''按代理技能''位于 ''<workspace>/skills'' 中,仅对该代理可用。
- ''共享技能''位于 ''~/.openclaw/skills''(托管/本地)中,对
同一台机器上的<strong>所有代理</strong>可见。
- ''共享文件夹''也可以通过 ''skills.load.extraDirs'' 添加(最低
优先级),如果您想要多个代理使用的通用技能包。
如果相同的技能名称存在于多个地方,通常的优先级
适用:工作区优先,然后是托管/本地,然后是捆绑。
插件 + 技能
插件可以通过列出 ''skills'' 目录来提供自己的技能
''openclaw.plugin.json''(相对于插件根目录的路径)。插件技能在
插件启用时加载,并参与正常的技能优先级规则。
您可以通过插件配置条目上的 ''metadata.openclaw.requires.config'' 来门控它们。
有关发现/配置,请参阅 ''插件'',有关这些技能教授的工具
表面,请参阅 ''工具''。
ClawHub(安装 + 同步)
ClawHub 是 OpenClaw 的公共技能注册表。浏览地址:
https://clawhub.com。使用它来发现、安装、更新和备份技能。
完整指南:''ClawHub''。
常见流程:
- 将技能安装到您的工作区:
- ''clawhub install <skill-slug>''
- 更新所有已安装的技能:
- ''clawhub update --all''
- 同步(扫描 + 发布更新):
- ''clawhub sync --all''
默认情况下,''clawhub'' 安装到当前工作目录下的 ''./skills''
(或回退到配置的 OpenClaw 工作区)。OpenClaw 在下次会话时
将其作为 ''<workspace>/skills'' 加载。
安全说明
- 将第三方技能视为不受信任的代码。启用前请阅读它们。
- 对于不受信任的输入和有风险的工具,建议使用沙盒运行。请参阅 ''沙盒''。
- ''skills.entries.*.env'' 和 ''skills.entries.*.apiKey'' 将密钥注入''主机''进程
(不是沙盒)。请将密钥排除在提示和日志之外。
- 有关更广泛的威胁模型和检查清单,请参阅 ''安全''。
格式(AgentSkills + Pi 兼容)
''SKILL.md'' 必须至少包含:
注意:
- 我们遵循 AgentSkills 规范进行布局/意图。
- 嵌入式代理使用的解析器仅支持<strong>单行</strong>前言键。
- ''metadata'' 应该是''单行 JSON 对象''。
- 在说明中使用 ''{baseDir}'' 引用技能文件夹路径。
- 可选的前言键:
- ''homepage'' — 在 macOS 技能 UI 中显示为"网站"的 URL。
- ''user-invocable'' — ''true|false''(默认:''true'')。
- ''disable-model-invocation'' — ''true|false''(默认:''false'')。
门控(加载时过滤器)
OpenClaw 在加载时使用 ''metadata''(单行 JSON)''过滤技能'':
''metadata.openclaw'' 下的字段:
- ''always: true'' — 始终包含该技能(跳过其他门控)。
- ''emoji'' — macOS 技能 UI 使用的可选表情符号。
- ''homepage'' — 在 macOS 技能 UI 中显示为"网站"的可选 URL。
- ''os'' — 平台的可选列表(''darwin''、''linux''、''win32'')。
- ''requires.bins'' — 列表;每个都必须存在于 ''PATH'' 上。
- ''requires.anyBins'' — 列表;至少有一个必须存在于 ''PATH'' 上。
- ''requires.env'' — 列表;环境变量必须存在''或''在配置中提供。
- ''requires.config'' — 必须为真的 ''openclaw.json'' 路径列表。
- ''primaryEnv'' — 与 ''skills.entries.<name>.apiKey'' 关联的环境变量名称。
- ''install'' — macOS 技能 UI 使用的可选安装器规范数组。
配置覆盖
捆绑/托管技能可以切换并提供环境值:
注意:如果技能名称包含连字符,请引用键(JSON5 允许引用键)。
配置键默认匹配<strong>技能名称</strong>。如果技能定义了
''metadata.openclaw.skillKey'',请在 ''skills.entries'' 下使用该键。
规则:
- ''enabled''(默认:''true'')— 设置为 ''false'' 以禁用。
- ''apiKey'' — 作为 ''primaryEnv''(如果设置)或 ''<SKILLNAME>_API_KEY'' 注入。
- ''env'' — 要注入的额外环境变量映射。
- ''config'' — 暴露给技能的配置值映射。