在 AI 助手时代,Skill(技能) 是让 AI 从“通用聊天机器人”进化为“专属数字员工”的关键。OpenClaw 的 Skill 系统设计极其优雅,它不需要复杂的编程,只需要一份清晰的 Markdown 说明书,就能让 AI 掌握特定领域的专业知识或自动化流程。
本文将手把手教你如何从零开始创建你的第一个 OpenClaw Skill。
一、核心认知:Skill 的本质
在 OpenClaw 中,Skill 不是传统意义上的代码插件,而是一份 AI 能看懂的“标准操作程序”(SOP)。它通常包含以下核心文件:
- SKILL.md (必需):技能的“身份证”和“说明书”,告诉 AI 这个技能是什么、怎么用。
- scripts/ (可选):存放可执行脚本(如 Python、Bash),用于处理复杂逻辑。
- references/ (可选):存放详细的参考文档,供 AI 在需要时查阅。
二、实战:创建“天气查询”技能
让我们通过一个具体的例子来学习。我们将创建一个名为 weather-query的技能,让 AI 能够查询任意城市的天气。
第一步:创建技能目录
首先,你需要创建一个独立的目录来存放你的技能。OpenClaw 支持两种存放位置:
- 全局技能(所有项目可用):存放在用户主目录下。
- 项目技能(仅当前项目可用):存放在工作区目录下。
这里我们以全局技能为例:
# 创建技能目录
mkdir -p ~/.openclaw/skills/weather-query
cd ~/.openclaw/skills/weather-queryCode language: PHP (php)
第二步:编写核心文件 SKILL.md
这是最关键的一步。在目录中创建 SKILL.md文件,内容如下:
---
name: weather-query
description: |
查询指定城市的实时天气信息。
触发条件:用户询问天气、查询温度、天气预报。
关键词:天气、温度、预报、weather。
---
# 天气查询技能
## 功能描述
本技能用于查询指定城市的实时天气状况,包括温度、湿度、天气状况和未来几天的预报。
## 使用场景
- 用户说:“查询北京的天气”
- 用户说:“今天上海温度多少”
- 用户说:“帮我看看未来三天的天气”
## 执行流程
1. **解析城市**:从用户输入中提取城市名称(如“北京”、“上海”)。
2. **调用 API**:使用 `web_search` 工具搜索该城市的实时天气数据。
3. **格式化输出**:将搜索结果整理成易读的格式,包含温度、天气状况和预报。
## 注意事项
- 如果用户未指定城市,请主动询问具体城市。
- 如果搜索结果为空,请提示用户检查城市名称是否正确。
- 输出时请使用中文,并保持格式清晰。Code language: PHP (php)
关键字段解析:
- name:技能的标识符,建议使用小写字母和连字符。
- description:这是 AI 判断是否触发该技能的依据。你需要在这里尽可能多地覆盖用户可能使用的关键词和触发场景。
第三步:编写辅助脚本(可选)
如果你的技能逻辑比较复杂,或者需要调用外部 API,可以编写脚本文件。例如,创建一个 scripts/weather.py文件:
#!/usr/bin/env python3
import sys
import requests
def get_weather(city):
# 这里可以调用真实的天气 API,如和风天气、OpenWeatherMap 等
# 示例代码,实际使用时请替换为真实的 API 调用
print(f"正在查询 {city} 的天气...")
# 模拟返回数据
return {
"city": city,
"temperature": "25°C",
"condition": "晴",
"humidity": "60%"
}
if __name__ == "__main__":
city = sys.argv[1] if len(sys.argv) > 1 else "北京"
result = get_weather(city)
print(result)Code language: PHP (php)
然后在 SKILL.md中引用这个脚本:
## 执行命令
如需精确数据,请执行以下命令:
bash
python scripts/weather.py --city "北京"Code language: PHP (php)
第四步:加载与测试
OpenClaw 支持热加载,你不需要重启服务。只需在下次对话时,直接对 AI 说:
“查询北京的天气”
如果 AI 识别到了你的技能,它会自动读取 SKILL.md中的指令并执行。如果未识别,你可以尝试使用 /reload-skills命令强制重新加载技能列表。
三、进阶技巧:让技能更强大
1. 配置环境变量
如果你的技能需要 API Key 等敏感信息,千万不要硬编码在文件中。OpenClaw 支持通过环境变量传递配置。你可以在 ~/.openclaw/openclaw.json中配置:
{
"skills": {
"entries": {
"weather-query": {
"enabled": true,
"env": {
"WEATHER_API_KEY": "your_api_key_here"
}
}
}
}
}Code language: JSON / JSON with Comments (json)
2. 定时任务
OpenClaw 支持 Cron 定时任务。你可以在 SKILL.md中添加定时触发条件,让 AI 自动在特定时间执行任务,例如“每天早上 9 点推送天气”。
3. 错误处理
在 SKILL.md中明确写出“如果出错怎么办”,例如“如果网络超时,请重试一次”或“如果 API 返回错误,请提示用户稍后再试”。
四、总结
创建 OpenClaw Skill 的核心逻辑是 “把流程说清楚”。你不需要成为编程专家,只需要像写一份操作手册一样,清晰地告诉 AI:
- 什么时候用(触发条件)
- 怎么做(执行步骤)
- 输出什么(结果格式)
通过这种方式,你可以快速将个人经验、团队流程或行业知识封装成 AI 技能,实现真正的“知识复用”和“自动化办公”。
现在,去创建你的第一个 Skill,让 AI 成为你的得力助手吧!




发表回复