writing-great-skills
Installation
SKILL.md
Skill 的存在意义是从随机系统中榨取确定性。可预测性——即 Agent 每次运行时遵循相同的过程,而非产生相同的输出——是根本美德;以下每一个杠杆都服务于它。
粗体术语在 GLOSSARY.md 中有定义;可查阅该文件获取完整含义。
调用方式
两种选择,各自付出不同的成本:
- 模型调用(model-invoked) skill 保留 description,因此 Agent 可以自主触发它,同时其他 skill 也能调用它(你也可以直接输入名称)。它会增加 上下文负载(context load)——description 每一轮都存在于上下文中。机制:省略
disable-model-invocation,编写面向模型的 description,包含丰富的触发短语("当用户想要……、提及……时使用")。 - 用户调用(user-invoked) skill 从 Agent 的视野中移除 description:只有你输入其名称才能调用它——其他 skill 也无法调用。零上下文负载,但消耗 认知负载(cognitive load):你必须记住它的存在。机制:设置
disable-model-invocation: true;description变为面向人类——一行摘要,移除触发列表。
只有在 Agent 必须自主调用该 skill,或必须被其他 skill 调用时,才选择模型调用。如果只通过手动触发,则设为用户调用,不支付上下文负载。
当用户调用的 skill 多到你记不住时,累积的认知负载可以通过一个 路由 skill(router skill) 来解决:一个用户调用的 skill,列出其他 skill 及其适用场景。
编写 description
模型调用的 description 承担两项工作——说明 skill 是什么,以及列出应触发它的 分支(branches)。每个词都增加 上下文负载,因此 description 的删减力度甚至要比正文更严格: