一文带你掌握openclaw skill开发的详细教程
OpenClaw 的 Skill 本质上是给 AI Agent 看的“任务说明书 + 工具包”,核心是一个包含 SKILL.md的目录。它不需要复杂的编译,主要靠 Markdown 指令引导 Agent 调用系统工具(如 exec、browser、web_fetch)或自定义脚本。
以下是详细的开发教程:
前置准备
- 已安装并运行 OpenClaw(Gateway 正常启动)。
- 熟悉基础命令行与 YAML/Markdown 语法。
- 知道你的技能目录位置,通常是
~/.openclaw/workspace/skills/。
Skill 标准结构
一个典型的 Skill 目录如下,SKILL.md是唯一必需的文件:
my-custom-skill/
├── SKILL.md # 核心指令(元数据+YAML frontmatter+Markdown正文)
├── scripts/ # 可选:Shell/Python/Node.js 执行脚本
│ └── run.sh
├── references/ # 可选:API文档、详细参考,按需加载节省 Token
└── assets/ # 可选:静态资源
编写核心文件 SKILL.md
这是 Skill 的灵魂,分为 **Frontmatter(元数据)** 和 **Markdown 正文(指令)** 两部分。
YAML Frontmatter(头部元数据)
放在文件顶部,用 ---包裹,定义技能的“身份”与“触发条件”:
---
name: hello-world # 技能名,小写kebab-case,与文件夹名一致
description: 当用户需要打招呼或说hello时使用的简单演示技能
trigger: "打招呼|hello|hi|问好" # 触发词(关键词或正则),AI据此激活技能
tools: [exec, browser] # 声明本技能需要用到的系统工具
version: 1.0.0
author: yourname
config: # 可选:需要的配置项(如API Key)
API_KEY:
type: string
required: true
---- name:必须唯一,仅含小写字母、数字、短横线。
- trigger:不写则需用户显式指定;写
"*"表示全局常驻;也可写正则/^deploy .+ to (staging|prod)$/i。
Markdown 正文(给 AI 的指令)
Frontmatter 之后写具体内容,像给同事下达任务一样清晰:
# Hello World 技能 ## 何时使用 当用户请求问候、说“你好”、“hello”或需要测试连接时使用此技能。 ## 执行步骤 1. 使用 `echo` 工具(或 exec 运行 `echo`)输出:"Hello from your custom skill! 🚀" 2. 如果是中文语境,额外输出当前日期。 ## 输入/输出 - 输入:无特定参数 - 输出:一段友好的问候语字符串 ## 注意事项 - 不要执行任意用户输入的代码,仅输出固定问候。 - 保持输出简洁。
(可选)编写执行脚本
如果逻辑复杂,可在 scripts/下放脚本,在 SKILL.md 里指示 Agent 调用:
#!/bin/bash # scripts/fetch_news.sh CATEGORY=$1 curl -s "https://news.example.com/api/$CATEGORY" | jq '.[].title'
在 SKILL.md 正文中写明:运行 node scripts/fetch_news.js tech 获取科技新闻。确保脚本有执行权限 (chmod +x)。
加载与测试
放置目录:将 my-custom-skill放入 ~/.openclaw/workspace/skills/。
刷新/重启:让 Agent 发现新技能,执行 openclaw gateway restart或在聊天中说“刷新技能”。
验证列表:运行 openclaw skills list确认状态为 ready。
测试触发:
- 发送消息:“跟我打个招呼”
- 或用命令行测试:
openclaw agent --message "give me a greeting"。
本地调试(SDK 模式):若用 TypeScript/JS SDK 开发,可用 clawhub dev模拟调用。
进阶与发布
Workshop 提案:可用 openclaw skills workshop propose-create让 AI 辅助审查再落地。
发布到 ClawHub:登录 clawhub login后执行 clawhub publish,需确保 SKILL.md完整且无硬编码密钥。
安全建议:使用 exec工具时严防命令注入;敏感信息(API Key)通过 env或 openclaw.json5的 config注入,勿写死在文件里。
最佳实践总结
- 描述精准:
description和trigger决定 AI 会不会用,关键词要覆盖全。 - 指令明确:写“做什么、按什么顺序、输出什么格式”,减少歧义。
- Token 优化:重内容放
references/,SKILL.md只留核心流程。 - 单一职责:一个 Skill 专注一件事(如“查天气”而非“查天气+发邮件”)。
OpenClaw 查天气 Skill 完整示例
下面我写一个简单的例子:
下面给你一个可直接用的 OpenClaw 查天气 Skill 完整示例,包含 SKILL.md+ 脚本 + 配置说明,适合新手直接复制跑通。
Skill 目录结构
weather/
├── SKILL.md
├── scripts/
│ └── get_weather.sh
└── references/
└── open-meteo-api.md
只需要 SKILL.md+ scripts/get_weather.sh就能运行
references/仅用于给 AI 查阅 API 文档,节省 Token
SKILL.md(核心文件)
路径:~/.openclaw/workspace/skills/weather/SKILL.md
---
name: weather
description: 查询城市当前天气和未来预报,支持中文城市名自动解析经纬度
trigger: "天气|气温|下雨|forecast|weather|查天气"
tools: [exec]
version: 1.0.0
author: you
config:
UNITS:
type: string
default: "metric"
description: "metric(摄氏度) 或 imperial(华氏度)"
---
# Weather 天气查询技能
## 何时使用
当用户询问某个城市的天气、气温、是否下雨、未来几天天气时使用本技能。
## 执行流程
1. **解析城市**
- 如果用户给出的是中文城市名(如“北京”),先使用 geocoding API 转换为经纬度。
- 接口示例:
geocoding-api.open-meteo.com/v1/search?n…北京&count=1
2. **调用天气 API**
- 使用 Open-Meteo(无需 API Key)
- 基础 URL:
api.open-meteo.com/v1/forecast
- 必须参数:
- latitude
- longitude
- current_weather=true
- hourly=temperature_2m,precipitation_probability
- timezone=auto
3. **运行脚本**
- 调用本地脚本获取天气数据:
bash scripts/get_weather.sh "城市名"
- 示例:
bash scripts/get_weather.sh "Beijing"
bash scripts/get_weather.sh "东京"
4. **输出规范**
- 使用自然语言总结,不要直接输出 JSON
- 至少包含:
- 城市名
- 当前气温
- 天气状况(晴 / 雨 / 阴等)
- 降水概率
- 风速
- 示例输出:
> 北京当前气温 22°C,晴朗,降水概率 10%,风速 12 km/h。
## 错误处理
- 若城市无法解析:提示用户检查城市名称拼写
- 若 API 超时:提示“暂时无法获取天气数据,请稍后重试”
## 参考
- API 详细字段说明见 `references/open-meteo-api.md`scripts/get_weather.sh(执行脚本)
路径:~/.openclaw/workspace/skills/weather/scripts/get_weather.sh
#!/bin/bash
set -euo pipefail
CITY="$1"
# 1. 地理编码
GEO=$(curl -s "https://geocoding-api.open-meteo.com/v1/search?name=${CITY}&count=1")
LAT=$(echo "$GEO" | jq -r '.results[0].latitude // empty')
LON=$(echo "$GEO" | jq -r '.results[0].longitude // empty')
NAME=$(echo "$GEO" | jq -r '.results[0].name // empty')
if [[ -z "$LAT" || -z "$LON" ]]; then
echo "❌ 无法找到城市:$CITY"
exit 1
fi
# 2. 获取天气
WEATHER=$(curl -s "https://api.open-meteo.com/v1/forecast?latitude=$LAT&longitude=$LON¤t_weather=true&hourly=temperature_2m,precipitation_probability&timezone=auto")
TEMP=$(echo "$WEATHER" | jq -r '.current_weather.temperature')
WIND=$(echo "$WEATHER" | jq -r '.current_weather.windspeed')
CODE=$(echo "$WEATHER" | jq -r '.current_weather.weathercode')
RAIN=$(echo "$WEATHER" | jq -r '.hourly.precipitation_probability[0]')
# 3. 天气代码映射
case $CODE in
0) COND="晴朗" ;;
1|2|3) COND="多云" ;;
45|48) COND="雾" ;;
51|53|55) COND="小雨" ;;
61|63|65) COND="雨" ;;
71|73|75) COND="雪" ;;
95|96|99) COND="雷暴" ;;
*) COND="未知" ;;
esac
# 4. 输出
echo "${NAME} 当前气温 ${TEMP}°C,${COND},降水概率 ${RAIN}%,风速 ${WIND} km/h。"
赋予执行权限:
chmod +x ~/.openclaw/workspace/skills/weather/scripts/get_weather.sh
references/open-meteo-api.md(可选)
# Open-Meteo API 说明 ## 地理编码 GET https://geocoding-api.open-meteo.com/v1/search?name=城市名 返回字段: - results[0].latitude - results[0].longitude - results[0].name ## 天气预报 GET https://api.open-meteo.com/v1/forecast 常用参数: - latitude - longitude - current_weather=true - hourly=temperature_2m,precipitation_probability - timezone=auto 天气代码(weathercode): - 0: 晴朗 - 1–3: 多云 - 45,48: 雾 - 51–55: 小雨 - 61–65: 雨 - 71–75: 雪 - 95+: 雷暴
加载 & 测试
重启 Gateway
openclaw gateway restart
查看技能状态
openclaw skills list
聊天中测试
查一下上海的天气
预期输出示例:
上海 当前气温 26°C,多云,降水概率 20%,风速 14 km/h。
常见增强方向(进阶)
你可以继续扩展这个 Skill:
- 支持未来 3~7 天预报(
daily=) - 自动识别用户所在城市(IP → 经纬度)
- 多语言输出(中 / 英)
- 封装为 HTTP skill(OpenClaw 的
http工具) - 发布到 ClawHub:
clawhub publish
调试小技巧
手动测试脚本:
./scripts/get_weather.sh "Beijing"
查看 Agent 实际调用命令(Gateway 日志)
若 AI 不触发 Skill,检查:
trigger是否覆盖用户说法- Skill 是否在
skills list中显示为ready
到此这篇关于一文带你掌握openclaw skill开发的详细教程的文章就介绍到这了,更多相关openclaw skill开发内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!
相关文章
很多人第一次听到 OpenClaw Skill,会把它理解成“插件”, 这个理解只对了一半, 插件通常给 Agent 增加新的能力,比如新的工具、新的消息渠道、新的模型 Provider,下面我2026-06-23
为 OpenClaw开发自定义 Skills,就像是给它装上能按你心意干活的新“手脚”,这个过程比你想象的要简单,只要遵循一定的规范和流程,即便是新手也能在短时间内开发出第一个2026-05-20
本文介绍了OpenClawSkills的概念、获取途径、安装方式、推荐Skills及配置方法,通过ClawHub官网、GitHub仓库等获取Skills,使用ClawHubCLI或OpenClawCLI安装,文章还提供了安2026-05-18
OpenClaw实操指南之6个最值得优先安装的基础元技能Skill
本文介绍了OpenClaw系统中6个最值得优先安装的基础元技能,这些技能专注于管理和扩展OpenClaw本身的功能,包括find-skills,skill-creator,mcp-builder,skill-vetter,web2026-05-14
OpenClaw到底能做什么?有什么用?推荐你先装这几个实用的Skills
Skills其本质是一种更高层次的模块化能力封装,核心作用是扩展智能体(如 OpenClaw)的功能边界、提升任务执行的专业性和效率,这篇文章主要介绍了OpenClaw到底能做什么以及有2026-05-11
Skill 是 OpenClaw 的核心扩展机制,通过编写一个 SKILL.md 文件,你就能教会 AI Agent 新的能力,本文将和大家分享8个常用的openclaw Skill,感兴趣的小伙伴可以跟随小编一2026-04-22
本文介绍了OpenClaw技能(Skill)的开发、部署、和ClawHub发布流程,包括Skill目录结构、frontmatter规范、本地开发与测试、打包进应用、以及上传ClawHub的方法,感兴趣的可以2026-04-17
OpenClaw Skills安装与实战:打造你的AI技能工具箱
这篇文章主要为大家详细介绍了如何使用 ClawHub 安装和管理 OpenClaw 技能包,并通过实战案例演示多个技能的协同使用,文中的示例代码讲解详细,感兴趣的小伙伴可以参考一下2026-04-07
OpenClaw开发Agent Skills最常见的12种错误和对应的解决方案
作者记录了使用 OpenClaw 开发 Agent Skills 时踩过的 12 个常见报错坑,并整理了完整解决方案,适合正在使用 OpenClaw 遇到问题的开发者参考2026-04-07
本文详细介绍了OpenClaw的Skill机制,包括什么是Skill、Skill的目录结构、SKILL.md的核心格式、以及五种不同类型的Skill,还提供了开发最佳实践、安全检查清单和本地测试指南2026-04-02












最新评论