AI创想

标题: OpenClaw Skill 开发全攻略|2026 最新机制 + 文件处理实操,看完直接落地开发 [打印本页]

作者: AI小编    时间: 4 天前
标题: OpenClaw Skill 开发全攻略|2026 最新机制 + 文件处理实操,看完直接落地开发
作者:CSDN博客
OpenClaw Skill 开发全攻略|2026 最新机制 + 文件处理实操,看完直接落地开发

文章目录


OpenClaw 之所以能成为极具扩展性的开源 AI Agent,核心在于其 Skill 扩展机制。不同于传统 Agent 需通过严格 API 对接扩展功能,OpenClaw 的 Skill 仅需“文件夹 + 自然语言描述文件”就能实现——AI 能通过阅读描述自动理解何时调用、如何使用该技能,极大降低了开发门槛,哪怕是普通用户,也能轻松打造专属 AI 能力。
结合我实际开发和踩坑的经验,本文将从核心认知、开发流程、基础/进阶示例、社区发布等维度,完整拆解 OpenClaw 自定义 Skill 的开发全流程,帮你快速上手,少走弯路,真正把 AI 能力落地到日常使用中。
一、核心认知:什么是 OpenClaw Skill?

很多新手刚接触时,会把 Skill 想得很复杂,其实大可不必。OpenClaw 中的每个 Skill,本质就是一套“能力描述 + 执行逻辑”的组合包,简单说就是“告诉 AI 你能做什么、怎么做,它就会调用你”,核心特征可以总结为这几点,好记又实用:
二、Skill 开发核心原则(新手必看,避坑关键)

开发前先把这3个原则记牢,能帮你避开80%的坑,不用等到测试时才发现问题,返工耗时:
三、推荐开发流程(新手优先用户技能目录,最省心)

新手不用纠结复杂的配置,优先用“用户技能目录”(~/.openclaw/skills/)开发,步骤简单,全程用终端操作,3步就能搭建好技能的基础框架:

(, 下载次数: 0)


步骤 1:创建技能目录

先通过终端创建独立的技能文件夹,文件夹名称建议简洁,用小写字母+横杠,比如 my-weather-skill(天气查询技能),避免用中文或特殊符号,防止出现路径识别问题。具体命令如下,新手可以直接复制粘贴执行:
  1. # 1. 创建用户技能目录(若不存在则自动创建,不用担心重复执行报错)mkdir -p ~/.openclaw/skills/
  2. # 2. 创建具体技能文件夹(以“天气查询”技能为例,可替换为自己的技能名称)mkdir -p ~/.openclaw/skills/my-weather-skill
  3. # 3. 进入技能目录,准备编写SKILL.md和代码文件cd ~/.openclaw/skills/my-weather-skill
复制代码
步骤 2:编写核心文件(SKILL.md + 可选代码)

根据自己的需求选择开发方式:如果只是简单的查询、固定回复、基础文件操作,用纯 SKILL.md 就够了(新手入门首选);如果需要实现批量操作、调用外部 API、格式转换等复杂功能,再搭配 Python/TypeScript 代码,具体示例后面会详细说,跟着做就能上手。
步骤 3:测试验证(关键一步,避免发布后出问题)

技能写好后,一定要测试,不然不知道 AI 能不能正常调用。这里有个新手常踩的坑,记好:修改 SKILL.md 不用重启 Gateway,系统会自动监听文件变化,大概30秒内就能刷新;但修改代码文件(比如 agent.py)后,必须重启 Gateway,否则修改不会生效。具体测试步骤:
步骤 4:发布到社区(可选,分享你的技能)

如果技能测试稳定,没有bug,也想分享给其他用户使用,可以发布到 ClawHub(OpenClaw 官方技能市场),其他用户一键就能安装,不用再手动创建目录、编写文件,后面会详细说发布步骤。
四、基础示例:纯 SKILL.md 技能(新手入门首选,零代码)

很多新手看到“开发”就怕写代码,其实纯 SKILL.md 就能实现很多简单又实用的技能,比如查询、指令分发、保存聊天总结等。不用写一行代码,只要把 SKILL.md 写清楚,AI 会自动生成脚本执行,下面以“全球天气查询”技能为例,全程演示,新手可以直接复制修改使用。
1. 编写 SKILL.md 文件

