自定义 Skill 开发
创建自己的 Skill 扩展 Agent 能力。一个 Skill 就是一个包含 SKILL.md 的文件夹。
最小结构
my-skill/
└── SKILL.mdSKILL.md 格式
markdown
---
name: my-skill
description: 简短描述这个 Skill 做什么
---
# My Skill
## 使用场景
描述什么时候应该使用这个 Skill。
## 操作步骤
Agent 看到这些指令后会按照步骤执行。
### 示例
提供具体的使用示例。进阶结构
my-skill/
├── SKILL.md # 主文件(必须)
├── _meta.json # 元数据(可选)
├── references/ # 参考文档
│ └── api-docs.md
└── scripts/ # 辅助脚本
└── helper.pyGating(条件加载)
在 SKILL.md frontmatter 中配置加载条件:
markdown
---
name: my-tool
description: 需要 Python 的工具
metadata: {"openclaw": {"requires": {"bins": ["python3"], "env": ["MY_API_KEY"]}}}
---| 条件 | 说明 |
|---|---|
requires.bins | PATH 中必须有这些二进制文件 |
requires.anyBins | 至少有一个即可 |
requires.env | 必须设置的环境变量 |
requires.config | 配置中必须有的路径 |
always: true | 始终加载 |
os | 限定操作系统 (darwin, linux, win32) |
安装位置
| 位置 | 作用域 | 优先级 |
|---|---|---|
<workspace>/skills/ | 当前 Agent | 最高 |
~/.openclaw/skills/ | 所有 Agent | 中 |
| 内置 skills | 全局 | 最低 |
发布到 ClawHub
bash
cd my-skill/
clawhub publish首次发布需要 clawhub login。
引用 Skill 目录
在 SKILL.md 中用 {baseDir} 引用 Skill 文件夹路径:
markdown
运行脚本:`python3 {baseDir}/scripts/helper.py`