# 它不是 Skill

> Claude Skills、自定义 GPT 的指令、Gems：它们做的工作和 Reminder 不一样。一个说明事情怎么做，另一个说明是谁在做。优点、缺点，以及两者并存的地方。

*设计版: https://illaira.com/zh/approfondimenti/non-e-una-skill · 索引: https://illaira.com/zh/llms.txt*

---

[跳到内容](#contenuto)

[← 深入了解](https://illaira.com/zh/approfondimenti.md)

深入了解

如果你用 Claude，就一定知道 Skills：装着一份指令文件的文件夹，AI 在需要时才加载。它们和 Reminder 足够相似，会让你觉得“这个我已经有了”。但它们做的不是同一份工作，区别一句话就能说清：Skill 回答的是**事情怎么做**，Reminder 回答的是**是谁在做**。

这个异议，我们抢在你想到之前说出来

## “Skills 是官方功能，而且本来就是我自己的文件”

这些全都属实，我们也不绕弯子。Skill 就是一个里面放着 `SKILL.md` 的文件夹：两行 front matter——一个名称和一段描述——然后是正文。它是 markdown，归你所有，存放在 git 里，哪天你改主意了，可以带着它走。没有人把你锁在任何地方。

它的机制也设计得很好。在需要这个 Skill 之前，内存里只留着它的描述——大约一百个词；当 AI 判断它相关时才加载正文，辅助文件则只有在 AI 真的打开时才会加载。这叫渐进式披露，是让 AI 拥有上百种能力、又不必在每一句话里为所有能力付出代价的正确做法。

所以不是的：这一页并不是要说 Skills 做得不好。它存在，是因为**这套机制对一项能力来说是优点，对一个身份来说却是缺陷**。

## 关键在于它何时进入上下文

Skill *在需要时*才进入。这就是它全部的优雅之处：没有理由时它不占任何空间，AI 通过阅读描述来判断理由是否出现。非常适合“按我们的规范排一份演示文稿”这类事情——周二需要，周四就不需要。

身份可不是这样运作的。你是谁，并不是一项到了合适的话题才启动的能力：**它在你开口之前就已经在那儿了**，并且决定你怎样理解问题。只有被调用时才出现的东西，不是性格，只是一本手册。

这就像“会做饭”和“饿了”之间的区别。前者要用的时候才拿出来；后者即使你没在想吃的，也会推着你行动。

## 还有一样东西，是 Skill 没有的

在 `SKILL.md` 里，没有办法写下*这部分你不能改写*。这不是疏忽：Skill 是你交给 AI、让它去用的东西，没有什么需要守护的。

而在 Reminder 里，另一头有一个会读、会理解、也可能改写的存在——所以每个区块都要声明其中有多少归你：从只有你能改的规则，到 AI 不用问你就会更新的笔记。这就是手册和宪法的区别，也是 Reminder 要有结构、而不只是一段文字的原因。

[权限区是怎么运作的 →](https://illaira.com/zh/approfondimenti/zone-di-permesso.md)

## 两栏对照

|  | Skill | Reminder |
| --- | --- | --- |
| 回答什么问题 | 一件事怎么做 | 做这件事的是谁 |
| 何时进入上下文 | AI 判断相关时 | 始终，从第一行开始 |
| 里面有什么 | 一套流程、一些示例、一些脚本 | 核心、模块、记忆、权限 |
| 谁可以改写 | 你，在对话之外 | 取决于所在的区：文件里已经写明 |
| 如果把它拿走 | AI 就不再会做那件事 | AI 就不再是“某个人” |
| 记住的内容 | 没有：明天和今天一样 | 做得怎么样：在模块的关联记忆里 |

## 它们在哪里并存——几乎总是如此

这不是二选一，也没必要把它变成二选一。行得通的分工很清楚：**Skill 负责能力，Reminder 负责身份**。同一场对话，没有冲突——因为它们并不争同一个位置。

对编程智能体来说，这种分工已经有了自己的落脚处：智能体启动时读取的文件——`CLAUDE.md`、`AGENTS.md`——就是放身份的地方，而 Skill 仍然是这个身份懂得执行的各种流程。

而且边界比看上去更有渗透性。你已有的 Skill **可以转成模块**，几乎逐行对应：无须重新发明什么，因为这两种形式回答的是同样的四个问题。

描述：它做什么，什么时候用

### FUNCTION · ### TRIGGER

指令，要遵循的步骤

### ROUTINE

不能做的事，限制

### LIMITI

输入和输出的示例

### ESEMPIO

反过来也成立，这才是出人意料的地方。`SKILL.md` 里强制要求的只有两行 front matter——名称和描述。在那之下你是自由的：**正文的结构没有人规定**。Skill 往往被写成松散的散文，这只是一种流行的习惯，不是规则——Anthropic 自己的指南还推荐编号步骤、输出模板和示例，而这恰恰就是模块已经具备的形态。它可以直接放在 front matter 下面，不用重写。

只有一样东西过不去，值得说清楚。在模块里，声明*这部分你不改写*的那一行有地方安放，应用会强制执行；在 `SKILL.md` 里，这一行无处可放，回路中也没有应用来守护它——区域标记只是留在那里的文字，没有人去执行。翻译一项能力，完全行得通。翻译身份，行不通：这页要说的，就只有这一句。

[与编程智能体怎样配合 →](https://illaira.com/zh/agenti.md)

## 第三条路：不翻译，嫁接

把 Skill 翻译成模块，是一条路。另一条路是完全不翻译。`SKILL.md` 的正文是 markdown，模块可以**原封不动**地容纳它，放在一行声明“这一段归谁”的标记之下：在 Standard 中这行叫 `### SUB-MODULE:`，下面放进 Skill 的全部文字——它的功能、步骤、示例。什么都不用改写。你只需声明它归谁，放在哪里。

```
## MODULE 07: ...
### FUNCTION

### SUB-MODULE: SKILL_A
#### FUNCTION
#### ROUTINE

### SUB-MODULE: SKILL_B
#### FUNCTION
#### ROUTINE

[P4]
### ASSOCIATED MEMORY
[/P4]
```

模块在它周围补上的，是 `SKILL.md` 无处安放的两样东西。第一是**权限区**：嫁接进来的文字落在一个声明了“谁可以改写”的区块里，而拒绝改写的是应用，不是模型。第二是 `### ASSOCIATED MEMORY`，也就是沉淀你*使用它*时所学到的东西的那一节——这些步骤对你来说顺序不同；用你的文件时那一步行不通；你想要更短的输出。**Skill 知道怎么做。模块记得做得怎么样。**

而且一个模块可以容纳不止一个。如果三个 Skill 做的是同一行活——读 PDF、从中提取表格、写出摘要——你可以把它们嫁接到同一个模块里，每个放在一个 `### SUB-MODULE:` 下。从此它们不再一个一个地亮起：**它们会随模块一起进入上下文**，并且彼此看得见。这是你的选择，也是你不再采用渐进式披露的那一刻。

代价说在明处：只要那个模块处于启用状态，你每次都要为三个一起付费，包括那天你只需要其中一个的时候。你买到的是**它们不再互相矛盾**——一份关联记忆代替三份，一条规则只写一次、而不是同一句话写在三个地方，也不会因为 AI 加载了其中一个而没加载另一个，导致活干到一半。如果活是一行，模块就是一个。如果是三行活，就让它们分开，需要时再亮起：这恰恰是单独的 Skill 比这种做法更称职的情形。

今天有一件事要靠手工，最好事先知道：嫁接就是复制粘贴，从那一刻起，副本归你。如果 Skill 的作者发布了新版本，由你决定要不要带进来——文字就摆在你的文件里，一目了然，更新的方式和文件的更新方式一样。这和其他部分是同一个约定：没有任何东西会在你看不见的地方悄悄移动。

## 模块容纳 Skill，并为它赋能

这一点，哪怕对永远不会用 IllAIra 的人也值得说。Skill 知道一件事怎么做。容纳它的模块则记录**做得怎么样**：用你的文件时那一步行不通，你想要更短的输出，对你来说这些步骤顺序不同。流程，以及对流程的经验，放在同一个对象里，权限各不相同——前者在模型不会改写的区里，后者在模型自己会追加的区里。

于是 Skill 不变，模块在变：围绕流程，长出一份**实操记忆**，记录这项能力与你一起使用的历史，每当模块启用，模型都够得着。这和你在 Sphere Grid 里看到的形状一样：整个档案成为某个节点的关联记忆——那里是一本 wiki，这里是一套流程：你在使用它的过程中积累的东西，挂在它所会的事情之下。

[你的整个档案，在这里就是一个节点 →](https://illaira.com/zh/approfondimenti/non-e-un-grafo-di-note.md)

## 逐条回应质疑

### “你们的并不是谁的官方标准”

没错，所以才公开发布。Reminder 就是 markdown：你用任何编辑器都能打开，不需要我们就能读，不用谁批准就能改。不存在必须一直运行才能让这个文件继续有意义的运行环境。就算 IllAIra 明天消失，你的文件还在，用起来也一样——而一段住在别人服务里的记忆，就做不到这一点。

### “写一份很长的系统提示词就够了”

能用，用一阵子。然后它越来越长，你会发现它缺的三样东西：不重读全文就没法改其中一块；没法声明某一部分不可触碰；也没法“看”它——它是一堵文字墙，不是一张地图。Reminder 是同一个想法，外加一层结构，而正是这层结构让其余一切成为可能。

### “Skill 也可以装下一种性格”

可以，而这恰恰是最容易出错的做法——因为它几乎行得通。但它依然只是在 AI 认为时机相关时才加载的东西，也没有人告诉过它：关于它自己的任何内容都不可改写。你得到的是一个时有时无、毫无防护的角色：看起来像身份，直到真正需要它是身份的时候。

### “这只是 markdown：你们卖给我的是什么？”

问得公道，老实回答是：**你可以自己动手，免费，没有人拦着你**。Standard 是特意公开的。我们卖的是其余部分——让你看见自己搭建了什么的 Sphere Grid，应用真正会强制执行的权限区，由以此为业的人写好的 Reminder，以及对“用了什么”的追踪。不是格式：格式无论如何都是你的。

### “谁来保证 AI 会遵守？”

**没有人，谁说能保证，谁就是在向你推销什么。**Reminder 是 AI 读取的文字：它遵守到什么程度，取决于它遵守指令到什么程度——几乎总是遵守，但不是出于合同。Skill、系统提示词，以及你放在它面前的任何东西，都是如此。

我们能保证的是另一半，也是真正关键的那一半：**应用不会写进区域标明“不行”的地方**，而这个拒绝并不经过模型。模型这边是一项声明出来的约定；我们这边是你可以读到的代码。

和其他一切一样：模型会被训练，并且会自己学着遵守它所认定的既有惯例——事情本来的运作方式。要让它们在应用之外也遵守——在聊天里、在别的工具里——唯一的办法就是使用。这套方法越是公开、越是被使用，就越会成为模型预期会遇到的东西。这不是写进合同的保证。这是约定如何变成习惯，对模型如此，对人也一样。

### “你们把我绑在你们的格式上”

离开的代价是：把文件带走。它们是 .md，已经在你的设备上，导出 ZIP 只要点一下。没有要导出的数据库，没有要转换的专有格式，也没有留在我们这边的历史记录。问“以后我想退出怎么办”，是该问任何人的正确问题——我们的回答是：你其实已经退出了，因为这些文件从来就不是我们的。

### “每次对话都要花 token”

是的，而且不算少。这正是结构做成模块化的原因：装着身份的织布机始终都在，模块需要时加上，不需要时拿掉。想要最少的人，只留织布机，别的都不要。想要全部的人，为全部付费，并且心里有数——但不是付给某个服务商：这些 token 在免费额度里就装得下，哪一个用完了，同一个文件在下一个里照样打开。

### “我得学一种格式”

是的。比看上去的少——一个标题、几个核心、几个模块——但不是零，我们也不假装是零：第一天，打开聊天直接打字更快。差别出现在第三十天，那时那个聊天什么都不记得，而文件记得。

[Standard 全文，以及公开仓库 →](https://illaira.com/zh/documentazione.md)

## 一句话

Skill 是你的 AI *知道怎么做*的事。Reminder 是它做这件事时*是谁*。两个都留着：它们互不干扰，因为不在同一个位置。

[获取一份 Reminder](https://illaira.com/zh/bazar.md) · [在哪里加载它](https://illaira.com/zh/approfondimenti/dove-caricare.md)
