乐于分享
好东西不私藏

元哥开讲:OpenClaw(七)从零到一,打造你的第一个“独门绝技”

元哥开讲:OpenClaw(七)从零到一,打造你的第一个“独门绝技”

各位兄弟,元哥我来了!

上一期,我们打开了“龙虾仔”的“军火库”,知道了它强大的能力来自于“技能系统”,而且还有一个叫ClawHub的“技能商店”可以让我们淘到各种宝贝。

理论说了这么多,今天,咱不玩虚的。Talk is cheap, show me the code!

元哥我就手把手带大家,从零开始,亲手为你的“龙虾仔”打造它的第一个“独门绝技”。让它从一个只会用“标配”工具的“普通员工”,变成一个拥有你独家秘笈的“王牌助理”!

我们的目标:一个“日报总结”小助手

我们来设定一个在座各位上班族都可能用得到的场景。假设你每天都要看一份或者多份工作日报,内容又长又杂。你希望你的AI助理能帮你自动读完并提炼出核心要点。

所以,我们的目标就是创建一个名为 daily-report-summary 的技能。当你需要时,只需要在聊天窗口里输入一条命令,比如:

/daily-report-summary /home/yuange/reports/today.txt

然后,“龙虾仔”就会自动读取这个文件,并把一份精炼的总结报告回复给你。

听起来不错吧?咱们开干!

第一步:创建“技能蓝图”——安放技能的“家”

首先,我们得给这个新技能安个家。根据OpenClaw的规矩,我们自己创建的技能,都应该放在Agent的工作目录下的skills文件夹里。

打开你的WSL终端,执行以下命令:

mkdir -p ~/.openclaw/workspace/skills/daily-report-summary
  • ~/.openclaw/workspace/
     是我们之前配置的默认工作目录。
  • skills/
     是所有自定义技能的“根目录”。
  • daily-report-summary/
     就是我们这个新技能的“家”了。

第二步:编写“说明书”——SKILL.md

家安好了,接下来就是最核心的一步:编写那份给AI看的“说明书”——SKILL.md文件。这份文件,就是我们技能的灵魂。

在刚刚创建的daily-report-summary文件夹里,新建一个SKILL.md文件,然后把下面的内容完整地复制进去:

---name: daily-report-summarydescription: Reads a report file and provides a concise summary.user-invocable: true---# Daily Report Summary Skill## DESCRIPTIONThis skill is designed to read a text file, understand its content as a daily work report, and generate a professional, bullet-pointed summary.## INSTRUCTIONSWhen the user invokes this skill, they will provide a single argument: the full path to the report file.Your task is to perform the following steps in order:1.  You **MUST** use the built-in `read` tool to get the content of the file specified by the user.2.  Once you have the content, analyze it thoroughly. Assume the content is a work report.3.  Generate a summary of the report. The summary should be:    *   Concise and to the point.    *   Formatted with clear bullet points (e.g., using '-' or '*').    *   Highlight key achievements, problems encountered, and next steps.4.  You **MUST** output **ONLY** the summary. Do not add any conversational text before or after the summary, like "Here is the summary:" or "Is there anything else I can help with?". Just provide the raw summary.

好了,我们来逐行“翻译”一下这份“说明书”,看看我们都教了AI些什么:

  • name: daily-report-summary: 这是技能的唯一ID,它的“身份证号”,必须和文件夹名一致。
  • description: ...: 这是一句简短的描述,好让AI(和你自己)一眼就知道这个技能是干嘛的。
  • user-invocable: true: 魔法来了! 加上这一行,就等于告诉OpenClaw:“请把这个技能直接暴露成一个用户可以调用的斜杠命令!” 也就是说,daily-report-summary这个名字,会自动变成一个聊天命令/daily-report-summary。是不是酷毙了?

接下来的Markdown正文部分,就是我们给AI的详细“岗前培训”了。我们用非常明确、坚决的语气(比如用“You MUST”)告诉它:

  1. 你的任务是读文件、做总结。
  2. 第一步,必须用read工具去读用户给你的路径。
  3. 第二步,把读到的内容当成工作报告来分析。
  4. 第三步,总结要专业、简洁、用项目符号。
  5. 第四步,也是最关键的一步,只输出总结内容,不要加任何多余的客套话。这能保证我们的技能输出结果干净、可预测。

第三步:我们的“发动机”呢?—— 一个“空城计”

等一下,元哥!你是不是忘了什么?我们光写了“说明书”,说好的“发动机”(可执行脚本)呢?我们没写一行Python或Shell代码啊!

问得好!这正是这个入门技能最“骚”的地方——我们根本不需要“发动机”

我们刚刚创建的,是一个“纯提示词技能”(Prompt-only Skill)

我们没有编写新的代码,而是通过SKILL.md这份强大的“说明书”,引导和指示AI去调用它已经内置的工具(read)和它自身强大的语言模型能力(总结)

我们扮演的不是“程序员”,而是“架构师”或者“项目经理”。我们负责定义目标、拆解步骤、明确交付标准,然后把具体的“编码”和“执行”工作,交给了AI这个“超级员工”自己去完成。

对于大量的文件处理、文本分析、格式转换等任务,这种“纯提示词技能”简直是神器!它让你无需编写和维护代码,就能快速地将AI的能力封装成你自己的自动化工作流。

第四步:是骡子是马,拉出来遛遛!

万事俱备,我们来检验一下成果。

1. 准备一份“投喂”的报告

在你的WSL环境里,随便创建一个.txt文件作为我们的日报。

# 在你的用户主目录下创建一个文件echo "今日工作总结:1. 完成了OpenClaw第七章文章的编写,效果不错。2. 修复了几个线上bug。3. 明天计划:开始写第八章。" > ~/my_daily_report.txt

2. 重启“龙虾仔”

为了让OpenClaw加载我们新建的技能,最稳妥的办法是重启一下Gateway。

openclaw gateway restart

3. 下达指令!

现在,去你的飞书(或者其他任何你接入的聊天工具),找到你的AI助理,然后发出我们梦寐以求的命令:

/daily-report-summary ~/my_daily_report.txt

注意: 这里的路径~/my_daily_report.txt,是相对于你的WSL环境的路径。你需要确保这个路径对于运行着Gateway的WSL是真实有效、可访问的。

如果一切顺利,你应该会看到“龙虾仔”干脆利落地回复你:

*   完成了OpenClaw第七章文章的编写,效果不错。*   修复了线上bug。*   明日计划:开始写第八章。

没有一句废话,直奔主题!这说明我们的“说明书”AI完全听懂了!

总结

恭喜你!你刚刚已经从一个单纯的AI“使用者”,进阶成了一名AI“创造者”!

今天,我们:

  1. 学会了创建一个自定义技能的完整流程。
  2. 掌握了如何编写SKILL.md来“训练”AI。
  3. 利用user-invocable: true将技能“发布”成一个斜杠命令。
  4. 领悟了“纯提示词技能”的精髓,实现了“不写代码,只动嘴皮子”的“高阶玩法”。

现在,你可以发挥想象,把你日常工作中那些繁琐的、重复性的文本处理任务,都封装成一个个类似这样的“独门绝技”了。

我们已经学会了给自己手里的这一个“龙虾仔”升级打怪。但如果我想根据不同的任务,创造出多个拥有不同“人设”和“技能包”的“龙虾仔”呢?比如一个专门审查代码的,一个专门分析市场的?

下一期,我们将进入更高级的玩法:自定义你的专属AI天团!

敬请期待:【元哥开讲:OpenClaw(八)】手把手:创建你的“专属人设”AI (Custom Agent)