<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Skill on Code Plato</title><link>https://CodePlato3721.github.io/zh/tags/skill/</link><description>Recent content in Skill on Code Plato</description><generator>Hugo -- gohugo.io</generator><language>zh</language><lastBuildDate>Thu, 28 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://CodePlato3721.github.io/zh/tags/skill/index.xml" rel="self" type="application/rss+xml"/><item><title>Agent Skill 制作手册 01：入门篇</title><link>https://CodePlato3721.github.io/zh/post/agent-skill-%E5%88%B6%E4%BD%9C%E6%89%8B%E5%86%8C-01-%E5%85%A5%E9%97%A8%E7%AF%87/</link><pubDate>Thu, 28 May 2026 00:00:00 +0000</pubDate><guid>https://CodePlato3721.github.io/zh/post/agent-skill-%E5%88%B6%E4%BD%9C%E6%89%8B%E5%86%8C-01-%E5%85%A5%E9%97%A8%E7%AF%87/</guid><description>&lt;img src="https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/05/agent-skill-handbook-01-getting-started/banner.png" alt="Featured image of post Agent Skill 制作手册 01：入门篇" /&gt;&lt;p&gt;Agent Skill 制作手册是一个系列教程。这是第一篇。&lt;/p&gt;
&lt;h2 id="什么是-skill"&gt;什么是 skill
&lt;/h2&gt;&lt;p&gt;很多程序员问，Agent Skill 是什么？我敢说，Agent Skill 是你们学习编程以来能学到的最简单的技术之一。&lt;/p&gt;
&lt;h3 id="skill-是怎么发展出来的"&gt;skill 是怎么发展出来的
&lt;/h3&gt;&lt;p&gt;就像跟人一起工作一样。你有一个新入职的同事，就算他技术再好，也总要先看一些你们公司的 how to 文档，才能开始做事。人们发现，跟 LLM 工作也有同样的模式。你让 LLM 直接做事情，那多半会做出一件偏离你预期的漂亮事，这就很尴尬了。&lt;/p&gt;
&lt;p&gt;然后就有人发现，如果先在提示词里面加上做事情的步骤，LLM 就做得好。所以大家就一直给 LLM 喂 how to 手册。&lt;/p&gt;
&lt;p&gt;但是 LLM 的上下文有限啊，而且你每次塞这么多上下文，你的钱包先爆了。于是人们又想，其实我们自己工作的时候也记不住 how to 的内容。我们大概记得有那么个 how to 教了我做这件事情，但具体内容不记得了。没关系啊，我们到时候再去 wiki 看看不就得了。那我们也可以让 LLM 只记住这个 how to 是做什么的，具体需要的时候再看呗。于是我们可以把每一个 how to 的描述喂给 LLM，LLM 看描述就知道，需要做事情的时候要找哪个 how to 了。&lt;/p&gt;
&lt;p&gt;到这里，我们已经可以推导出一个简单的、给 LLM 量身定做的 how to 了。它只有两个重要属性：&lt;code&gt;name&lt;/code&gt; 和 &lt;code&gt;description&lt;/code&gt;，剩下的就是正文了。每次加载只加载 &lt;code&gt;name&lt;/code&gt; 和 &lt;code&gt;description&lt;/code&gt;，LLM 自己会判断是否需要读取这个 how to 的正文。&lt;/p&gt;
&lt;p&gt;&lt;img alt="skill 结构示意图" class="gallery-image" data-flex-basis="320px" data-flex-grow="133" height="1086" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/05/agent-skill-handbook-01-getting-started/01.png" srcset="https://CodePlato3721.github.io/01_17950217286682826352_hu_ad092d28159b7ab2.png 800w, https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/05/agent-skill-handbook-01-getting-started/01.png 1448w" width="1448"&gt;&lt;/p&gt;
&lt;p&gt;这就是 skill。其实这个东西叫什么不重要，它可以叫 howto、guide、manual 都可以，但是大家觉得 skill 这个名字够短、好记，还自解释，就用它了。可能在别的平行宇宙里，它叫 guide。&lt;/p&gt;
&lt;h3 id="skill-是哪家的"&gt;skill 是哪家的？
&lt;/h3&gt;&lt;p&gt;这种 &lt;code&gt;SKILL.md&lt;/code&gt; 形态的 Agent Skill，最早是 Anthropic 系统公开推广的；但 skill 这个词和&amp;quot;让 AI 学技能&amp;quot;的思想并不属于某家公司。OpenAI、OpenClaw、Hermes Agent 都有自己实现的 skill。这只是一个概念，各家有各家自己的实现，这些实现在细节上有些区别，但都是指同一个事情。&lt;/p&gt;
&lt;h2 id="怎么写-skill"&gt;怎么写 skill
&lt;/h2&gt;&lt;h3 id="skill-通用规范"&gt;skill 通用规范
&lt;/h3&gt;&lt;p&gt;各家的 skill 规范的共同点是：skill 是一个文件夹。结构是：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;my-skill/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; SKILL.md # 必须：元数据 + 指令
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; scripts/ # 可选：可执行脚本
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; references/ # 可选：文档、说明、规范
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;而其中的 &lt;code&gt;scripts&lt;/code&gt;、&lt;code&gt;references&lt;/code&gt; 都不是必须的，只是大家习惯的一种最佳实践而已。最重要的是 &lt;code&gt;SKILL.md&lt;/code&gt;。有的 skill 只有这一个文件，而这个文件的结构也很简单。&lt;/p&gt;
&lt;p&gt;一个最小的 &lt;code&gt;SKILL.md&lt;/code&gt;，在元数据层面只需要 &lt;code&gt;name&lt;/code&gt; 和 &lt;code&gt;description&lt;/code&gt;。正文可以很短，但最好写清楚 agent 被触发后到底要做什么。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;name&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;skill的名字&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;description&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;解释这个skill是干嘛的，什么时候应该被触发，什么时候不应该被触发等&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;当你的 skill 比较复杂，需要一些结构化的数据和逻辑的时候，就可以考虑建立 &lt;code&gt;scripts&lt;/code&gt; 文件夹，然后在里面写代码。当你的 skill 引用的文档比较多，你怕把上下文给撑爆了，就可以把大部分文档移到 &lt;code&gt;references&lt;/code&gt; 里面。&lt;/p&gt;
&lt;h3 id="写一个-skill"&gt;写一个 skill
&lt;/h3&gt;&lt;p&gt;来动手写一个 skill 吧。我保证这是你看到的最短的教程。这个 skill 会在你说三次 Hello 的时候回复三个 World。新建 &lt;code&gt;SKILL.md&lt;/code&gt;，并在里面写：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;name&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;hello-world&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;description&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;当用户说三次&amp;#34;Hello&amp;#34;（例如&amp;#34;Hello Hello Hello&amp;#34;）时，回复三次&amp;#34;World&amp;#34;：&amp;#34;World World World&amp;#34;。&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Hello World&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;当用户的消息中包含恰好三个&amp;#34;Hello&amp;#34;时，只回复：&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;World World World&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;不说其他任何内容，只有这三个字。&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;然后安装到你的 AI agent 里面。你问我怎么安装？这都什么年代了，你问你自己的 AI agent 怎么安装，它自会告诉你的。&lt;/p&gt;
&lt;p&gt;安装好后就试试吧。&lt;/p&gt;
&lt;h2 id="skill-规范"&gt;skill 规范
&lt;/h2&gt;&lt;p&gt;Codex、Claude Code、OpenClaw、Hermes Agent 它们都对 skill 有自己的一些细节上的规范，我就不在此赘述。不过有几点我觉得有必要提。&lt;/p&gt;
&lt;h3 id="skill-防触发机制"&gt;Skill 防触发机制
&lt;/h3&gt;&lt;p&gt;基本上，是否触发 Skill 是看 LLM 自己决定的。这其实带来另外一个问题，就是 skill 经常被误触发，或者不被触发。对此各家都有各自的措施。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;禁止自动触发，但允许手动触发&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Claude / OpenClaw: &lt;code&gt;disable-model-invocation: true&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Codex: &lt;code&gt;agents/openai.yaml&lt;/code&gt; 里的 &lt;code&gt;allow_implicit_invocation: false&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;彻底禁用 skill&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Codex: &lt;code&gt;[[skills.config]] enabled = false&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;OpenClaw: &lt;code&gt;skills.entries.&amp;lt;skillKey&amp;gt;.enabled = false&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;从这里可以看出，skill 的优点在于自由，但缺点也是自由。有时候你想触发，却触发不了；不想触发，它却一直被触发。不过在之后的教程中我会介绍一些范式来解决这个问题。&lt;/p&gt;
&lt;h3 id="skill-的分类"&gt;Skill 的分类
&lt;/h3&gt;&lt;p&gt;在 skill 慢慢被越来越多的人使用后，skill 也开始出现一些分类方式。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;skill 和 command&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;在 OpenClaw 和 Claude 桌面版中，skill 是可以用斜杠（&lt;code&gt;/&lt;/code&gt;）调用的。区别在于，在 Claude 桌面版中，你安装了 Skill 后，按 &lt;code&gt;/&lt;/code&gt; + &lt;code&gt;&amp;lt;skill名&amp;gt;&lt;/code&gt; 就可以触发 skill；而在 OpenClaw 中，你是通过设置 &lt;code&gt;user-invocable: true&lt;/code&gt; 来让这个 skill 可以用斜杠触发的。&lt;/p&gt;
&lt;p&gt;在 OpenClaw 里，一部分 skill 可以被暴露成 slash command。command 是调用方式，不一定是独立分类。这就引发了一个有趣的思考：当你建立一个新 skill 的时候，你可以思考一下，你这个 skill 是一个普通的 skill，还是一个 command。毕竟在手机上找到斜杠，并不像在电脑上这样容易。有些生活类的 skill，你可以依赖 LLM 去猜测；而有些需要精确被触发的，就可以用斜杠。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;工作流式和应用式&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;你会发现，有些 skill 仅仅只是定义了一件事情该怎么做，而有些 skill 更像是一个你自己定义的 app。定义了该怎么做的，可以被称为工作流式。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;比如你让 LLM 帮你归纳一下会议纪要。这样的 skill 就只需要 &lt;code&gt;SKILL.md&lt;/code&gt; 就够了。如果流程比较复杂，那就把流程抽取到 &lt;code&gt;references&lt;/code&gt; 里面。&lt;/li&gt;
&lt;li&gt;如果是应用式的，比如你要做一个购物清单，你需要比较复杂的逻辑和比较规范的数据存储。你就需要将某些逻辑抽取出来写成 &lt;code&gt;scripts&lt;/code&gt;。但是 &lt;code&gt;scripts&lt;/code&gt; 不是越多越好，只有需要确定性行为或外部工具时才用 &lt;code&gt;scripts&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="skill 分类示意图" class="gallery-image" data-flex-basis="320px" data-flex-grow="133" height="1086" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/05/agent-skill-handbook-01-getting-started/02.png" srcset="https://CodePlato3721.github.io/02_18422898844138254243_hu_ce56d308cb564460.png 800w, https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/05/agent-skill-handbook-01-getting-started/02.png 1448w" width="1448"&gt;&lt;/p&gt;</description></item><item><title>[一天一个Skill]第1天：查单词Skill</title><link>https://CodePlato3721.github.io/zh/post/%E4%B8%80%E5%A4%A9%E4%B8%80%E4%B8%AAskill-%E7%AC%AC1%E5%A4%A9-%E6%9F%A5%E5%8D%95%E8%AF%8Dskill/</link><pubDate>Sat, 09 May 2026 00:00:00 +0000</pubDate><guid>https://CodePlato3721.github.io/zh/post/%E4%B8%80%E5%A4%A9%E4%B8%80%E4%B8%AAskill-%E7%AC%AC1%E5%A4%A9-%E6%9F%A5%E5%8D%95%E8%AF%8Dskill/</guid><description>&lt;img src="https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/05/one-skill-a-day-day-1-en-cn-dict/cn/banner.png" alt="Featured image of post [一天一个Skill]第1天：查单词Skill" /&gt;&lt;h1 id="即读即弃"&gt;即读即弃
&lt;/h1&gt;&lt;p&gt;即读即弃是我的写作风格。&lt;/p&gt;
&lt;p&gt;我不是按照瀑布式的方式写文章的。所谓瀑布式，就是把整篇文章拆成多个步骤，你必须一路读到最后才能做出一个完整的东西。如果读到一半弃了，那就只能得到一个半成品。&lt;/p&gt;
&lt;p&gt;现在这个时代节奏太快了，我自己都没时间长时间阅读一篇文章。我的文章是迭代式的。你看一小段，就可以先做出一个东西，然后我们再继续扩展，把这个东西做得更好。你如果没时间，就看多少算多少。&lt;/p&gt;
&lt;p&gt;所以我会把文章分成多个部分。每读完一个部分，如果你不想继续往下读，就可以直接弃了下课。&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id="第一部分一个简单的查单词-skill"&gt;第一部分：一个简单的查单词 Skill
&lt;/h1&gt;&lt;h2 id="背景知识"&gt;背景知识
&lt;/h2&gt;&lt;h3 id="skill-是什么"&gt;Skill 是什么
&lt;/h3&gt;&lt;p&gt;Skill 是 Claude 的母公司 Anthropic 在 2025 年底提出的一个规范。&lt;/p&gt;
&lt;p&gt;支持这个规范的工具很多，比如 openclaw、codex、claude code 等等。&lt;/p&gt;
&lt;p&gt;你不一定要跟我用同样的工具。只要你的 agent 智能体支持 Skill，就可以使用。&lt;/p&gt;
&lt;p&gt;学会方法之后，你自己装到自己的智能体里就行了。不懂怎么装，就直接问你的智能体。&lt;/p&gt;
&lt;p&gt;都什么年代了，别再&amp;quot;百度一下&amp;quot;&amp;ldquo;Google 一下&amp;quot;了，太低效了。&lt;/p&gt;
&lt;p&gt;如果你的智能体回答不上来，或者一直回答错，那就考虑换一个智能体吧。&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="个人习惯"&gt;个人习惯
&lt;/h3&gt;&lt;p&gt;我个人喜欢用 openclaw，因为它是目前最接近&amp;quot;下一代普通人个人智能体&amp;quot;的东西，对生活帮助很大。&lt;/p&gt;
&lt;p&gt;但 openclaw 太不稳定了，不适合演示，所以这里我会用 claude code。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="痛点"&gt;痛点
&lt;/h2&gt;&lt;p&gt;如果你只是把一个单词直接发给 AI，它通常会按自己猜测的意思返回结果。&lt;/p&gt;
&lt;p&gt;比如你想查 &lt;code&gt;apple&lt;/code&gt; 这个单词，你直接对 AI 说：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;apple
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;它大概率会返回：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Apple 是一家美国科技公司，总部位于美国加州库比蒂诺（Cupertino）。
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;它最著名的产品包括：
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;- iPhone
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;- MacBook
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;...
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;所以我们可以做一个专门查单词的 Skill。&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id="开始制作-skill"&gt;开始制作 Skill
&lt;/h1&gt;&lt;ol&gt;
&lt;li&gt;建立一个文件夹：&lt;code&gt;en-cn-dict&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;在文件夹里面建立文本文件 &lt;code&gt;SKILL.md&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id="skillmd-内容"&gt;SKILL.md 内容
&lt;/h2&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;---
name: 查单词
description: 当用户消息中出现&amp;#34;查单词：&amp;#34;或&amp;#34;查单词:&amp;#34;后跟英文单词时，返回音标、中文解释和发音。
---

