当前位置: 首页 > news >正文

自定义技能开发 扩展 OpenClaw 能力

专栏:OpenClaw_AI 应用实战 第 18 篇
字数:约 9000 字
阅读时间:约 22 分钟
难度:⭐⭐⭐⭐ 中高级
更新时间:2026-04-01


写在前面

OpenClaw 内置功能不够用

❌ 受限情况: 用户:我想让 AI 帮我... AI: 抱歉,这个功能我不支持 (因为没有对应的技能)
✅ 自定义技能: 用户:我想让 AI 帮我... AI: 好的,我来处理 (因为开发了自定义技能)

这篇文章教你:如何开发自定义技能,扩展 OpenClaw 能力。


一、技能基础

1.1 什么是技能

**技能(Skill)**是 OpenClaw 中教 AI 如何使用工具的文档。

结构

skill-name/ ├── SKILL.md # 技能说明(必需) ├── scripts/ # 脚本文件(可选) ├── templates/ # 模板文件(可选) └── assets/ # 资源文件(可选)

1.2 技能位置

位置路径优先级
工作区技能~/.openclaw/workspace/skills/最高
本地技能~/.openclaw/skills/
内置技能OpenClaw 安装包内最低

1.3 技能加载

OpenClaw 启动 ↓ 扫描技能目录 ↓ 读取 SKILL.md ↓ 检查依赖(环境、工具) ↓ 加载到系统提示词 ↓ AI 可以使用技能

二、技能开发流程

2.1 创建技能目录

# 进入工作区cd~/.openclaw/workspace/skills/# 创建技能目录mkdir-pmy-custom-skill# 进入目录cdmy-custom-skill

2.2 编写 SKILL.md

--- name: my-custom-skill description: 我的自定义技能 --- # 技能说明 ## 功能描述 这个技能用于... ## 使用场景 - 场景 1 - 场景 2 ## 使用方法 当用户...时,执行以下步骤: 1. 步骤 1 2. 步骤 2 3. 步骤 3 ## 输出格式 ... ## 依赖 - Python 3.8+ - 工具:xxx

2.3 示例:天气查询技能

--- name: weather-query description: 查询任意城市的天气预报 metadata: {"openclaw": {"requires": {"env": ["WEATHER_API_KEY"]}}} --- # 天气查询技能 ## 功能 查询全球任意城市的天气预报,支持当前天气和未来 7 天预报。 ## 使用场景 - 用户询问天气 - 出行前查询天气 - 对比多个城市天气 ## 使用方法 当用户询问天气时,执行以下步骤: 1. **提取城市名** - 从用户问题中识别城市名称 - 如果未指定,使用用户当前位置 2. **调用天气 API** ```bash curl "https://api.weather.com/v1/current?city={city}&key={WEATHER_API_KEY}"
  1. 解析响应

    • 温度
    • 天气状况
    • 湿度
    • 风速
  2. 格式化输出

    🌤️ [城市名] 天气预报 - 温度:XX°C - 天气:XX - 湿度:XX% - 风速:XX m/s 更新时间:XXXX-XX-XX

输出格式

使用 emoji 和列表,清晰展示天气信息。

依赖

  • WEATHER_API_KEY 环境变量
  • curl 命令

示例

用户:北京天气怎么样?

AI:
🌤️ 北京天气预报

  • 温度:25°C
  • 天气:晴
  • 湿度:60%
  • 风速:3 m/s

更新时间:2026-04-01 10:00
“”"

### 2.4 添加脚本 ```python # scripts/query_weather.py import requests import os import sys def query_weather(city): """ 查询天气 Args: city: 城市名 """ api_key = os.environ.get("WEATHER_API_KEY") if not api_key: return {"error": "WEATHER_API_KEY 未配置"} url = "https://api.weather.com/v1/current" params = { "city": city, "key": api_key, "lang": "zh" } try: response = requests.get(url, params=params, timeout=10) response.raise_for_status() data = response.json() return { "city": data["city"], "temperature": data["temperature"], "condition": data["condition"], "humidity": data["humidity"], "wind_speed": data["wind_speed"], "update_time": data["update_time"] } except Exception as e: return {"error": str(e)} if __name__ == "__main__": if len(sys.argv) < 2: print("用法:python query_weather.py <城市名>") sys.exit(1) city = sys.argv[1] result = query_weather(city) if "error" in result: print(f"❌ 错误:{result['error']}") else: print(f"🌤️ {result['city']}天气预报") print(f"- 温度:{result['temperature']}°C") print(f"- 天气:{result['condition']}") print(f"- 湿度:{result['humidity']}%") print(f"- 风速:{result['wind_speed']} m/s")

2.5 更新 SKILL.md 引用脚本

