Skill 管理
夜莺 v9 Skill 管理:把领域知识/操作经验封装成 Markdown 提示词包,让 AI Agent 在合适场景自动调用,输出更稳定专业的回答。
概述
Skill = 一份带描述的「提示词指令包」。每个 Skill 是一段 Markdown 写的"领域知识 + 操作指引",AI Agent 在执行任务时自动判断当前上下文是否匹配某个 Skill 的描述,匹配上就把这份提示词加载进上下文,让模型按 Skill 里写的方法行事。
侧栏路径:AI 配置 → Skill 管理,URL /ai-config/skills。
形象类比:
- LLM 配置 = 给 AI 一个大脑(大模型本身)
- Skill = 给这个大脑一本"操作手册"或"专家备忘录"
举例:
- 你写一个
linux-troubleshootSkill,描述写"Linux 主机故障排查方法论",正文里列举常见的 CPU/内存/磁盘/网络问题的排查命令。下次有人问 AI 助手"我这台机器为什么慢",系统自动把这份 Skill 喂给模型,回答就会按你的方法论展开。 - 一个
flashcatSkill 写清楚团队内"如何用 FlashCat 看告警"的标准动作,AI 帮新人排障时就会按这个规范走。
关键点:启用 Skill ≠ 每次回答都会用。 是否调用取决于模型对"用户问题 + Skill 描述"的匹配判断。所以描述(description)字段要写好 — 它就是 Skill 的"检索关键词"。
页面布局

- 左侧:Skill 列表 + 搜索框 +
+新建按钮(点开有"在线创建"和"本地上传"两种模式) - 右侧:选中 Skill 的详情
- 头部:Skill 名称 + 启用 开关 + 三点菜单(替换 / 下载 / 删除)
- 元信息:作者用户名、最近更新时间、描述
- 提示词指令:核心内容;右上角 👁️ /
</>切换"渲染视图(formatted)“和"原文视图(code)”
创建 Skill 的两种方式
方式一:在线创建(适合简单 Skill)
点 + → 在线创建 Skill,弹出表单:

| 字段 | 必填 | 说明 |
|---|---|---|
| 名称 | 是 | 用作 Skill 的唯一标识;建议用 kebab-case 英文,如 linux-troubleshoot、promql-helper、incident-runbook |
| 启用 | 默认开 | 关掉后 Skill 不会被任何 AI 调用考虑 |
| 描述 | 否(但强烈建议填) | AI 用来匹配上下文的依据 — 越具体、越多关键词越好,比如"Linux 主机 CPU / 内存 / 磁盘 / 网络故障排查方法论,常见命令如 top, free, iostat, ss 等" |
| 提示词指令 | 是 | Skill 的核心内容;写 Markdown,可以用标题、列表、代码块组织 |
方式二:本地上传(适合带资源文件的复杂 Skill)
点 + → 本地上传 Skill,上传一个 .zip 或 .tar.gz 压缩包:
- 压缩包根目录必须有一个
SKILL.md,包含 YAML frontmatter + Markdown 正文。 - 同目录可以放任意辅助文件(脚本、参考数据、子文档),Skill 可以在 prompt 里通过相对路径引用。
SKILL.md 的模板:
---
name: linux-troubleshoot
description: Linux 主机 CPU / 内存 / 磁盘 / 网络故障排查方法论,附带常见排查命令
license: Apache-2.0
compatibility: 需要 shell 访问权限
allowed-tools: Bash(top:*) Bash(free:*) Bash(iostat:*) Read
---
# Linux 故障排查
## CPU 高
1. `top -c` 看 CPU 用得最多的进程
2. `pidstat -u 1 5` 看每秒 CPU 分布
...
## 内存爆
...
frontmatter 里的字段就是后面"高级设置"里的字段(许可证、兼容性、预授权工具等)。
已经写好的 Skill 可以从详情页下载为压缩包,作为团队内共享或者跨实例迁移的载体。Anthropic 的 Agent Skills 也是同一套结构,社区里很多 Skill 库可以直接拿来用。
高级设置
新建 / 编辑表单的「高级设置」里可配:
| 字段 | 作用 |
|---|---|
| 许可证 | 例如 MIT、Apache-2.0,Skill 分享出去时让使用者明白合规边界 |
| 兼容性 | 描述这个 Skill 对环境的依赖,例如"需要 git、docker"、“需要联网”。AI 在没有相应能力时会跳过 |
| 预授权工具 | 空格分隔的工具调用白名单,例如 Bash(git:*) Bash(docker:*) Read。只有列在这里的工具调用才不会再二次跟用户确认,否则 Agent 每用一次工具都会让用户点同意 |
| 元数据 | 自定义 key-value,给 Skill 打标签 / 写版本号 / 关联 owner 等 |
操作
- 启用 / 禁用:开关一拨即可生效,无需保存。
- 替换:在三点菜单选「替换」上传新的
.zip/.tar.gz,会完全覆盖当前 Skill 的所有内容(包括资源文件)。 - 下载:把当前 Skill 导出成压缩包,方便备份、版本管理、分享。
- 删除:会有二次确认,删除后无法恢复(已下载的备份还能再次上传恢复)。
写好提示词指令的建议
Skill 的提示词指令本质上是给模型读的"标准作业书",写得好不好直接决定输出质量。
- 开头一句话点题:用最简洁的语言说清楚这个 Skill 是干啥的、什么时候该用。
- 结构化:用
## 子任务把大任务拆开,每个子任务下再用列表/代码块写步骤。Markdown 结构越清晰,模型越容易稳定执行。 - 少用"我建议"、多用祈使句:模型会模仿你的语气。写"请运行
top -c并截图前 10 行"比"建议你可以试试 top"更确定。 - 明确边界:写清楚"不要做什么" — 例如"不要主动修改生产环境配置,只输出建议命令"。
- 配示例:给一个具体的"输入 → 输出"例子,比千言万语都管用。
- 测试一遍:写完后开个智能问答会话试一下,看 AI 是不是按你期望的路径回答;不对就回来改描述(提升匹配率)和指令(提升执行准确度)。
常见问题
Q1:我新建了一个 Skill 并启用了,但 AI 助手回答时没用上,怎么办?
A:90% 是描述(description)写得太泛。AI 是先看描述决定调不调你的 Skill。把描述改得更具体、塞入用户可能提到的关键词,比如把"故障处理"改成"Linux 主机 CPU / 内存 / 磁盘 / 网络故障排查,含 top、free、iostat、ss 等常用排查命令"。改完再问就会优先命中。
Q2:多个 Skill 描述都很像,会同时被用上吗?
A:会。模型会把多个匹配的 Skill 一起注入上下文,但会占用上下文窗口。建议:
- 同一主题的 Skill 合并成一个,用
## 子章节分隔; - 用「兼容性」字段写明先决条件,让 AI 在条件不满足时跳过;
- 关掉长期不用的 Skill(启用开关)。
Q3:本地上传的 Skill 包能用 Anthropic 官方 Skills 库的吗?
A:可以。夜莺的 Skill 包格式与 Anthropic Agent Skills 规范兼容 — 根目录的 SKILL.md + frontmatter 完全一致。社区里 anthropics/skills 这种开源 Skill 库的内容可以直接打包上传。
参考资料
- LLM 管理(Skill 调用的底层模型,可以为 Skill 指定专用 LLM)
- Anthropic Agent Skills 规范
- 社区 Skills 仓库(anthropics/skills)