## 处理规则

提取冒号后面的英文单词或短语。

兼容中文冒号 `：` 和英文冒号 `:`。

## 输出格式

必须严格使用以下格式：

单词：&amp;lt;英文单词&amp;gt;

音标：&amp;lt;音标&amp;gt;

中文解释：
1. &amp;lt;解释1&amp;gt;
2. &amp;lt;解释2&amp;gt;
3. &amp;lt;解释3&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h1 id="部署-skill"&gt;部署 Skill
&lt;/h1&gt;&lt;p&gt;然后把这个文件夹放到：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;~/.claude/skills/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;里面。&lt;/p&gt;
&lt;p&gt;如果没有 &lt;code&gt;skills&lt;/code&gt; 文件夹，就自己创建一个。&lt;/p&gt;
&lt;p&gt;部署完成后的路径：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;skills
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ⎿ en-cn-dict
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ⎿ SKILL.md
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h1 id="加载-skill"&gt;加载 Skill
&lt;/h1&gt;&lt;p&gt;现在重启 claude code，然后问它：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;查单词：tea
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="查单词：tea" class="gallery-image" data-flex-basis="371px" data-flex-grow="154" height="467" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/05/one-skill-a-day-day-1-en-cn-dict/cn/01.png" width="723"&gt;&lt;/p&gt;
&lt;p&gt;可以看到，它加载了 &lt;code&gt;en-cn-dict&lt;/code&gt; 这个 Skill。&lt;/p&gt;
&lt;p&gt;第一部分完成。&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id="第二部分真正的-skill-编写方式"&gt;第二部分：真正的 Skill 编写方式
&lt;/h1&gt;&lt;p&gt;AI 时代最大的改变之一就是：&lt;/p&gt;
&lt;p&gt;不要自己手写代码。&lt;/p&gt;
&lt;p&gt;我们一定要慢慢改掉&amp;quot;所有东西都手写&amp;quot;的习惯。&lt;/p&gt;
&lt;p&gt;其实 Skill 也一样，应该让 AI 自己去写。&lt;/p&gt;
&lt;p&gt;比如我们这个查单词 Skill，本来就应该让 agent 自己生成。&lt;/p&gt;
&lt;p&gt;如果你用的是 codex、openclaw、claude code 这种 agent 工具，你甚至可以直接让 agent 完成整个 Skill 的构建过程。&lt;/p&gt;
&lt;p&gt;如果你只有 ChatGPT、Claude、Gemini 这种 chat app，那你就手动创建文件，然后让 chat app 告诉你 &lt;code&gt;SKILL.md&lt;/code&gt; 该怎么写。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;我这里用 claude code 演示创建 Skill。&lt;/p&gt;
&lt;p&gt;我对 claude code 说：&lt;/p&gt;
&lt;p&gt;&lt;img alt="对 claude code 发出指令" class="gallery-image" data-flex-basis="691px" data-flex-grow="288" height="376" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/05/one-skill-a-day-day-1-en-cn-dict/cn/02.png" srcset="https://CodePlato3721.github.io/02_1896344827635470535_hu_bd50eebb4ada4609.png 800w, https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/05/one-skill-a-day-day-1-en-cn-dict/cn/02.png 1083w" width="1083"&gt;&lt;/p&gt;
&lt;p&gt;claude code 帮我把 Skill 文件创建好了：&lt;/p&gt;
&lt;p&gt;&lt;img alt="openclaw 创建 Skill" class="gallery-image" data-flex-basis="547px" data-flex-grow="228" height="447" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/05/one-skill-a-day-day-1-en-cn-dict/cn/03.png" srcset="https://CodePlato3721.github.io/03_5641320563562742076_hu_b1abe6f63fa908a9.png 800w, https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/05/one-skill-a-day-day-1-en-cn-dict/cn/03.png 1020w" width="1020"&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;现在测试一下。&lt;/p&gt;
&lt;p&gt;&lt;img alt="测试 Skill" class="gallery-image" data-flex-basis="722px" data-flex-grow="300" height="355" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/05/one-skill-a-day-day-1-en-cn-dict/cn/04.png" srcset="https://CodePlato3721.github.io/04_5816468111457903088_hu_9e381064ec70ee32.png 800w, https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/05/one-skill-a-day-day-1-en-cn-dict/cn/04.png 1068w" width="1068"&gt;&lt;/p&gt;
&lt;p&gt;成功了。&lt;/p&gt;
&lt;p&gt;不过它还是输出了一些我们没要求的内容。&lt;/p&gt;
&lt;p&gt;AI 写代码就是会自由发挥。不过没关系，多出来的东西如果你不要，就继续让它删掉就好了。&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id="第三部分编写-skill-的常用模式和问题"&gt;第三部分：编写 Skill 的常用模式和问题
&lt;/h1&gt;&lt;h2 id="触发词"&gt;触发词
&lt;/h2&gt;&lt;p&gt;在这个例子里，我用了&amp;quot;触发词&amp;quot;的模式。&lt;/p&gt;
&lt;p&gt;因为 agent 本质上是一个什么都能聊的对话框。什么都能说的代价，就是很容易混乱。&lt;/p&gt;
&lt;p&gt;有时候 agent 并不能自动判断该使用哪个 Skill。&lt;/p&gt;
&lt;p&gt;这时候你就可以通过&amp;quot;触发词&amp;quot;来缩小范围，精准定位要使用的 Skill。&lt;/p&gt;
&lt;p&gt;这个触发词，有点像你手机里的一个 App 图标。你通过触发词，把 agent 导航到对应的 Skill。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;如果你去看别的 Skill 入门教程，多半会看到&amp;quot;总结会议内容&amp;quot;这种例子。&lt;/p&gt;
&lt;p&gt;那些教程里的 Skill 经常会写：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;直接说&amp;#34;帮我总结会议&amp;#34;或类似请求
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这里其实有两个问题：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;太长，不好记&lt;/li&gt;
&lt;li&gt;&amp;ldquo;或类似请求&amp;quot;以后会给你带来麻烦&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;你的 Skill 最好有一个：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;简短&lt;/li&gt;
&lt;li&gt;明确&lt;/li&gt;
&lt;li&gt;不歧义&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;的触发词。&lt;/p&gt;
&lt;p&gt;因为当你的 Skill 越来越多的时候，&amp;ldquo;类似请求&amp;quot;这种模糊匹配，会慢慢变成不确定因素。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="触发词抢夺"&gt;触发词抢夺
&lt;/h2&gt;&lt;p&gt;有了触发词，就会有&amp;quot;触发词抢夺&amp;quot;问题。&lt;/p&gt;
&lt;p&gt;我在 openclaw 里做这个例子的时候，它死活不按我的 Skill 来。&lt;/p&gt;
&lt;p&gt;原因是：&lt;/p&gt;
&lt;p&gt;我的 openclaw 用的是 OpenAI 的 API。&lt;/p&gt;
&lt;p&gt;而&amp;quot;查单词：&amp;ldquo;这个词，在我使用的 model 里，本身就有很高的默认优先级。&lt;/p&gt;
&lt;p&gt;这个 model 每次看到&amp;quot;查单词&amp;rdquo;，就会强行用自己的理解来处理。&lt;/p&gt;
&lt;p&gt;这种现象，我把它叫做：&lt;/p&gt;
&lt;p&gt;&amp;ldquo;触发词抢夺&amp;rdquo;。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;如果遇到这种问题，也不用慌。&lt;/p&gt;
&lt;p&gt;因为这通常说明：&lt;/p&gt;
&lt;p&gt;其实 model 自己已经能很好地完成这件事了。&lt;/p&gt;
&lt;p&gt;你甚至可能根本不需要专门做这个 Skill。&lt;/p&gt;
&lt;p&gt;如果你真的想强制自定义，就换一个非常特殊、不容易被模型误判的触发词。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="skill-标记模式"&gt;Skill 标记模式
&lt;/h2&gt;&lt;p&gt;如果你用的是 claude code，它会显式告诉你调用了什么 Skill。&lt;/p&gt;
&lt;p&gt;但如果你用的是别的工具，比如 openclaw，它通常不会告诉你到底用了哪个 Skill。&lt;/p&gt;
&lt;p&gt;这样就会让人很不安心。&lt;/p&gt;
&lt;p&gt;你根本不知道它到底有没有调用你的 Skill。&lt;/p&gt;
&lt;p&gt;这时候，你可以在 Skill 输出的最后，强制加一句：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;使用了 [xxx skill]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这样你就能知道：&lt;/p&gt;
&lt;p&gt;它到底有没有真正调用你的 Skill。&lt;/p&gt;</description></item></channel></rss>