在 my-weather-skill 目录下,创建 SKILL.md 文件,内容分为“固定元数据头”和“详细描述”两部分——元数据头是 AI 优先读取的信息,必须完整,详细描述则要写清技能的所有逻辑,具体内容如下,关键部分我加了注释,方便理解和修改:
  1. ---
  2. # 固定元数据头(必须完整,AI 优先读取,缺一不可)
  3. name: weather-query  # 技能唯一名称,小写字母+横杠,不要重复
  4. description: 查询全球主要城市实时天气,支持中文查询(含温度、天气状况、湿度、风力)  # 技能简短描述,让用户一眼知道能做什么
  5. version: 1.0.0  # 版本号,后续更新可升级,比如1.0.1
  6. author: 你的名字  # 填写自己的名字或昵称,发布到社区会显示
  7. permissions: 网络访问权限(用于调用天气 API)  # 技能所需权限,明确标注
  8. ---
  9. # Weather Query Skill(技能名称,可自定义,建议和name对应,更清晰)
  10. ## 1. Description(技能详细说明,让AI知道这个技能的具体作用)
  11. 当用户询问天气相关问题时,使用此技能查询实时天气数据,以清晰、友好的中文格式返回结果,不用多余的英文,帮助用户快速了解目标城市的天气情况,比如温度、天气状况、湿度、风力,必要时补充温馨提示。
  12. ## 2. When to use(触发场景:明确AI什么时候该调用这个技能,多举实际示例)
  13. - 用户说:“北京今天天气怎么样?”
  14. - 用户说:“上海明天会下雨吗?”
  15. - 用户说:“纽约当前温度是多少?”
  16. - 用户说:“成都后天的天气预报”
  17. - 用户说:“帮我查一下广州近 3 天的天气”
  18. - 用户说:“深圳今天热不热,需要穿外套吗?”  # 补充更贴近日常的指令
  19. ## 3. How to use(调用逻辑:教AI怎么使用这个技能,按步骤写,越清晰越好)
  20. 1. 从用户消息中提取2个核心信息,缺一不可:
  21.    - 目标城市(必须,比如“北京”“上海”“纽约”,如果是国外城市,优先用中文名称);
  22.    - 查询时间(可选,默认“今天”,支持“明天”“后天”“近3天”,超过3天提示“长期预报精度有限”);
  23. 2. 调用 OpenClaw 内置的天气查询工具,或公开的天气 API 获取实时数据(不用手动写API调用代码,AI会自动处理);
  24. 3. 整理数据并返回,格式固定,用户看着清晰:
  25.    - 开头明确“城市 + 时间”(比如“北京 2026年2月10日 天气”);
  26.    - 核心信息:温度(默认摄氏度,国外城市也用摄氏度,符合中文用户习惯)、天气状况(晴/雨/多云等)、湿度、风力;
  27.    - 结尾补充温馨提示(比如“今日有雨,建议带伞”“气温较低,注意保暖”);
  28. 4. 若未提取到城市,主动追问用户,语气友好,比如“请告诉我具体要查询的城市名称,我帮你查实时天气~”。
  29. ## 4. Edge cases(边缘场景:处理异常情况,避免技能执行失败,提升用户体验)
  30. - 模糊地点(如“家附近”“公司旁边”):回复“请告诉我具体城市名称,以便准确查询天气,比如北京、上海”;
  31. - 未支持城市(如小众县城、偏远地区):回复“暂不支持该城市的天气查询,建议尝试省会或主要城市,比如查询石家庄天气”;
  32. - 未来多天查询(如“深圳近一周天气”):优先返回未来3天概览,说明“长期预报精度有限,仅作参考”;
  33. - 无网络情况:回复“当前网络不可用,无法查询天气,请检查网络连接后重试哦”;
  34. - 输入错误(如“北京”“上嗨”):自动纠正,比如“你是不是想查北京的天气?我帮你查询北京的实时天气~”。
复制代码
2. 测试纯文本技能

纯 SKILL.md 技能测试很简单,新手跟着做,不用怕出错:
五、进阶示例:带 Python 代码的 Skill(实现复杂功能)

纯 SKILL.md 适合简单场景,但如果需要执行具体操作——比如生成文件、调用外部 API、批量处理文件、操作本地设备,就需要搭配代码实现了。Python 是最常用的,语法简单,适配性好,下面以“生成二维码”技能为例,演示“SKILL.md + Python 代码”的完整开发流程,新手也能跟着复刻。

(, 下载次数: 0)


1. 创建技能目录结构

带代码的技能,目录结构要规范一点,方便后续维护和发布,避免文件杂乱。以“生成二维码”技能为例,目录结构如下,新手可以直接照搬:
  1. ~/.openclaw/skills/generate-qr-code/  # 技能根目录,名称用小写字母+横杠
  2. ├── SKILL.md                     # 核心描述文件(必须有,和纯文本技能一致)
  3. ├── agent.py                     # Python 执行逻辑(核心代码文件,实现生成二维码的功能)
  4. └── references/                  # 辅助资源文件夹(可选,放示例图片、说明文档)
  5.     └── example-qr.png           # 示例二维码图片(用于说明技能效果,可选)
复制代码
2. 编写 SKILL.md(关联代码逻辑)

