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 检索技能。要让技能更容易被找到:

  1. 描述用用户语言:写用户会怎么问,而不是内部术语。
  2. 列出明确触发词:在 description 里包含”查询、生成、处理”等动作词。
  3. 避免泛化:一个技能只聚焦一类任务,太泛会分散命中率。
# 好的描述(贴近用户)
"当用户需要查询中国 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 或直接编辑文件来更新。建议:

  1. 每次任务后把可复用的步骤回写到技能里。
  2. 把”踩过的坑”写进 SKILL.md 的注意项,避免下次重犯。
  3. 技能文件纳入版本控制,方便回滚。

小结

一个真正”好用”的 OpenClaw 技能,靠的不只是 SKILL.md 写得好,而是描述能命中、资源能打包、参数能约束、时机能自动。把这四条链路打通,技能就从”偶尔手动调用”升级为”随需自动涌现”的可靠能力。