<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>AI工具 on Code Plato</title><link>https://CodePlato3721.github.io/zh/tags/ai%E5%B7%A5%E5%85%B7/</link><description>Recent content in AI工具 on Code Plato</description><generator>Hugo -- gohugo.io</generator><language>zh</language><lastBuildDate>Sat, 09 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://CodePlato3721.github.io/zh/tags/ai%E5%B7%A5%E5%85%B7/index.xml" rel="self" type="application/rss+xml"/><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>