技能
技能是决定 AI 行为方式的 Markdown 指示书。写下它的角色和语气、看哪些数据以及怎么看、用什么格式回答,AI 每次都会照做。
技能是给 AI 读的东西,与 AI 能执行的功能是两回事。能执行的功能(应用主题、添加列之类的操作)称为 capability,只有在权限设置中允许的范围内才能使用。无论技能里写了什么,未被允许的操作都不会执行。
最小结构
在 Markdown 文件的开头写 frontmatter,下面写正文。
---
id: my-skill
name: 摘要小助手
mode: manual
---
你是 Misskey 客户端 NoteDeck 的操作辅助 AI。
请用简体中文简洁地回答。何时被读取(mode)
| mode | 何时传给 AI | 适合的用途 |
|---|---|---|
always | 所有对话中始终传递 | 整个应用的行为准则 |
manual | 只在 UI 中切换启用时 | 切换人格、只在需要时才拿出的专业知识 |
trigger | 只在输入包含 triggers 中词语的轮次 | 只在特定话题时才需要的知识 |
heartbeat | 每次定期执行时 | 定期查看情况并报告 |
mode: trigger 需要在 triggers 中列出词语。每次对话都让 AI 读取全部内容会增加成本,所以内容越专业,越适合用 trigger。
编写原则
在开头固定角色和语气 — 首先写清楚这是做什么的 AI、该怎样回答。
写明查看数据的顺序 — 界面上可见的帖子和账户信息每次都会传给 AI。在这些已经足够的情况下还让它通过 capability 重新获取,只会增加无谓的往返。可以这样写:“引用界面上的帖子时,先看已经传给你的内容;只有需要所有账户时才获取列表”。
严格指定回答格式 — 指示含糊时,往往会得到长篇大论。写上“第一行用 30 个字以内给出结论”“列表最多 5 项”之类的约束会很有效。
写明失败时的行为 — 预先决定在取不到数据、权限不足、无法理解请求时该怎么回答。
明确写出 capability 名称 — 如果只写“更换主题”,AI 有时会在没有实际操作的情况下回答“已更换”。请像“获取主题列表 → 选出名称匹配的 id → 应用”这样写明步骤和名称。
定期执行的技能
mode: heartbeat 的技能会在应用运行期间一直定期执行。如果在 frontmatter 中声明“要盯着什么”,那么在与上次相比没有变化时,就会直接跳过对 AI 的调用。不声明的话,即使没有变化,每次也都会调用 AI 并产生费用。
如果把每次执行必然会变化的东西(当前时间等)作为监视对象,就会一直被判定为有变化,跳过机制也就不起作用了。请从“什么变化时希望它醒来”出发进行选择。
敏感信息的处理
传给 AI 的数据中,相当于令牌或密码的项目会被自动移除。
制作与发布
可以在 AI 列中提出“做一个能某某的技能”。手动编写时,只需在设置文件夹中放一个 Markdown 文件。制作的内容可以在 MisStore 上发布(提交方法 / 格式)。
capability 的列表和权限的详情,请参阅仓库中的 SKILLS.md。