--- name: weather-query description: 查询任意城市的天气预报 metadata: {"openclaw": {"requires": {"bins": ["python"], "env": ["WEATHER_API_KEY"]}}} --- # 天气查询技能 ## 功能 查询全球任意城市的天气预报。 ## 使用方法 当用户询问天气时: 1. 提取城市名 2. 执行脚本: ```bash python {baseDir}/scripts/query_weather.py {city}
  1. 解析输出,格式化展示

输出格式

🌤️ [城市名] 天气预报 - 温度:XX°C - 天气:XX - 湿度:XX% - 风速:XX m/s

依赖

  • WEATHER_API_KEY 环境变量
  • Python 3.8+
  • requests 库
    “”"
--- ## 三、高级技能开发 ### 3.1 多步骤技能 ```markdown --- name:>步骤 2:数据概览
python{baseDir}/scripts/data_overview.py

步骤 3:统计分析

python{baseDir}/scripts/statistical_analysis.py

步骤 4:生成可视化

python{baseDir}/scripts/generate_charts.py

步骤 5:生成报告

python{baseDir}/scripts/generate_report.py

输出格式

📊 数据分析报告 ## 数据概览 - 行数:XXX - 列数:XXX ## 统计信息 ... ## 可视化图表 [图表链接] ## 洞察发现 1. ... 2. ...

依赖

  • Python 3.8+
  • pandas, matplotlib, seaborn
    “”"
### 3.2 条件技能 ```markdown --- name: smart-reminder description: 智能提醒技能 metadata: {"openclaw": {"requires": {"bins": ["python"]}}} --- # 智能提醒技能 ## 功能 根据上下文智能设置提醒。 ## 使用方法 当用户提到需要提醒时: ### 判断场景 1. **如果是会议提醒** - 提取时间、地点、参会人员 - 调用日历 API - 设置提前提醒 2. **如果是任务提醒** - 提取任务内容、截止时间 - 添加到待办列表 - 设置优先级提醒 3. **如果是生日/纪念日** - 提取日期、事件 - 添加到日历 - 设置每年重复 ### 执行脚本 ```python python {baseDir}/scripts/create_reminder.py \ --type {reminder_type} \ --time {time} \ --content {content}

输出格式

✅ 提醒已设置 类型:{type} 时间:{time} 内容:{content} 提醒方式:{notification_method}

依赖

  • Python 3.8+
  • 系统通知权限
    “”"
### 3.3 组合技能 ```markdown --- name: content-publishing description: 内容发布技能 metadata: {"openclaw": {"requires": {"bins": ["python"], "env": ["CMS_API_KEY"]}}} --- # 内容发布技能 ## 功能 一键发布内容到多个平台。 ## 使用方法 当用户要发布内容时: ### 步骤 1:内容格式化 调用 `format-content` 技能 ### 步骤 2:SEO 优化 调用 `seo-optimizer` 技能 ### 步骤 3:生成配图 调用 `image-generator` 技能 ### 步骤 4:发布到平台 ```python python {baseDir}/scripts/publish.py \ --content {content} \ --platforms {platforms} \ --schedule {schedule}

步骤 5:确认发布

返回发布结果和链接

输出格式

✅ 内容已发布 平台: - 微信公众号:[链接] - 知乎:[链接] - 掘金:[链接] 发布时间:{time} 预计阅读:{read_time}

依赖技能

  • format-content
  • seo-optimizer
  • image-generator

依赖

  • Python 3.8+
  • CMS API Key
    “”"
--- ## 四、技能调试 ### 4.1 测试技能 ```bash # 1. 检查技能语法 openclaw skills check my-custom-skill/ # 2. 测试技能执行 openclaw skills test my-custom-skill --input "测试输入" # 3. 查看技能日志 openclaw skills logs my-custom-skill

4.2 常见问题

问题原因解决
技能不生效SKILL.md 格式错误检查 YAML frontmatter
依赖缺失环境变量未设置配置环境变量
脚本失败路径错误使用{baseDir}变量
权限问题文件无执行权限chmod +x script.py

4.3 调试技巧

# scripts/debug_skill.pyimportlogging# 配置日志logging.basicConfig(level=logging.DEBUG,format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',filename='skill_debug.log')logger=logging.getLogger(__name__)defmain():logger.info("技能执行开始")try:# 技能逻辑result=do_something()logger.info(f"技能执行成功:{result}")exceptExceptionase:logger.error(f"技能执行失败:{e}",exc_info=True)raiseif__name__=="__main__":main()

五、技能发布

5.1 发布到 ClawHub

# 1. 注册 ClawHub 账号# https://clawhub.com# 2. 初始化技能包cdmy-custom-skill clawhub init# 3. 填写元数据# clawhub.yaml:# name: my-custom-skill# version: 1.0.0# description: 我的自定义技能# author: Your Name# 4. 发布clawhub publish# 5. 查看发布状态clawhub status

5.2 技能版本管理

