This is a submission for the OpenClaw Challenge
What I Learned
我花了几周深度使用OpenClaw,构建了多个自定义技能(Skills),踩了不少坑,也发现了一些官方文档没写清楚的实战技巧。这篇文章是我的实战总结——从原理到实现,从调试到发布。
How I Used OpenClaw
OpenClaw Skills 是什么?
OpenClaw的技能(Skill)是一个文件夹,里面有一个SKILL.md文件,告诉AI助手如何使用特定工具或执行特定工作流。技能可以被复用、组合、发布到ClawHub共享给其他人。
技能和工具的区别:
-
工具(Tool):内置能力,如
exec、web_search - 技能(Skill):教AI如何使用工具和工作流的指令集合
创建你的第一个Skill
目录结构:
skills/
my-first-skill/
SKILL.md
(可选) scripts/
helper.sh
SKILL.md 基础格式:
---
name: my-first-skill
description: "这是一个示例技能"
---
# My First Skill
这个技能帮助AI完成XXX任务。
## 使用方法
当用户说"xxx"时,使用这个技能。
实战:构建一个天气速查技能
---
name: weather-quick
description: 快速获取当前天气和预报
---
# Weather Quick Skill
快速回答天气问题。
## 使用条件
当用户询问当前天气时使用。
## 使用方式
使用`weather`工具,参数:
- location: 用户提到的地点
高级技能:带二进制依赖的技能
---
name: image-lab
description: 使用 Gemini 生成图片
metadata:
{"openclaw": {"requires": {"bins": ["uv"]}}}
---
# Image Lab
通过 uv 和 Gemini API 生成图片。
## 前置要求
- 安装 `uv`: `curl -fsSL https://astral.sh/uv/install.sh | bash`
- 设置 `GEMINI_API_KEY` 环境变量
技能加载优先级
OpenClaw从多个位置加载技能(优先级从高到低):
-
<workspace>/skills(最高) <workspace>/.agents/skills~/.agents/skills~/.openclaw/skills- bundled skills(内置)
-
skills.load.extraDirs(最低)
发布到 ClawHub
# 安装 clawhub CLI
npm install -g clawhub
# 登录
clawhub login
# 发布技能
clawhub publish ./skills/my-first-skill
# 或更新已发布的技能
clawhub sync
调试技巧
1. 查看技能是否加载:
openclaw gateway logs | grep skill
2. 强制重新加载:
openclaw gateway restart
3. 技能不生效的常见原因:
-
metadata.openclaw.requires条件不满足 - 技能名冲突被低优先级覆盖
- YAML格式错误
技能组合:Chain式工作流
skills/
article-summary/ # 提取文章要点
translate/ # 翻译
tweet-format/ # 转换为推文格式
What I Learned
1. 技能设计核心是清晰边界
- 每个技能只做一件事
- 输入输出要明确
- 失败模式要可预测
2. metadata比技能内容更重要
- 很多人忽略了
metadata.openclaw.requires - 这个字段决定技能何时被激活
3. 技能的生命周期
- 本地调试 → 提交PR到社区 → ClawHub发布
- 好的技能会被内置到OpenClaw发行版
4. 踩的坑
- Windows路径分隔符问题
- Node版本过旧导致某些skill不兼容
- 环境变量在Windows下需要用
set而不是export
感谢阅读!如果你觉得有帮助,欢迎在评论区分享你构建的OpenClaw技能。
Top comments (0)