AI创想

标题: OpenClaw Skills 开发指南 [打印本页]

作者: 米落枫    时间: 4 小时前
标题: OpenClaw Skills 开发指南
作者:CSDN博客
本文面向技术人员,讲解如何从零开发一个 OpenClaw Skill
一、Skill 是什么?
Skill 是 OpenClaw 的可插拔任务指令集。它让 Agent 能够处理特定领域的任务。
一个 Skill 就是一个文件夹,包含:
my-skill/
                        ├── SKILL.md          #
核心配置文件(必须有)
                        ├── assets/           # 静态资源目录(可选)
                        ├── scripts/          # 辅助脚本(可选)
                        └── config.json       # 额外配置(可选)

二、SKILL.md 结构详解
SKILL.md 是 Skill 的核心,必须包含:
YAML
---
                        name: skill-name
                        description:
技能简短描述
                        metadata:              # 可选,元数据
                          author: 作者名
                          version: 1.0.0
                        triggers:             # 可选,触发关键词
                          - 关键词1
                          - 关键词2
                        priority: 100        # 可选,优先级(越高越优先匹配)
                        ---

                        # 技能详细说明

                        这里是技能的详细文档,用 Markdown 格式编写...

2.1 name(必填)
技能的名称,用于内部标识。建议使用英文+连字符格式:

2.2 description(必填)
简短描述,会被注入到 Agent 的 Skills Prompt 中。建议 1-2 句话。
2.3 triggers(可选)
触发关键词列表。当用户消息包含这些关键词时,Agent 会更倾向于使用这个 Skill。
2.4 priority(可选)
优先级,数值越大越优先。默认 50。
三、SKILL.md 主体内容
主体内容是自然语言指令,告诉 Agent 如何执行任务。
3.1 基本结构
Markdown
# Skill 名称

                        ## 概述
                        简述这个技能做什么。

                        ## 使用场景
                        - 场景1
                        - 场景2

                        ## 执行步骤
                        1. 第一步
                        2. 第二步
                        3. 第三步

                        ## 注意事项
                        - 注意1
                        - 注意2

3.2 指令编写技巧
1. 明确工具调用
Markdown
当需要获取网页内容时,必须使用 web_fetch 工具:
                        - 工具名:web_fetch
                        - 参数:url(目标URL)

2. 定义输出格式
Markdown
结果必须以 JSON 格式输出:
                        {
                          "field1": "value1",
                          "field2": "value2"
                        }

3. 条件分支
Markdown
根据不同情况处理:
                        - 如果是 X,执行 A
                        - 如果是 Y,执行 B
                        - 否则,执行 C

四、实战示例:开发一个 "天气查询" Skill
4.1 创建目录结构
weather-skill/
                        ├── SKILL.md
                        └── assets/

4.2 编写 SKILL.md
YAML
---
                        name: weather-query
                        description:
查询指定城市的天气信息
                        triggers:
                          - 天气
                          - weather
                          - 温度
                        priority: 80
                        ---

                        # 天气查询技能

                        ## 概述
                        当用户询问某地的天气时,使用此技能进行查询。

                        ## 支持的功能
                        - 查询城市当前天气
                        - 查询未来几天的天气预报
                        - 获取温度、湿度、风力等信息

                        ## 执行步骤

                        1. **解析用户意图**
                           - 提取用户想要查询的城市名称
                           - 如果用户没有指定城市,询问用户

                        2. **获取天气数据**
                           - 使用 web_search 工具搜索 "[城市名] weather today"
                           - 从搜索结果中提取关键天气信息

                        3. **格式化输出**
                           - 温度(摄氏度/华氏度)
                           - 天气状况(晴/阴/雨等)
                           - 湿度和风力

                        4. **回复用户**
                           - 用友好的语气回复
                           - 适当添加 emoji

                        ## 注意事项
                        - 如果搜索不到结果,诚实地告诉用户
                        - 单位默认使用摄氏度

4.3 安装 Skill
将文件夹放入 OpenClaw 的 skills 目录:
~/.openclaw/skills/weather-skill/
五、实战示例:开发一个 "股票查询" Skill
5.1 SKILL.md
[table][tr][td]YAML
---
                        name: stock-query
                        description:
查询股票价格、涨跌幅和基本信息
                        triggers:
                          - 股票
                          - stock
                          - 股价
                        priority: 90
                        ---

                        # 股票查询技能

                        ## 功能
                        - 查询股票当前价格
                        - 查询涨跌幅
                        - 查询基本信息(市值、PE等)

                        ## 支持的市场
                        - 美股:Apple, Tesla, NVDA 等
                        - 港股:腾讯、阿里等

                        ## 执行流程

                        1. **识别股票代码**
                           - 如果用户输入公司名,转换为股票代码
                           - 例如:"苹果" -> "AAPL"

                        2. **获取股票数据**
                           - 使用 web_search 搜索 "[股票代码] stock price"

                        3. **解析并展示**
                           - 当前价格
                           - 涨跌幅(绝对值和百分比)
                           - 开盘价、最高价、最低价

                        4. **趋势判断**
                           - 简单分析涨跌幅
                           - 给出 neutral/ bullish/ bearish 简要判断

                        ## 输出示例

                       




欢迎光临 AI创想 (https://www.llms-ai.com/) Powered by Discuz! X3.4