2026年从零到一:在OpenClaw中构建你的第一个AI技能(Skill)

从零到一:在OpenClaw中构建你的第一个AI技能(Skill)在理解了 OpenClaw 中 Skill 的本质 即由 Markdown 文件驱动的自动化指令集 之后 是时候动手实践了 本章将引导你完成从构思到部署一个完整 Skill 的全过程 通过两个由浅入深的实例 揭示如何将日常重复性任务转化为 AI 可理解 可执行的自动化流程 这不仅关乎技术实现 更是一种全新的 以声明式文档驱动自动化的思维方式 在动手编写第一行 Markdown 之前 确立正确的思维框架至关重要

大家好,我是讯享网,很高兴认识大家。这里提供最前沿的Ai技术和互联网信息。



在理解了OpenClaw中Skill的本质——即由Markdown文件驱动的自动化指令集——之后,是时候动手实践了。本章将引导你完成从构思到部署一个完整Skill的全过程,通过两个由浅入深的实例,揭示如何将日常重复性任务转化为AI可理解、可执行的自动化流程。这不仅关乎技术实现,更是一种全新的、以声明式文档驱动自动化的思维方式。

在动手编写第一行Markdown之前,确立正确的思维框架至关重要。Skill开发的核心转变在于:从关注“如何执行命令”转向定义“在何种情境下,由AI模型决定调用哪些命令”。这要求开发者进行三步思考:

  • 任务可行性评估:该任务能否通过Bash命令或CLI工具完成?绝大多数系统管理、文件操作、API调用任务都符合条件。对于需要复杂状态或GUI交互的任务,则需考虑其他工具。
  • 触发条件定义:这是Skill的灵魂。你需要精确描述模型应在什么场景下使用此Skill,这直接体现在 description 字段的撰写上。它并非给人看的使用说明,而是给AI模型看的“调用指南”。
  • 依赖与环境声明:在 dependencies 字段中预先声明所需工具(如 git, curl, jq),OpenClaw会在加载时进行检查,避免运行时错误,这体现了良好的 后端架构 设计思想。

这种模式类似于定义了一个轻量级的、自然语言触发的 微服务 端点,其接口协议就是Markdown文档。 [AFFILIATE_SLOT_1]

让我们从一个极简但实用的Skill开始:todo-local。它的目标很简单:当用户在聊天界面(如Slack)中说“#todo 买牛奶”,OpenClaw能自动将“买牛奶”追加到本地的 ~/todo.txt 文件中,并给予确认回复。

1. 创建Skill结构
所有Workspace级别的Skill都存放在统一的目录下,便于管理:



mkdir -p ~/.openclaw/workspace/skills/todo-local

2. 编写核心SKILL.md文件
这是Skill的“源代码”。其 description 字段必须清晰界定使用场景:



— name: todo-local description: “Append a todo item to the local ~/todo.txt file. Use when: user says ‘#todo ‘, ‘add a todo’, ‘remember to…’, or asks you to record a task. Also use when user asks to list their todos. NOT for: project management tools, remote task services (use those specific skills).” metadata: openclaw:

emoji: "✅" 

Todo Local Skill

Manage a simple local todo list stored in ~/todo.txt.

Append a Todo Item

When the user wants to add a todo: “`bash echo “- [ ] ITEM ($(date ‘+%Y-%m-%d %H:%M’))” >> ~/todo.txt echo “Added to ~/todo.txt”

注意,这里的 ITEM 是一个占位符,模型在实际调用时会用用户消息中提取的真实待办事项文本来替换它。

3. 扩展功能:查看与完成
一个完整的Todo Skill不应只有添加功能。我们可以在同一个 commands 部分,通过清晰的注释和结构,定义查看列表和标记完成的操作:
查看列表:










if [ -f ~/todo.txt ]; then cat /todo.txt else echo “(/todo.txt is empty or doesn’t exist)” fi

标记完成:

# View current todos with line numbers first cat -n ~/todo.txt

Then use sed to replace [ ] with [x] on the matching line

sed -i ’s/- [ ] ITEM/- [x] ITEM/’ ~/todo.txt

我们还可以在 notes 部分补充一些实现细节和约束,帮助模型更好地理解文件格式和操作逻辑:

 13.2.4 验证 Skill 加载 “`bash

查看 Skill 是否被正确识别

openclaw skill list

应该看到:✓ todo-local (workspace)

openclaw skill status todo-local

✓ todo-local: ready (no binary requirements)

4. 测试与调试

在聊天窗口输入 #todo 买牛奶。如果Skill配置正确,OpenClaw的Agent应该能识别到这与 todo-local Skill的description匹配(因为提到了 #todo),从而生成并执行相应的 echo “- [ ] 买牛奶 (2026-03-02 15:30)” >> ~/todo.txt 命令。如果未触发,可以通过 openclaw agent –message “#todo 买牛奶” –verbose 查看Agent的完整推理链,诊断问题。

现在,我们来构建一个更强大、结合外部API和定时任务的Skill:github-digest。它有两个目标:1) 手动查询时,能汇总指定仓库过去24小时的Issue和PR动态;2) 通过Cron配置,每天上午9点自动生成并发送日报。

1. 明确依赖
此Skill依赖GitHub CLI (gh),并且需要用户预先完成 gh auth login 认证。这些必须在Skill中声明。



2. 创建目录与编写SKILL.md

