OpenClaw Skill 开发进阶:从参数定义、文件打包到自动触发的完整链路 原创
温馨提示:
本文最后更新于 2026-10-27,已超过 1 天没有更新。
若文章内的图片失效(无法正常加载),请留言反馈或直接 联系我。
OpenClaw Skill 开发进阶:从参数定义、文件打包到自动触发的完整链路
OpenClaw 的技能(Skill)是把”反复要做的事”沉淀成可复用流程的核心机制。基础教程讲怎么建 SKILL.md,但真正让技能好用的是四个进阶点:参数约束、资源打包、技能搜索命中、自动触发。本文逐一打通。
一、SKILL.md 的结构与参数定义
一个技能的本质是一个目录,里面必须有 SKILL.md。进阶写法要善用参数与描述约束,让技能能被准确搜索和调用:
| 部分 | 作用 | 关键点 |
|---|---|---|
| name | 技能唯一标识 | 简短、语义化 |
| description | 技能用途描述 | 写清触发场景,供检索匹配 |
| 正文 | 步骤指令 | 步骤明确、可执行 |
---
name: "baostock"
description: "免费中国 A 股数据平台——支持 K 线、财务数据、行业分类查询,无需注册。用于股票数据查询。"
---
# 使用步骤
1. 读取配置
2. 调用 API
description 写得越贴近用户的实际表述,技能被 skills_search 命中的概率越高。
二、文件打包:技能目录的资源组织
技能不只是 Markdown,它可以携带脚本、配置、参考数据等资源。推荐的目录结构:
my-skill/
├── SKILL.md # 主指令
├── scripts/
│ └── run.py # 可执行脚本
├── templates/
│ └── report.md # 输出模板
└── assets/
└── data.json # 参考数据
相对路径要以 SKILL.md 所在目录为基准解析。这样技能是自包含的,复制到任意 OpenClaw 环境即可运行,不依赖外部路径。
三、技能搜索与命中优化
OpenClaw 通过 skills_search 检索技能。要让技能更容易被找到:
- 描述用用户语言:写用户会怎么问,而不是内部术语。
- 列出明确触发词:在 description 里包含”查询、生成、处理”等动作词。
- 避免泛化:一个技能只聚焦一类任务,太泛会分散命中率。
# 好的描述(贴近用户)
"当用户需要查询中国 A 股行情、获取股票 K 线、查看财务数据时使用。"
# 差的描述(太笼统)
"一个处理数据的技能。"
四、自动触发与工作流集成
进阶用法是把技能接入自动化:通过 cron 定时调度、心跳检测或子代理编排,让技能在特定时机自动运行。OpenClaw 的 automations 机制允许给技能配置定时触发。
# 定时触发技能示例(cron 表达式)
{kind: "cron", expr: "0 9 * * *", tz: "Asia/Shanghai", payload: {skill: "baostock"}}
配合子代理 sessions_spawn,还能让技能在隔离会话中并行执行,避免污染主上下文。
五、技能维护与版本
技能是普通文件(在 workspace/skills 或 .agents/skills 下),可随时用 skill_workshop 或直接编辑文件来更新。建议:
- 每次任务后把可复用的步骤回写到技能里。
- 把”踩过的坑”写进 SKILL.md 的注意项,避免下次重犯。
- 技能文件纳入版本控制,方便回滚。
小结
一个真正”好用”的 OpenClaw 技能,靠的不只是 SKILL.md 写得好,而是描述能命中、资源能打包、参数能约束、时机能自动。把这四条链路打通,技能就从”偶尔手动调用”升级为”随需自动涌现”的可靠能力。