共计 1562 个字符,预计需要花费 4 分钟才能阅读完成。
背景介绍
OpenClaw 是一个低代码技能开发平台,允许开发者通过编写简单的配置文件来快速创建可复用的功能模块(称为 Skill)。skill.md 文件是定义这些功能模块的核心配置文件,采用 YAML 格式,包含了技能名称、描述、输入输出参数、API 端点等信息。通过 skill.md 文件,开发者可以轻松集成外部 API,而无需关心底层实现细节。

痛点分析
对于新手来说,创建自定义 skill 时常常会遇到以下问题:
- YAML 格式错误:由于缩进不正确或缺少必要字段,导致文件无法被正确解析。
- API 认证失败:未正确配置 OAuth2.0 或其他认证方式,导致 API 调用被拒绝。
- 参数映射错误:输入输出参数定义不匹配,导致数据无法正确传递。
实现步骤
skill.md 文件的标准结构解析
一个完整的 skill.md 文件通常包含以下几个部分:
- metadata:定义技能的基本信息,如名称、描述、版本等。
- input:定义技能的输入参数及其类型。
- output:定义技能的输出参数及其类型。
- endpoints:定义技能调用的外部 API 端点及其认证方式。
如何正确声明外部 API 端点
在 endpoints 部分,需要明确定义 API 的 URL、请求方法(GET/POST 等)、认证方式(如 OAuth2.0、API Key 等)以及请求头和请求体(如果需要)。
权限配置要点
如果 API 需要认证,务必在 skill.md 文件中正确声明认证方式。例如,对于 OAuth2.0 认证,需要提供 client_id、client_secret 和 token_url 等字段。
代码示例
以下是一个调用天气 API 的 skill.md 示例:
# skill.md
metadata:
name: weather_lookup
description: Fetches current weather data for a given location
version: 1.0.0
input:
- name: location
type: string
description: City name or ZIP code
required: true
output:
- name: temperature
type: number
description: Current temperature in Celsius
- name: conditions
type: string
description: Weather conditions (e.g., sunny, rainy)
endpoints:
- url: https://api.weatherapi.com/v1/current.json
method: GET
authentication:
type: api_key
key: key
value: YOUR_API_KEY
query_params:
q: "{{input.location}}"
验证方法
- 登录 OpenClaw 控制台,上传上述 skill.md 文件。
- 在技能列表中找到新上传的技能,点击“测试”按钮。
- 输入测试参数(如 location: “New York”),点击“运行”。
- 查看返回结果,确保 API 调用成功。
- 截图保存成功调用的界面。
避坑指南
- 速率限制处理 :许多 API 有调用频率限制,建议在代码中添加速率控制逻辑。
- 错误重试机制 :网络波动可能导致 API 调用失败,实现自动重试可以提高稳定性。
- 日志记录 :详细记录 API 调用日志,便于排查问题。
进阶建议
掌握基础技能后,可以尝试以下进阶内容:
- 学习如何编排多个技能以实现复杂功能。
- 探索 OpenClaw 平台的高级功能,如技能版本管理和发布流程。
- 了解如何通过 Webhook 实现实时事件触发。
动手实践
现在,尝试创建你自己的第一个技能吧!选择一个简单的 API(如天气预报、股票行情等),按照本文的步骤编写 skill.md 文件并上传到 OpenClaw 平台。成功后别忘了截图分享你的成果!
正文完
