用 OpenClaw 做自动化的过程中,我遇到了一个典型需求:每天早上自动搜集技术热点,生成中文摘要日报,推到 Slack 频道。
OpenClaw 本身没有这个功能。但翻了文档之后,我发现它有一套能力扩展机制叫 Skill,而且这套机制的设计颇有意思——它是基于 Markdown 文件的,不需要写代码编译,不需要发布到某个 registry,甚至不需要重启服务。一个 SKILL.md 文件就够了。
这篇文章我打算从协议层面拆解 Skill 的设计原理,然后通过一个完整的实战案例(每日技术日报)来演示开发全过程。如果你对 AI Agent 的扩展机制感兴趣,或者想搞清楚”Markdown 怎么就能当插件用”,这篇应该能回答你的问题。
Skill 是 OpenClaw 中 AI Agent 的能力扩展单元。从形式上看,它是一个包含 文件的目录。从功能上看,它是一份写给 Agent 的 结构化操作手册。
和传统的代码插件相比:
本质区别在于:传统插件是告诉机器”怎么做”,Skill 是告诉 AI Agent”应该做什么”。Agent 拿到指令后,自行决定如何调用底层工具来完成。
Skill 的加载采用渐进式设计,分三层:
基础层:元数据(常驻)
约 100 词,始终在 Agent 的上下文中。Agent 通过扫描所有 Skill 的元数据来决定当前请求该触发哪个 Skill。
第二层:SKILL.md 正文(触发时加载)
只有当 Agent 决定使用某个 Skill 时,才会读取其正文。建议控制在 500 行以内。
第三层:附属资源(按需加载)
、、 等目录中的文件,Agent 在执行过程中根据需要读取。
这种设计的目的是保护上下文窗口——Agent 的上下文是稀缺资源,不能把几十个 Skill 的内容全部塞进去。
GPT plus 代充 只需 145
各目录职责:
- scripts/:存放需要确定性执行的脚本。典型场景是那些 Agent 每次都会重写且逻辑固定的操作。脚本可以被 Agent 直接执行,不需要加载到上下文中。
- references/:参考文档。比如 API 文档、数据源配置。Agent 在需要时才读取,避免一次性占满上下文。如果文件超过 100 行,建议在文件头部加目录。
- assets/:输出用的资源文件。Agent 不读取其内容,而是直接在输出中引用。比如报告模板、品牌图标。
注意:不要在 Skill 中创建 README.md、CHANGELOG.md 之类的辅助文件。Skill 的目标读者是 AI Agent,不是人类开发者。
SKILL.md 以 YAML frontmatter 开头,包含两个必要字段:
name 的规范:
- 只用小写字母、数字和连字符
- 长度不超过 64 个字符
- 推荐动词前导的描述性命名,如 、
description 是关键中的关键:
- 它是 Agent 判断是否触发 Skill 的核心依据
- 要同时说明”做什么”和”什么时候用”
- 尽可能覆盖用户可能的各种表述方式
- 不要把”什么时候用”写在正文里——正文只在触发后才加载,写了也没用
正文是标准 Markdown,写给 Agent 的操作指令。风格建议用祈使句。
推荐结构:
GPT plus 代充 只需 145
正文的核心目标是:Agent 读完这段内容后,能独立完成任务。不需要多余的背景介绍,不需要”为什么要做这个”,直接告诉它”怎么做”。
每天早上自动搜索技术热点,生成中文日报,推送到 Slack 频道。
GPT plus 代充 只需 145
📰 技术日报 | YYYY-MM-DD
…
💡 由 OpenClaw 自动生成
bash scripts/generate_digest.sh
GPT plus 代充 只需 145
:
GPT plus 代充 只需 145
放好后,OpenClaw 在下次会话自动加载。不需要重启。
对 Agent 说:
观察 Agent 是否:
- 识别到 Skill
- 按 SKILL.md 中的流程搜索热点
- 生成格式正确的日报
- 推送到 Slack
问 Agent:”你现在有哪些 skills?”
如果不在列表中,排查:
- 文件路径:
- frontmatter 的 分隔符是否完整
- 和 字段是否存在且语法正确
如果 Skill 已加载但用户的请求没触发它,说明 匹配不上。
改进方法:扩充 description 中的关键词和场景描述。把你能想到的用户可能说法都加进去。
description 中包含特殊字符(冒号、引号等)时需要注意:
GPT plus 代充 只需 145
常见检查项:
- 执行权限:
- 依赖命令:确认 等工具已安装
- 网络连通:web_search 和脚本都需要联网
在实际开发中,如果 Skill 的功能比较复杂,SKILL.md 正文可能会膨胀到几百行。这时候就需要利用渐进式加载的第三层——把详细内容拆到 references/ 目录。
在 SKILL.md 中只需引用:
GPT plus 代充 只需 145
Agent 只会加载当前需要的文件,不会把三个文件全读进来。
如果日报需要固定排版,可以放一个模板到 assets/ 目录:
Agent 直接拿模板填充内容,保证每次输出格式一致。
OpenClaw 有一个 heartbeat 机制——Agent 会定期被唤醒执行检查任务。在 里添加日报提醒:
GPT plus 代充 只需 145
这样不用配 cron,Agent 在心跳周期中也会触发日报生成。
ClawHub 是 OpenClaw 的技能共享平台。如果你的 Skill 经过验证可以稳定工作,可以考虑发布:
- 确保 SKILL.md frontmatter 完整规范
- 使用打包工具生成 文件
- 提交到 ClawHub
其他用户就可以直接安装使用你开发的 Skill。
OpenClaw 的 Skill 机制本质上是一种面向 AI Agent 的声明式扩展协议。它用 Markdown 代替了代码,用自然语言指令代替了 API 调用,把能力扩展的门槛降到了”会写文档”的级别。
这种设计在工程上有几个值得关注的点:
- 三层渐进加载保护了上下文窗口
- description 驱动触发让 Skill 的匹配完全语义化
- 目录结构约定在灵活性和规范性之间取得了平衡
我在亚马逊云科技的实际工作中用这套机制自动化了多个重复性流程,效果符合预期。如果你也在探索 AI Agent 的能力扩展方案,OpenClaw Skill 是一个值得研究的参考。
Skill 开发有坑?评论区一起排 🔧
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/239886.html