如何创建 OpenClaw 技能:实用指南
你的 OpenClaw Agent 开箱即用就很聪明。但"聪明"和"对你的特定工作流有用"是两回事。
这个差距就是技能发挥作用的地方。技能将你的通用 Agent 变成专家 — 一个了解你的 SEO 清单、部署流程、内容风格指南、你做事方式的专家。一旦你构建了一个技能,它每次都能工作,跨越每个会话,无需你重新解释。
本指南将带你从零开始创建 OpenClaw 技能。没有理论堆砌。读完后,你将拥有一个可用的技能和构建更多技能的清晰思路。
什么是 OpenClaw 技能(为什么你应该关心)?
OpenClaw 技能是一个自包含的指令、脚本和参考文件包,教你的 Agent 如何处理特定类型的任务。把它想象成入职文档 — 只不过你的 Agent 真的会读它并完美执行。
没有技能,每个会话都从零开始。你解释你的流程,Agent 完成工作,下次你又要重新解释。技能解决了这个循环。
技能给你的:
- 一致性。 你的 Agent 每次都遵循相同的流程 — 没有偏差,没有遗漏步骤。
- 速度。 不再需要重新解释。Agent 读取技能文件就开始工作。
- 可移植性。 在 Agent 之间、机器之间共享技能,或在 ClawHub 上发布供他人使用。
- 可组合性。 技能可以叠加。你的 SEO 写作技能可以引用关键词研究技能,后者可以调用竞争对手分析脚本。
如果你在运行任何可重复的工作流 — 内容创建、站点部署、数据处理、监控 — 你需要技能。
什么是好的可复用技能
在构建之前,先谈谈什么区分了有用的技能和臃肿的技能。
好的技能是简洁的。 技能文件中的每个 token 都在与你的对话、其他技能和系统提示竞争上下文窗口空间。如果你的 Agent 已经知道如何写 Python,不要在技能中解释 Python 语法。只包含 Agent 自己无法弄清楚的内容。
好的技能将自由度与脆弱性匹配。 有些任务需要精确脚本(旋转 PDF、调用特定 API)。其他任务需要宽松指导(以某种语气写博客文章)。将规定程度与任务能容忍的变化程度匹配。
好的技能使用渐进式披露。 将要点放在主文件中。将详细参考、模式和示例存放在单独的文件中,Agent 只在需要时加载。这保持你的上下文窗口精简。
快速测试:如果你从技能中删除一段话,Agent 仍然能正确完成工作,那就删掉它。
OpenClaw 技能的结构
每个技能都在自己的文件夹中。唯一必需的文件是 SKILL.md。其他都是可选的。
my-skill/
├── SKILL.md # 必需 — 指令 + 元数据
├── scripts/ # 可选 — 可执行代码
│ └── check_seo.py
├── references/ # 可选 — 按需加载的文档
│ └── style-guide.md
└── assets/ # 可选 — 模板、图片等
└── post-template.md
SKILL.md:大脑
这是你的 Agent 读取的文件。它有两部分:
前置元数据(顶部的 YAML)— 告诉 OpenClaw 何时激活技能:
---
name: seo-writing
description: 按照我们的风格和清单撰写 SEO 优化的博客文章。用于创建新文章、优化现有内容或审查草稿的 SEO 合规性。
---
description 字段至关重要。它是 OpenClaw 决定是否为给定任务加载你的技能的依据。具体说明技能做什么以及何时应该触发。模糊的描述意味着你的技能在不该被忽略时被忽略 — 或在不相关时被加载。
如何写出真正有效的触发描述
弱的技能描述说的是技能是什么。强的描述说的是技能应该何时激活。
使用这个公式:
- 它做什么 — 任务类别
- 何时使用 — 应该触发它的真实场景
- 不用于什么 — 属于其他地方的相近任务
- 触发短语 — 用户可能输入的自然语言提示
正文(Markdown)— Agent 遵循的实际指令。这只在技能触发后加载,所以不要在这里浪费空间写"何时使用此技能" — 那属于描述部分。
脚本:确定性可靠性
当你需要每次以完全相同的方式完成相同操作时,将代码放在 scripts/ 中。检查关键词密度的 Python 脚本、部署到 Cloudflare 的 bash 脚本、验证结构化数据的 Node 脚本 — 这些属于脚本。
Agent 可以在不将它们读入上下文的情况下运行这些脚本,节省宝贵的 token。
参考文件:按需知识
使用 references/ 存放 Agent 可能需要但不总是需要的详细文档。数据库模式、API 文档、品牌指南、竞争对手分析模板 — 任何对 SKILL.md 来说太长但又太重要不能省略的内容。
从 SKILL.md 引用你的文件,让 Agent 知道它们的存在:
## 品牌声音
详细的语气和风格规则,见 [references/brand-voice.md](references/brand-voice.md)。
资产:输出资源
进入最终输出的文件 — 模板、图片、样板代码 — 放在 assets/ 中。Agent 使用它们而不将它们加载到上下文中。
构建你的第一个 OpenClaw 技能:分步指南
来构建一个真实的技能。我们将创建一个 SEO 博客写作技能,每次 Agent 写文章时都执行特定的清单。
第 1 步:定义技能做什么
在触碰任何文件之前,回答这些问题:
- 这个技能处理什么任务?→ 撰写 SEO 优化的博客文章
- 没有它 Agent 会做错什么?→ 遗漏 meta 描述、不一致的标题结构、忘记内部链接
- 什么触发器应该激活它?→ 当被要求写博客文章、文章或内容时
第 2 步:创建技能文件夹
mkdir -p skills/seo-blog-writer/scripts
mkdir -p skills/seo-blog-writer/references
第 3 步:编写 SKILL.md
这是一个实际示例:
---
name: seo-blog-writer
description: 撰写具有正确关键词布局、meta 标签、标题层级和内部链接的 SEO 优化博客文章。用于创建新博客文章、起草内容简报或优化现有文章的搜索排名。
---
# SEO 博客写手
## 写作前清单
1. 确认目标关键词和 3-5 个长尾变体
2. 分析 SERP 前 10 名的内容差距
3. 确定搜索意图(信息型 vs 交易型)
## 写作标准
- 标题:包含主关键词,50-60 个字符
- Meta 描述:包含关键词,150-155 个字符,带 CTA
- H1:每页一个,包含主关键词
- H2/H3:清晰层级,每个 H2 针对一个长尾变体
- 前 100 个词:必须自然包含主关键词
- 关键词密度:2-3%,绝不强塞
## 内部链接
- 每篇文章最少 2-3 个内部链接
- 锚文本使用目标关键词(绝不用"点击这里")
## 图片要求
- 每张图片需要包含关键词的描述性 alt 文本
- 文件名使用关键词(如 `seo-checklist-2026.webp`)
- 每篇文章必须有 hero 图片
## 质量检查
在最终草稿上运行 `scripts/check_seo.py` 验证:
- 关键词密度
- Meta 标签长度
- 标题层级
- 内部链接数量
详细风格规则,见 [references/writing-style.md](references/writing-style.md)。
注意什么不在里面:没有解释什么是 SEO,没有 markdown 格式教程,没有通用写作建议。Agent 已经知道这些。技能只添加你工作流特有的内容。
第 4 步:添加支持文件
创建一个简单的验证脚本和写作风格参考文件。Agent 会在需要时使用它们。
第 5 步:测试
测试技能的最好方式就是使用它。让 Agent 写一篇博客文章,看它是否遵循了清单中的每一步。观察:
- 它检查了关键词密度吗?
- 它正确构建了标题结构吗?
- 它包含了内部链接吗?
- 它运行了验证脚本吗?
如果有问题,更新技能再试。技能通过迭代改进,不是通过规划。
真实用例:人们实际构建了什么
技能不是理论性的。以下是真实 OpenClaw 用户用自定义技能自动化的工作流。
SEO 内容流水线
一个技能接收关键词简报,产出完全优化的文章 — 包括 meta 标签、标题结构、内部链接和图片 alt 文本。配合关键词研究技能,你就有了一台自动运行的内容机器。
站点部署自动化
一个技能处理你的整个部署流程:构建项目、运行测试、推送到 Cloudflare Pages 或 Vercel、验证线上 URL、报告结果。不再需要复制粘贴终端命令。
竞争对手监控
一个技能定期检查竞争对手网站的新内容、定价变化或功能更新。它抓取、总结并标记任何值得关注的内容。
多语言内容管理
一个技能接收你的英文内容并管理翻译工作流 — 不只是翻译,还要调整语气、检查文化引用、保持跨语言的术语一致性。
服务器健康检查
一个技能运行安全审计、检查 SSL 证书、监控在线时间,并在需要注意时提醒你。把它想象成一个永不睡觉的系统管理员。
这些都始于某人一遍又一遍地向 Agent 解释相同的流程。然后他们写了一个技能,问题就消失了。
要避免的常见错误
SKILL.md 过载。 你的技能文件不应该是一本小说。如果超过 500 行,将细节拆分到参考文件中。Agent 每次技能触发时都会加载 SKILL.md — 保持精简。
模糊的描述。 "帮助写作"这样的描述不会可靠触发。要具体:"为联盟网站撰写 SEO 优化的产品对比文章。用于创建对比/比较内容或产品合集。"
解释 Agent 已经知道的东西。 不要在 Python 自动化技能中教 Python。不要在网页抓取技能中解释什么是 HTML。专注于你工作流独特的部分。
跳过测试循环。 写了技能就假设它能工作,就像写了代码跳过测试一样。在真实任务上使用技能,找到差距,修复,重复。
硬编码环境细节。 不要在技能中直接放服务器 IP、API 密钥或文件路径。使用参考文件或环境变量,让技能保持可移植性。
进阶:在 ClawHub 上发布技能
一旦你构建了一个运行良好的技能,考虑分享它。ClawHub 是 OpenClaw 的市场,你可以在这里发布、发现和安装技能。
发布很简单:
clawhub publish ./skills/seo-blog-writer
你的技能会被验证、打包和列出。其他 OpenClaw 用户可以用一条命令安装它。如果你的技能很好地解决了一个真实问题,它甚至可以产生收入 — ClawHub 上的热门技能售价 $19-$49。
无论你是发布还是保持技能私有,构建它们的过程都会改变你与 Agent 的工作方式。你不再重复自己,而是开始复合你的自动化。
开始构建
你现在知道了结构、流程和陷阱。下一步是选择一个你经常重复的工作流,把它变成技能。
从小处开始。一个 20 行的 SKILL.md 执行你的部署清单,比一个你永远完不成的 500 行杰作更有价值。构建它,测试它,改进它。
如果你是 OpenClaw 新手,我们的原理科普页面详细介绍了整个系统。已经在运行 Agent?查看我们的免费指南了解将你的设置变成收入来源的策略。想要结构化学习?我们的课程深入讲解多 Agent 架构和技能设计。
做得最好的 Agent 不是拥有最大模型的那些。而是拥有最好技能的那些。现在去构建你的吧。