# 查看版本clawhub versions my-custom-skill# 发布新版本# 更新 clawhub.yaml 中的 versionclawhub publish--version1.1.0# 回滚版本clawhub rollback my-custom-skill--version1.0.0

5.3 技能分享

# 分享技能 ## 安装 ```bash clawhub install my-custom-skill

配置

exportMY_SKILL_API_KEY=xxx

使用

用户:使用 my-custom-skill 做 xxx

AI: 好的,我来处理…

--- ## 六、OpenClaw 集成 ### 6.1 技能管理命令 ```bash # 列出所有技能 openclaw skills list # 启用技能 openclaw skills enable my-custom-skill # 禁用技能 openclaw skills disable my-custom-skill # 更新技能 openclaw skills update my-custom-skill # 卸载技能 openclaw skills uninstall my-custom-skill

6.2 技能配置

// ~/.openclaw/openclaw.json { skills: { entries: { "my-custom-skill": { enabled: true, env: { "MY_SKILL_API_KEY": "xxx" }, config: { "timeout": 30, "retry": 3 } } } } }

总结

核心要点

  1. 技能结构:SKILL.md + 脚本 + 资源
  2. 开发流程:创建目录→编写 SKILL.md→添加脚本→测试
  3. 高级技能:多步骤、条件、组合
  4. 调试技巧:日志、测试命令
  5. 发布分享:ClawHub、版本管理
  6. 配置管理:环境变量、技能配置

技能开发时间

复杂度时间示例
简单30 分钟天气查询
中等2-4 小时数据分析
复杂1-2 天内容发布

下一步

下一篇:[OpenClaw 部署到服务器 24 小时在线](./19-OpenClaw 部署到服务器.md)

学习如何将 OpenClaw 部署到服务器,实现 24 小时在线。


互动环节

问题 1:你想开发什么自定义技能?

问题 2:开发技能时遇到过什么困难?

问题 3:有什么技能想分享给大家?

欢迎在评论区留言!


字数:约 9000 字
阅读时间:约 22 分钟
难度:⭐⭐⭐⭐ 中高级
发布时间:2026-04-01


本文是《OpenClaw_AI 应用实战》专栏的第 18 篇,共 20 篇。

http://www.cnnetsun.cn/news/1653157.html

相关文章:

  • 基于wsl2和快马平台构建企业级微服务架构,实战教程从零到部署
  • 快马AI助力:十分钟搭建openclaw局域网访问配置原型
  • 新手必看:在inscode上亲手实践openclaw更换ai模型的全过程
  • 从核心到系统:揭秘全国产V7-690T FPGA平台如何赋能算法验证与高速信号处理
  • 遗传算法在低碳冷链路径规划中的应用探索
  • HTML制作高效便捷的学生成绩查询分析工具
  • 类OpenClaw智能体优选指南,企业级+个人级全覆盖
  • 多部门档案混乱?档案宝支持权限与审批全流程控制
  • 公共数据库 | 呼吸科SCI论文好指标---保存比率受损肺功能测试(PRISm)
  • 4个关键步骤完美解决Magic Trackpad在Windows 11的手势兼容难题
  • 告别卡顿!用z-paging虚拟列表优化Uni-app长列表,Tab切换丝滑回顶方案
  • 多目标白鲸优化算法MOBWO 在9个多目标测试函数中测试 Matlab语言 程序已调试好,可直接运行
  • 紫微AI流限全周期解析:易经推命+64卦命理工具推荐
  • Windows Defender完全移除:系统优化工具的4种策略与实施指南
  • H-Player V2:5分钟打造你的专属视频播放平台终极指南
  • 深度剖析:抖音直播数据采集的3大核心技术突破
  • Nomic-Embed-Text-V2-MoE在软件测试中的应用:自动化生成测试用例描述
  • 解放双手!用Windows搭建闲鱼0成本“赚米神器”!AI客服秒回复!
  • 别再为跨域发愁了!手把手教你配置Vite Proxy,5分钟搞定开发环境联调
  • 用友U8二次开发工具KK-FULL-EFWeb实战:从配置到单据提交全流程解析
  • intv_ai_mk11部署案例:CSDN GPU云环境下intv_ai_mk11与其他7B模型(Qwen/Qwen2)性能横向对比
  • 用DeepSeek写论文AI率太高这样处理最快
  • 避开这些坑!STM32智能交通灯项目中的传感器选型与数据上传实战
  • 暗黑破坏神2存档修改工具:Diablo Edit2完全指南
  • 语雀文档批量导出工具:一站式自动化迁移解决方案
  • RVC变声器实战终极指南:16个核心问题完整解决方案
  • PyTorch 2.8镜像行业落地:广告公司基于Diffusers实现创意海报→视频自动转化
  • HGTector:水平基因转移精准检测与智能分析的完整解决方案
  • 实战应用:基于快马AI快速开发电商商品智能搜索下拉框
  • 链表遍历的 Cache 陷阱