和纯文本技能的 SKILL.md 相比,带代码的技能需要多加一个“Implementation”部分,告诉 AI 什么时候调用代码、怎么调用、参数怎么对应,具体内容如下,可直接复制修改:
  1. ---
  2. name: generate-qr-code  # 技能唯一名称,和目录名称对应
  3. description: 生成二维码/条形码,支持文本、URL、WiFi 配置等内容,可自定义尺寸、颜色并指定保存路径
  4. version: 1.0.0
  5. author: 你的名字
  6. permissions: 文件写入权限(用于保存二维码图片)  # 生成二维码需要保存到本地,必须声明此权限
  7. ---
  8. # Generate QR Code Skill(生成二维码技能)
  9. ## 1. Description
  10. 当用户需要将文本、URL、WiFi 信息等转换为可视化二维码时,使用此技能生成二维码图片,并保存到指定路径(默认保存到桌面,适配 Windows/macOS/Linux 多系统),支持自定义尺寸和颜色,生成成功后告知用户保存路径,方便查找。
  11. ## 2. When to use(触发场景,多举日常使用示例,AI更容易识别)
  12. - 用户说:“帮我把 https://openclaw.ai 生成二维码”
  13. - 用户说:“生成一个包含 WiFi 信息的二维码,名称:MyWiFi,密码:12345678”
  14. - 用户说:“生成黑色二维码,内容是‘Hello OpenClaw’,保存到 D 盘根目录”
  15. - 用户说:“帮我做一个 400px 大小的二维码,内容是我的手机号 13800138000”
  16. - 用户说:“生成红色二维码,内容是‘2026项目会议纪要’,保存到桌面,尺寸 500px”
  17. ## 3. How to use(调用逻辑,明确什么时候调用代码,参数怎么提取)
  18. 1. 从用户消息中提取核心参数,区分必选和可选,避免遗漏:
  19.    - 必选:生成内容(文本/URL/WiFi 信息,WiFi 格式需为“WIFI:S:名称;T:类型;P:密码;;”,比如“WIFI:S:MyWiFi;T:WPA;P:12345678;;”);
  20.    - 可选:尺寸(默认 300px,范围 100-1000px,超出范围提示“尺寸建议在100-1000px之间”)、颜色(默认黑色,支持英文颜色名或十六进制色值,如 #FF0000 红色)、保存路径(默认桌面);
  21. 2. 若用户未指定可选参数,直接使用默认值,不用追问用户;
  22. 3. 调用 agent.py 中的 generate_qr 异步函数,将提取到的参数传入,执行生成操作(必须调用代码,AI 不单独执行生成逻辑);
  23. 4. 返回结果:生成成功后,告知用户二维码保存路径,比如“二维码生成成功!已保存到:~/Desktop/qr_code.png”;若生成失败,说明具体原因,比如“指定路径无写入权限,请更换保存路径(如桌面)”。
  24. ## 4. Implementation(代码关联说明,新手重点看,明确参数对应关系)
  25. - 依赖库:qrcode(生成二维码的核心库)、Pillow(图片处理,调整尺寸、颜色);
  26. - 核心函数:async def generate_qr(text: str, size: int = 300, color: str = "black", save_path: str = None);
  27. - 参数说明(和上面的提取参数对应,AI 会自动匹配):
  28.   - text:二维码内容(必选,不能为空,为空会返回失败提示);
  29.   - size:二维码尺寸(单位 px,默认 300,超出100-1000px范围会自动调整为300);
  30.   - color:填充颜色(默认 black,支持英文颜色名如 red、blue,或十六进制色值如 #FF0000);
  31.   - save_path:保存路径(默认桌面,文件名默认 qr_code.png,用户指定路径则按用户要求保存)。
  32. ## 5. Edge cases(边缘场景,覆盖常见错误,提升稳定性)
  33. - 内容为空:回复“请提供需要生成二维码的内容(如文本、URL、WiFi 信息),我马上为你生成”;
  34. - 保存路径无权限:回复“指定路径无写入权限,请更换保存路径(如桌面),或提升文件写入权限”;
  35. - 未安装依赖库:自动尝试安装 qrcode 和 Pillow,若安装失败,提示用户手动执行“pip install qrcode pillow”;
  36. - 特殊字符内容(如中文、特殊符号):自动过滤无效字符,确保二维码可正常识别,生成后提示用户“已过滤无效字符,二维码可正常扫描”;
  37. - 尺寸超出范围:回复“尺寸建议在100-1000px之间,已自动调整为默认300px,生成二维码”。
复制代码
3. 编写 Python 代码(agent.py)

核心是实现 generate_qr 异步函数(必须是 async 异步函数,否则 OpenClaw 调度会阻塞,导致技能执行失败),加入参数校验、异常捕获、多系统适配,代码里加了详细注释,新手能看懂每一步的作用,可直接复制使用,无需修改:
  1. import qrcode
  2. from PIL import Image
  3. import os
  4. import subprocess
  5. import sys
  6. # 自动安装依赖库(用户可能没安装qrcode和Pillow,避免手动安装麻烦,新手友好)definstall_dependencies():
  7.     required_packages =["qrcode","pillow"]for package in required_packages:try:__import__(package)# 检查库是否已安装except ImportError:# 自动安装缺失的库,终端会显示安装过程,用户可看到进度
  8.             subprocess.check_call([sys.executable,"-m","pip","install", package])
复制代码
原文地址:https://blog.csdn.net/haolove527/article/details/157655550




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