什么是OpenClaw的Skill系统
Skill 是 OpenClaw 中扩展 AI 助手能力的核心机制。每个 Skill 本质上是一个 SKILL.md 文件,它用 Markdown 格式定义了一组指令,告诉 AI 在特定场景下应该如何行动。
举几个实际的例子:
- 一个"日报生成"Skill,让 AI 根据你今天的对话记录自动整理出工作日报
- 一个"翻译助手"Skill,让 AI 在收到外语消息时自动翻译并保持特定的翻译风格
- 一个"代码审查"Skill,让 AI 按照你团队的代码规范来审查代码片段
Skill 系统的设计哲学是"用自然语言编程"——你不需要写代码,只需要用清晰的文字描述你希望 AI 做什么。
Skill文件的存放位置
所有自定义 Skill 文件存放在以下目录:
~/.openclaw/skills/
每个 Skill 是一个独立的文件夹,文件夹中包含一个 SKILL.md 文件:
~/.openclaw/skills/
├── daily-report/
│ └── SKILL.md
├── translator/
│ └── SKILL.md
└── code-review/
└── SKILL.md
OpenClaw 会在启动时自动扫描这个目录,加载所有可用的 Skill。
SKILL.md文件结构
一个完整的 SKILL.md 文件由两部分组成:YAML 前置元数据和 Markdown 指令正文。
下面是一个完整的示例——"智能翻译助手"Skill:
---
name: translator
description: "智能翻译助手,支持中英互译,保持专业术语准确"
trigger: "翻译"
version: "1.0.0"
tags: ["翻译", "语言"]
author: "your-name"
enabled: true
---
## 角色定义
你是一个专业的翻译助手。当用户发送需要翻译的内容时,请按照以下规则工作。
## 翻译规则
1. 自动检测源语言,翻译为目标语言
2. 如果源语言是中文,翻译为英文
3. 如果源语言是英文,翻译为中文
4. 如果用户指定了目标语言,以用户指定的为准
## 翻译风格
- 技术文档:保持术语准确,语句简洁
- 日常对话:使用自然流畅的表达
- 商务邮件:使用正式得体的措辞
## 输出格式
翻译结果直接输出,不需要额外的解释。如果遇到有歧义的内容,在翻译后用括号简短说明。
## 示例
用户输入:翻译 "这个 API 的 rate limit 是多少?"
输出:What is the rate limit of this API?
YAML前置元数据详解
| 字段 | 必填 | 说明 |
|---|---|---|
name |
是 | Skill 的唯一标识符,使用英文和连字符 |
description |
是 | 简短描述 Skill 的功能 |
trigger |
否 | 触发关键词,用户消息包含此关键词时激活 |
version |
否 | 版本号,方便管理和更新 |
tags |
否 | 标签数组,用于分类 |
author |
否 | 作者信息 |
enabled |
否 | 是否启用,默认为 true |
Markdown指令正文
正文部分就是你给 AI 的指令,使用标准 Markdown 格式。写指令时的几个建议:
- 用二级标题(##)划分不同的指令模块,结构清晰便于 AI 理解
- 给出具体的示例,示例比抽象描述更有效
- 明确边界条件,告诉 AI 什么情况下应该怎么处理
- 保持指令简洁,避免过于冗长的描述
实战:创建一个日报生成Skill
让我们动手创建一个实用的 Skill:
mkdir -p ~/.openclaw/skills/daily-report
创建 ~/.openclaw/skills/daily-report/SKILL.md:
---
name: daily-report
description: "根据今日对话记录生成工作日报"
trigger: "日报"
version: "1.0.0"
tags: ["效率", "工作"]
enabled: true
---
## 角色定义
你是一个工作日报整理助手。当用户要求生成日报时,根据今天的对话记录和用户提供的信息,生成结构化的工作日报。
## 日报格式
请按以下格式输出日报:
### 今日完成
- [列出今天完成的工作项]
### 进行中
- [列出正在进行但未完成的工作]
### 明日计划
- [列出明天计划做的事情]
### 备注
- [其他需要记录的信息]
## 注意事项
1. 从对话记录中提取工作相关的信息,忽略闲聊内容
2. 使用简洁的语句,每条不超过两句话
3. 如果信息不足,主动询问用户补充
4. 时间格式使用 YYYY-MM-DD
测试Skill
Skill 文件创建后,重启 OpenClaw 使其生效:
openclaw restart
你可以通过 Dashboard 或已连接的聊天频道测试。发送包含触发关键词的消息,比如:
帮我生成今天的日报
如果 Skill 正常加载,AI 会按照你定义的格式和规则来响应。
查看当前已加载的所有 Skill:
openclaw skill list
这会列出所有 Skill 的名称、状态和触发词。
调试技巧
如果 Skill 没有按预期工作,可以尝试以下排查步骤:
1. 检查文件格式:
确保 YAML 前置元数据被正确的 --- 包裹,并且 YAML 语法正确。常见错误是缩进不对或引号不匹配。
2. 查看加载日志:
openclaw logs | grep -i skill
日志中会显示 Skill 的加载状态和可能的错误信息。
3. 验证触发词:
确认你发送的消息中包含了 trigger 字段定义的关键词。触发词匹配不区分大小写。
4. 逐步简化测试:
如果 Skill 很复杂,先把指令简化到最基础的版本,确认基本功能正常后再逐步添加复杂规则。
与MCP Server配合
Skill 可以与 OpenClaw 的 MCP Server 集成配合使用,让 AI 不仅能理解指令,还能调用外部工具执行操作。例如,你的日报 Skill 可以调用日历 MCP Server 来获取今天的会议安排,自动填充到日报中。这部分属于进阶用法,具体可以参考 OpenClaw官方文档 中的 MCP 章节。
总结
Skill 系统是 OpenClaw 最具扩展性的功能之一。通过简单的 Markdown 文件,你就能让 AI 助手掌握新的能力。从简单的翻译助手到复杂的工作流自动化,Skill 的可能性只受限于你的想象力。如果你开发了好用的 Skill,也欢迎到 OpenClaw GitHub仓库 分享给社区。更多信息请访问 OpenClaw。