Skip to content

Skills

Skill 是一个紧凑、自包含的知识包,agent 可以按需读取。把每条写作规则、每条口吻约定、每份反八股清单全塞进一份巨型系统提示词里是常见痛点;Skill 让你把它们拆成命名的包,由 agent 在真正需要的时候去拉。

Luker 的 Skill 格式与 Anthropic Claude Skills 兼容 —— 同样的 SKILL.md + frontmatter + 可选子文件结构 —— 所以 Claude Code 里写的 Skill 放进 Luker 能直接用,Luker 里写的 Skill 放进 Claude Code 也不用转换。

编排器自带的默认 director profile 就是建立在 Skill 之上的:一段极薄的主代理身份提示词 + 24 份出厂 Skill,agent 按名字读取。你也可以把自己的 profile 调成同样的样子。

为什么有这玩意

多 agent 编排里最常见的痛点之一是「这个 prompt 两千多行,我不敢动它」。所有可复用的规则 —— 反八股清单、角色口吻约定、七步回合工作流、事件摘要格式 —— 过去都内联在 systemPrompt 字段里,经常在多个子代理里重复拷贝。

Skill 把这整块拆开。agent 的身份留在 systemPrompt(「你是口吻评审,这是你的职责」);可复用规则放进 Skill 文件里。agent 在真正需要时通过 skill_read 读取,规则的编辑、版本管理、分发都跟消费它的 prompt 解耦。

Skill 的结构

一个 Skill 是一个目录:

director-anti-cliche-zh/
├── SKILL.md          # 必需 —— frontmatter + 正文
├── references/       # 可选 —— 辅助清单、更长的参考资料
├── examples/         # 可选 —— 真实示例
└── assets/           # 可选 —— 二进制附件

SKILL.md 是唯一必需的文件。它带着 Anthropic 标准的 YAML frontmatter:

markdown
---
name: director-anti-cliche-zh
description: 叙事写作的反八股模式。
license: MIT
metadata:
  author: Luker Team
  version: 1.0.0
  tags: [writing-rules, zh, director]
---

# director-anti-cliche-zh

本 Skill 记录了默认 director profile 主动防范的八股模式……
  • namedescription 是必需的。
  • licensemetadata.* 是可选的,遵循 Anthropic 标准。Luker 不引入私有命名空间。
  • 正文就是「契约」—— agent 读取这个 Skill 时,正文就是它消费的内容。要写得直接、命令式;把「什么时候用」「怎么用」「优先使用哪些工具」等指导都放进正文。

完整的写作手册见 创作 Skill

三种作用域

Skill 物理上存放在 data/<user>/skills/<scope>/。Luker 有三种作用域:

作用域存放位置何时生效用途
globaldata/<user>/skills/global/<name>/始终可见通用写作规则、反八股清单、共享方法文档
presetdata/<user>/skills/preset/<api>/<preset>/<name>/仅在选中该预设时跟某个 Chat Completion 预设强绑的规则(如为 Claude 4 derive 的编排器预设)
characterdata/<user>/skills/character/<file>/<name>/仅在加载该角色卡时角色卡专属设定、口吻约定、世界内俚语

当 agent 按名字查找 Skill 时,运行时遍历三种作用域,应用后者优先的优先级:character 覆盖 presetpreset 覆盖 global。所以一个名为 voice-rulescharacter 作用域 Skill 会在该卡加载期间悄悄接管同名的 global 版本,切换卡片后再退回。

重要:编排器 profile 里写 skills.visible: ["voice-rules"] 时,它只按名字引用 —— 没有作用域前缀。把 Skill 在作用域之间挪动永远不会破坏引用。

预设 / 角色卡作用域的 Skill 会随它们一起导出

presetcharacter 作用域不只是你自己存放 Skill 的目录——它们打包导出时,Skill 也跟着走:

  • 预设作用域的 Skill 会写进预设的 JSON。导出预设、发给别人、对方导入——他们也得到你的 Skill。
  • 角色作用域的 Skill 会写进角色卡 PNG 的 metadata。导出 PNG、分享卡片,你的 Skill 跟着卡走。

所以如果你写的写作纪律 Skill 依赖某个预设的提示词结构,或者某条嗓音规则只对一张卡有意义,按这个作用域写就够——分享是顺带的事,不用单独处理。详见 把 Skill 打包进预设 / 卡片

agent 如何看到 Skill

编排器 profile 在两个层级带着 skills 策略:

  • 模式级 —— 适用于该模式下每个 agent(主代理 + 子代理)的默认值。
  • 每 agent 覆写 —— 每个 agent 可以钉自己的 visible / deny 列表。开头的 "+" 表示继承模式默认值再追加。

运行时在派遣时把策略与物理库存对账,给 agent 交付一份过滤后的清单。由此带来两件事:

  1. 一份精简目录被自动注入到 agent 的系统提示词—— <available_skills> 块逐行列出每个可见 Skill 的名称和描述。agent 不需要花一轮 skill_list 工具调用就知道有什么可用。
  2. 三个函数工具 —— skill_listskill_readskill_search —— 提供给 agent。它们被限制在可见集内;agent 拿不到策略之外的 Skill。skill_read 是主力 —— agent 需要正文时就调用它。它还接一个 path 参数,所以带子文件(references/examples/ 等)的 Skill 可以选择性地按路径读:skill_read({ name: "my-skill", path: "references/checklist.md" })。skill 作者在 SKILL.md 里写明哪些子文件值得拉、什么时候拉 —— 见 创作 Skill

策略解析的完整规则见 编排器集成

分层概览

d2 Diagram

读 vs 写

agent 只能通过三个函数工具读取Skill,无法修改。这是有意为之 —— Skill 是用户管理的底层素材,只有用户(或者代表用户工作的 AI 助手,比如 迭代工作台 的 Skill 工具)才能改 Skill 内容。

面向用户的写入入口:

  • 编排器配置里的 Skill 管理子面板 —— 安装、编辑、改名、迁移作用域、删除。
  • 内嵌 Skill 编辑器 —— 文件树 + Markdown 编辑器,编辑 SKILL.md 和子文件。
  • 导入 / 导出 —— 把一个或多个 Skill 打包进角色卡或预设;导入时从内嵌载荷里抽出 Skill。详见 Skill 管理
  • 迭代工作台工具 —— 让迭代工作台的 AI「把这条写作规则抽成一个 Skill」时,它通过一组专门的工具完成抽取,并把 agent 的 systemPrompt 同步改写。

24 个出厂 Skill

全新的 Luker 安装会把 data/<user>/skills/global/ 填入 24 个出厂默认 Skill,全部由 director profile 原先的内联 prompt 拆解而来。它们分三类:

  • 共享类(5 个)—— director-anti-cliche-zhdirector-character-voice-zhdirector-no-meta-zhdirector-output-discipline-zhdirector-zh-style-baseline。所有默认 director 子代理都可见。
  • 主代理类(2 个)—— director-turn-workflow-zhdirector-dispatch-protocol-zh。仅主代理可见。
  • 每子代理一份(17 个)—— 每个默认子代理一份方法/契约 Skill(如 voice-critic-method-zhevent-summary-rules-zhchat-scout-method-zh)。

这些出厂 Skill 从原 director 默认值逐字搬出 —— 没有改写、没有压缩 —— 所以基于 Skill 的新版 director profile 跟未拆分前同强度。详见 [Director 模式 → 默认 Skill](/zh-CN/features/orchestrator/director#默认 Skill)。

下一步去哪

基于 SillyTavern 构建