OpenClaw 采用 AgentSkills 兼容的技能(Skill)体系,通过模块化目录结构赋予智能体使用各类工具的能力。每个技能是一个独立文件夹,包含描述其功能与调用方式的 SKILL.md 文件。本文将系统阐述 OpenClaw 的技能加载机制、优先级规则、配置方法、安全模型及与 ClawHub 生态的集成方式。
OpenClaw 从四个位置加载技能,按从高到低的优先级排序如下:
<当前代理的工作目录>/skills
→ 仅对该代理生效,适用于任务专属工具。
~/.openclail/skills
→ 对本机所有代理可见,适合团队共享或自定义覆盖。
openclaw.plugin.json 声明,加载时参与正常优先级竞争。
冲突处理:同名技能以工作区 > 本地 > 插件 > 内置的顺序覆盖。 扩展路径:可通过
~/.openclaw/openclaw.json中的skills.load.extraDirs添加额外技能目录(优先级最低)。
在多代理(Multi-Agent)场景中:
skills 文件夹仅对该代理可见。~/.openclaw/skills 和 extraDirs 中的技能为全局共享,所有本机代理均可使用。每个技能必须包含 SKILL.md,其头部使用 YAML Frontmatter 定义元信息:
---
name: nano-banana-pro
description: 通过 Gemini 3 Pro 生成或编辑图像
metadata:
{
"openclaw": {
"requires": {
"bins": ["uv"],
"env": ["GEMINI_API_KEY"],
"config": ["browser.enabled"]
},
"primaryEnv": "GEMINI_API_KEY",
"emoji": "🎨",
"homepage": "https://example.com/skill"
}
}
---name:技能唯一标识(用于配置与调用)。description:简要功能说明。metadata.openclaw(可选):控制加载条件与 UI 展示。 requires.bins:要求主机 PATH 中存在指定二进制。requires.env:依赖的环境变量(可由配置注入)。requires.config:需在 openclaw.json 中启用对应配置项。os:限定操作系统平台(如 ["darwin"])。install:提供一键安装指令(支持 brew/npm/go/下载等)。注意:Frontmatter 仅支持单行 JSON,且
metadata必须为合法 JSON 对象。
技能可通过两种方式触发:
/nano-banana-pro)直接触发。可通过以下元数据控制行为:
user-invocable: false:隐藏斜杠命令。disable-model-invocation: true:禁止模型自动调用,仅允许用户触发。command-dispatch: tool + command-tool:绕过模型,直接调用指定工具。在 ~/.openclaw/openclaw.json 中可对技能进行细粒度控制:
{
"skills": {
"entries": {
"nano-banana-pro": {
"enabled": true,
"apiKey": "your-api-key-here",
"env": { "GEMINI_API_KEY": "xxx" },
"config": { "model": "nano-pro" }
}
}
}
}enabled: false 可禁用任意技能(包括内置技能)。apiKey 为声明了 primaryEnv 的技能提供便捷密钥注入。env 和 config 在每次代理运行前临时注入进程环境,运行结束后恢复原状,避免污染全局状态。安全提示:密钥仅注入主机进程,不会传递至沙箱容器。若技能在沙箱中执行,需确保容器内已配置相应凭证。
当代理启用 Docker 沙箱 时:
requires.bins 检查仅验证主机环境。agents.defaults.sandbox.docker.setupCommand 在容器启动后安装依赖;ClawHub 是 OpenClaw 官方技能注册中心,支持:
clawhub install <skill-slug>:安装技能至当前工作区 ./skillsclawhub update --all:批量更新已安装技能clawhub sync --all:扫描本地变更并发布到远程仓库安装后的技能自动被 OpenClaw 识别为工作区技能,享有最高优先级。
每启用一个技能,系统提示词将增加约 97 字符 + 字段长度(经 XML 转义)。大量技能可能显著增加 token 消耗。
SKILL.md 及关联脚本。默认开启技能文件监听(skills.load.watch: true),修改 SKILL.md 后 250ms 内自动刷新会话技能列表,无需重启服务。
nodes.run 调度执行)。OpenClaw 的技能系统通过分层加载、精细配置、安全隔离与生态集成,实现了工具能力的灵活扩展与可靠管控。无论是内置基础工具、团队共享脚本,还是从 ClawHub 获取的社区技能,都能在统一框架下安全、高效地服务于智能爬虫与自动化任务。
更多详情请参考:OpenClaw 官方技能配置文档