mkdir -p ~/.openclaw/workspace/skills/github-digest
— name: github-digest description: “Get a daily digest of GitHub activity: new issues, PRs, and comments in tracked repositories. Use when: user asks about GitHub activity, ‘what happened on GitHub today’, or for daily standups. Requires: gh CLI installed and authenticated.” metadata: openclaw: 
emoji: "" requires: bins: ["gh", "jq"] 

GitHub Digest Skill

Generate a digest of recent GitHub activity across your repositories.

Prerequisites

”`bash

Verify gh is authenticated

gh auth status

3. 设计命令集
我们需要提供一组模块化的命令示例,教会模型如何获取和格式化数据。这类似于设计一组细粒度的 API 调用组合:
查询近期Issue:










gh issue list –repo OWNER/REPO –state open –json number,title,createdAt,author,labels –jq ‘.[] | select(.createdAt > (now - 86400 | strftime(“%Y-%m-%dT%H:%M:%SZ”))) | “ #(.number) (.title) (@(.author.login))”’ 2>/dev/null || echo “ (none)”

查询近期PR:

gh pr list –repo OWNER/REPO –state open –json number,title,createdAt,author,isDraft –jq ‘.[] | select(.createdAt > (now - 86400 | strftime(“%Y-%m-%dT%H:%M:%SZ”))) | “ #(.number) (.title) (@(.author.login))(if .isDraft then ” [DRAFT]” else “” end)“’ 2>/dev/null || echo ” (none)”

为了生成格式美观的日报,我们可以在notes中定义输出模板,并加入错误处理和速率限制提醒,这是构建健壮 服务端 逻辑的体现:

GitHub Digest — [DATE] [REPO NAME] Issues opened: N 
    
     
      
  • #123 Title (@author)
  • #124 Title (@author) PRs opened: N
  • #456 Title (@author) — (repeat for each repo)
 13.3.4 配置追踪的仓库 因为 Skill 本身只是通用的「说明书」,具体追踪哪些仓库由两种方式决定。 一种是在与 Agent 的对话里直接说「帮我追踪 vercel/next.jsfacebook/react 的 GitHub 动态」,Agent 会记住这个偏好存入长期记忆或 Profile。 另一种是在 AGENTS.mdSOUL.md 里明确声明: 

”`markdown

GitHub Tracking

Monitor these repositories daily:

  • vercel/next.js
  • facebook/react
  • your-org/your-repo

4. 配置Cron实现自动化
Skill本身定义了“做什么”,Cron则定义了“何时做”。在OpenClaw的Cron配置文件 ~/.openclaw/openclaw.json 中添加如下任务,即可实现定时触发:



{ agent: { model: “anthropic/claude-opus-4-6”, }, cron: [ { id: “github-daily-digest”, schedule: “0 9 * * *”, message: “Generate a GitHub digest for today. Check my tracked repositories for new issues and PRs opened in the last 24 hours. Format as a daily standup summary.”, } ], }

这展示了如何通过 中间件(Cron)与Skill结合,构建完整的自动化流水线。 [AFFILIATE_SLOT_2]

编写高质量的SKILL.md是一门艺术,直接决定了AI模型的使用效果。

description字段的“黄金公式”
一个优秀的description应包含:具体任务描述 + 明确的使用时机(含示例短语) + 边界说明(不适合什么场景) + 前提条件。
反面例子“Manage todo items” —— 过于模糊,模型无法决策。
正面例子“Append a todo item to ~/todo.txt. Use when: ‘#todo’, ‘add a todo’, ‘remember to’, ‘remind me to’, ‘note that’. NOT for: Todoist/Things/Notion (use those skills). No prerequisites.” —— 具体、有边界、有示例,极大提升调用准确率。

















⚙️ commands部分的写作规范

  • 结构化分节:按操作类型(List/Create/Update/Delete)组织命令,避免混杂。
  • 使用大写占位符:如 OWNER/REPOITEM,清晰标示需要模型替换的部分。
  • 添加注释:解释每段命令的目的,帮助模型理解上下文。
  • 包含错误处理:例如先检查文件是否存在(2>/dev/null || echo “fallback”),避免bash报错导致模型困惑。

决策:何时需要Skill?
并非所有任务都需要创建Skill。遵循以下原则:
需要Skill:任务频繁重复、涉及特定工具的不直观用法、需要标准化输出格式。
无需Skill:一次性临时任务、通用Unix命令(如ls, grep)、模型已熟练掌握的简单操作。

















如果你创建的Skill具有通用价值,强烈建议分享给社区。OpenClaw鼓励用户提交贡献,流程非常简单:

# 1. Fork openclaw/openclaw 仓库 

2. 在 skills/ / 目录下创建 SKILL.md

3. 确保 description 清晰,requires.bins 完整

4. 提交 PR,标题格式:feat(skills): add skill

通过本章两个从入门到进阶的Skill构建实例,我们深入掌握了OpenClaw Skill开发的核心:一个SKILL.md文件即一个可执行能力。其中,description 字段是技能的“触发器定义”,务必具体、有边界;commands 部分是给模型的“操作手册”,需清晰、结构化、包含占位符;requires.bins 字段则确保了运行环境的一致性。将Skill与Cron结合,便能轻松构建强大的定时自动化任务。这种以文档为中心、自然语言驱动的自动化模式,为 后端开发 和运维工作流提供了极具想象力的新范式。在下一章,我们将探讨一个至关重要的话题:如何为这个拥有强大系统访问能力的AI助手构建安全边界。

小讯
上一篇 2026-04-29 20:59
下一篇 2026-04-29 20:57

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/282921.html