Skills(技能)是 OpenClaw 的模块化扩展系统。每个 Skill 是一个包含 SKILL.md 的目录,教会 Agent 如何使用特定工具。
Skills 的工作原理
SKILL.md (Markdown 指令) → 加载到 Agent 系统提示 → Agent 按照指令使用工具
Skills 不是代码插件,而是 Markdown 格式的指令集。Agent 读取这些指令后,知道如何调用相应的工具。
三个技能来源
| 来源 | 路径 | 优先级 |
|---|---|---|
| 工作空间技能 | <workspace>/skills/ | 最高 ⬆️ |
| 本地安装技能 | ~/.openclaw/skills/ | 中等 |
| 内置技能 | OpenClaw 安装包内 | 最低 |
同名技能按优先级覆盖。
内置技能介绍
OpenClaw 自带了一些常用技能,无需额外安装:
| 技能 | 功能 | 前提条件 |
|---|---|---|
| web-search | 网页搜索 | Brave API Key |
| gemini | Google Gemini CLI | 安装 gemini-cli |
| peekaboo | 截图/屏幕查看 | macOS |
| sag | ElevenLabs TTS 语音 | API Key |
| summarize | 网页/文档摘要 | 安装 summarize CLI |
安装第三方技能
使用 ClawHub(推荐)
ClawHub 是 OpenClaw 的技能市场,目前有 1700+ 社区技能。
# 安装技能
clawhub install <skill-slug>
# 安装指定版本
clawhub install <skill-slug> --version 1.2.0
# 更新所有技能
clawhub update --all
# 查看已安装技能
clawhub list
手动安装
将技能文件夹放入 ~/.openclaw/skills/ 或 <workspace>/skills/:
# 克隆技能仓库
git clone https://github.com/someone/my-skill.git ~/.openclaw/skills/my-skill
⚠️ Skills 安全警告
这是非常重要的安全提醒!
已有安全研究发现 341+ 恶意 Skills 在 ClawHub 上:
- 🚨 部分伪装成加密货币工具,实际窃取 API Key 和钱包信息
- 🚨 部分包含反向 shell 后门
- 🚨 部分会窃取
~/.openclaw/.env中的凭据
安全建议:
- ✅ 安装前审查 SKILL.md 内容
- ✅ 优先使用官方和社区验证过的技能
- ✅ 使用沙箱模式运行不信任的技能
- ❌ 不要盲目安装来源不明的技能
- ❌ 不要在 SKILL.md 中暴露敏感信息
技能配置
在 openclaw.json 中管理技能:
{
skills: {
// 只允许特定内置技能
allowBundled: ["gemini", "peekaboo"],
// 额外技能目录
load: {
extraDirs: ["~/my-skills"],
},
// 单个技能配置
entries: {
"nano-banana-pro": {
enabled: true,
apiKey: "你的Gemini API Key",
env: {
GEMINI_API_KEY: "xxx",
},
},
"sag": { enabled: false }, // 禁用特定技能
},
},
}
自定义技能开发
创建自己的技能非常简单,只需要一个 SKILL.md 文件:
最小示例
mkdir -p ~/.openclaw/workspace/skills/my-greeting
# ~/.openclaw/workspace/skills/my-greeting/SKILL.md
---
name: my-greeting
description: 自定义问候技能
---
## 使用说明
当用户说"打招呼"或"greet"时:
1. 用热情的方式问候用户
2. 根据当前时间选择合适的问候语
3. 如果知道用户名字,使用名字称呼
带环境检测的技能
---
name: my-deploy
description: 自动部署到服务器
metadata: {"openclaw": {"requires": {"bins": ["ssh", "rsync"], "env": ["DEPLOY_HOST"]}, "primaryEnv": "DEPLOY_HOST"}}
---
## 部署技能
当用户要求部署时,执行以下步骤:
1. 运行 `git status` 确认工作区干净
2. 使用 `rsync` 同步文件到 `$DEPLOY_HOST`
3. 通过 SSH 重启服务
技能前端(SKILL.md 结构)
---
name: skill-name # 必填:技能名称
description: 功能描述 # 必填:简短描述
homepage: https://... # 可选:主页链接
user-invocable: true # 可选:是否暴露为斜杠命令
metadata: {"openclaw": { # 可选:加载条件
"requires": {
"bins": ["curl"], # 需要的命令行工具
"env": ["API_KEY"], # 需要的环境变量
"config": ["browser.enabled"] # 需要的配置项
},
"primaryEnv": "API_KEY" # apiKey 对应的环境变量
}}
---
## 使用说明
(给 Agent 的详细指令,告诉它何时以及如何使用这个技能)