Skills 是 OpenClaw 的能力扩展机制——
每个 Skill 是一个包含 SKILL.md 的目录,告诉 AI 如何使用特定工具或执行特定任务。
Skills 是什么?
Skills 目录结构示例:
weather/
├── SKILL.md ← AI 读取这个,学会如何查天气
└── weather.sh ← 可选的辅助脚本/工具
SKILL.md 内容:
---
name: weather
description: 获取指定城市的实时天气和预报
---
# Weather Skill
使用 wttr.in 获取天气信息。
## 使用方法
调用 exec 工具执行:curl wttr.in/{城市名}?format=3
Skills 让 AI 知道「我有这个能力,这样用」, 而不需要每次在对话里重新解释工具的用法。
三级加载优先级
OpenClaw 从三个位置加载 Skills,优先级从高到低:
优先级 1(最高):<workspace>/skills/
每个 Agent 的专属技能,只有该 Agent 可用
优先级 2:~/.openclaw/skills/
用户自定义技能,所有 Agent 共享
优先级 3(最低):bundled skills
OpenClaw 内置技能(随安装包附带)
同名 Skill 时,高优先级覆盖低优先级—— 这让你可以覆盖内置 Skill 的行为而不修改安装包。
额外目录(最低优先级,低于 bundled):
{
"skills": {
"load": {
"extraDirs": ["/opt/shared-skills", "~/team-skills"]
}
}
}多 Agent 环境中的 Skills 共享
多 Agent 配置中:
Agent A(工作区:~/projects/backend)
可用 Skills:backend/skills/ + ~/.openclaw/skills/ + bundled
Agent B(工作区:~/projects/frontend)
可用 Skills:frontend/skills/ + ~/.openclaw/skills/ + bundled
共享 Skills → 放到 ~/.openclaw/skills/(对所有 Agent 可见)
专属 Skills → 放到 <workspace>/skills/(只对该 Agent 可见)
ClawHub:技能市场
ClawHub(clawhub.com)是官方 Skills 注册中心, 提供社区贡献的技能包。
# 浏览和安装技能
clawhub install weather # 安装 weather 技能
clawhub install image-lab # 安装图像生成技能
clawhub install gemini # 安装 Gemini CLI 集成
# 更新已安装的技能
clawhub update --all # 更新所有技能
clawhub update weather # 更新指定技能
# 同步(扫描本地技能,发布更新)
clawhub sync --all
# 默认安装到当前目录的 ./skills/(作为 workspace skills)
# 也可以指定安装到全局
clawhub install weather --global # 安装到 ~/.openclaw/skills/SKILL.md 格式规范
---
name: my-tool # 技能名称(唯一标识)
description: 一句话描述这个技能的功能
homepage: https://github.com/my/tool # 可选,macOS UI 中显示
user-invocable: true # 是否暴露为 /命令(默认 true)
metadata: {"openclaw": {"emoji": "🔧", "requires": {"bins": ["my-tool"], "env": ["MY_API_KEY"]}, "primaryEnv": "MY_API_KEY", "install": [{"id": "brew", "kind": "brew", "formula": "my-tool", "bins": ["my-tool"], "label": "Install my-tool"}]}}
---
# My Tool Skill
在这里写给 AI 看的使用说明:
## 功能
描述这个工具能做什么
## 使用方式
调用 exec 工具运行:my-tool --option {参数}
## 示例
- 示例 1:...
- 示例 2:...Gating 条件(metadata.openclaw.requires):
| 字段 | 含义 |
|---|---|
bins | PATH 中必须存在的可执行文件(都要有) |
anyBins | PATH 中至少有其中一个可执行文件 |
env | 必须设置的环境变量 |
config | openclaw.json 中必须为 truthy 的路径 |
os | 只在指定系统上加载(darwin/linux/win32) |
条件不满足时,Skill 不会加载(AI 看不到它)。
在 openclaw.json 中配置 Skill
{
"skills": {
"entries": {
"weather": {
"enabled": true // 强制启用(即使 gating 条件不满足也不会关)
},
"image-lab": {
"enabled": true,
"apiKey": "GEMINI_KEY_HERE", // 注入 API Key
"env": {
"GEMINI_API_KEY": "GEMINI_KEY_HERE" // 等价方式
},
"config": {
"model": "gemini-2.0-flash" // Skill 特定配置
}
},
"old-skill": {
"enabled": false // 禁用不需要的内置 Skill
}
}
}
}注意:skills.entries 的 key 是 Skill 的 name,
如果 name 含连字符(如 image-lab),需要加引号。
从零开发一个自定义 Skill
以开发一个「查询公司内部 Confluence 文档」的 Skill 为例:
# 1. 创建 Skill 目录
mkdir -p ~/.openclaw/skills/confluence
cd ~/.openclaw/skills/confluence# SKILL.md
---
name: confluence
description: 搜索和查阅公司 Confluence 知识库
metadata: {"openclaw": {"requires": {"env": ["CONFLUENCE_TOKEN", "CONFLUENCE_BASE_URL"]}, "primaryEnv": "CONFLUENCE_TOKEN"}}
---
# Confluence 知识库查询
## 配置
需要设置环境变量:
- CONFLUENCE_BASE_URL:公司 Confluence 地址(如 https://company.atlassian.net)
- CONFLUENCE_TOKEN:API Token(从 Atlassian 账户设置获取)
## 搜索文档
使用 exec 工具运行:
搜索:
curl -H "Authorization: Bearer $CONFLUENCE_TOKEN" "$CONFLUENCE_BASE_URL/wiki/rest/api/content/search?cql=text~'{搜索词}'"
查看页面内容:
curl -H "Authorization: Bearer $CONFLUENCE_TOKEN" "$CONFLUENCE_BASE_URL/wiki/rest/api/content/{page-id}?expand=body.storage"
## 使用示例
- "搜索 Confluence 中关于 API 规范的文档"
- "查看 Confluence 页面 ID 12345 的内容"# 2. 注入 API Key(在 openclaw.json 中)
# 或直接设置环境变量
export CONFLUENCE_TOKEN="your-token"
export CONFLUENCE_BASE_URL="https://company.atlassian.net"
# 3. 重启 Gateway 让 Skill 生效
openclaw gateway restart
# 4. 验证 Skill 已加载
openclaw skills list # 应该能看到 confluenceSkill 安全注意事项
- 第三方 Skill 要审查:安装前先
cat ~/.openclaw/skills/xxx/SKILL.md查看内容 - API Key 不要写在 SKILL.md 里:用
openclaw.json的skills.entries.xxx.env注入 - 危险工具用沙箱:不信任的 Skill 配合 Docker 沙箱运行,限制权限
来源:OpenClaw 官方文档 - docs.openclaw.ai/tools/skills