如何创建 OpenClaw 的 Skill:从零到一打造专属 AI 能力

在 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:

  1. 什么时候用(触发条件)
  2. 怎么做(执行步骤)
  3. 输出什么(结果格式)

通过这种方式,你可以快速将个人经验、团队流程或行业知识封装成 AI 技能,实现真正的“知识复用”和“自动化办公”。

现在,去创建你的第一个 Skill,让 AI 成为你的得力助手吧!

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注