Appearance
创建技能
技能(Skills)教 Agent 何时以及如何使用工具。每个技能是一个目录,包含带 YAML frontmatter 和 Markdown 正文的 SKILL.md 文件。
关于技能的加载和优先级,见 Skills。
创建第一个技能
第一步:创建技能目录
技能存放在你的 workspace 中,创建一个新文件夹:
bash
mkdir -p ~/.openclaw/workspace/skills/hello-world第二步:编写 SKILL.md
在该目录中创建 SKILL.md。frontmatter 定义元数据,Markdown 正文包含 Agent 的指令。
markdown
---
name: hello_world
description: A simple skill that says hello.
---
# Hello World Skill
When the user asks for a greeting, use the `echo` tool to say
"Hello from your custom skill!".第三步:添加工具(可选)
你可以在 frontmatter 中定义自定义工具 schema,或指示 Agent 使用已有的系统工具(如 exec 或 browser)。技能也可以作为插件的一部分,与其所描述的工具一同打包发布。
第四步:加载技能
启动新会话,让 OpenClaw 加载技能:
bash
# 在聊天中
/new
# 或重启 Gateway
openclaw gateway restart验证技能已加载:
bash
openclaw skills list第五步:测试
发送一条应该触发技能的消息:
bash
openclaw agent --message "give me a greeting"或者直接与 Agent 对话,要求它打个招呼。
技能元数据参考
YAML frontmatter 支持以下字段:
| 字段 | 必填 | 说明 |
|---|---|---|
name | 是 | 唯一标识符(snake_case) |
description | 是 | Agent 看到的单行描述 |
metadata.openclaw.os | 否 | OS 过滤(["darwin"]、["linux"] 等) |
metadata.openclaw.requires.bins | 否 | PATH 上必须存在的可执行文件 |
metadata.openclaw.requires.config | 否 | 必须存在的配置 key |
最佳实践
- 保持简洁 — 告诉模型_要做什么_,不要讲如何成为 AI
- 安全第一 — 如果技能使用
exec,确保提示不允许来自不受信任输入的任意命令注入 - 本地测试 — 使用
openclaw agent --message "..."在分享前先行测试 - 使用 ClawHub — 在 ClawHub 浏览和贡献技能
技能存放位置
| 位置 | 优先级 | 作用范围 |
|---|---|---|
<workspace>/skills/ | 最高 | 每个 Agent 独立 |
~/.openclaw/skills/ | 中 | 共享(所有 Agent) |
| 捆绑(随 OpenClaw 附带) | 最低 | 全局 |
skills.load.extraDirs | 最低 | 自定义共享目录 |