原文:https://mp.weixin.qq.com/s/VQSRPTf5bOyA1bjS2JH5Kw

skills做知识库检索原文:https://mp.weixin.qq.com/s/9QT1R0vRQAV2bxLeLljifw

定义

简单说,Skills 的作用就是将那些重复性的、专业的流程进行打包封装。当你需要使用某种能力时,不再需要像过去那样每次都去查阅手册或重新输入冗长的提示词,而是像调用工具一样直接使用。

Agent Skills提供模块化能力插件,相当于安装外接工具箱+工具使用说明。

介绍

每个 Skill 都是一个实实在在存在的文件夹,它存放在一个固定的位置(如 .claude/skills)这个文件夹里装着下面几样东西:

  1. 指令(SKILL.md): 告诉 AI 怎么干活的 SOP。
  2. 参考(reference): 更详细的参考文档(可选)。
  3. 脚本(scripts): 比如 Python 代码,让 Skill 也能调用外部能力(可选)。
  4. 资源(assets):图片、模版等可能使用到的资源(可选)。

类比:import xxx来引入外部包

内容

Skill 的「身份证」:

  • name 是它的唯一标识,起个简单好记的英文名字就行
  • description 则决定什么时候会触发这个 Skill,描述这个 Skills 是做什么的、遇到什么样的用户请求应该用它、提醒读者:描述越具体,越容易在正确场景被调用

Skill 的正文部分:

  • 目标:简单描述清楚这个 Skill 要做的事情
  • 使用步骤:列出 Skill 的操作流程(先搞清楚想要什么风格、再读原文、再改写、最后规定输出格式)
  • 注意事项:告诉模型「什么不要做」(不要乱加内容、不要替用户做决定、有歧义要提醒)

核心机制

  1. 先看目录(metadata)

什么时候加载? 系统刚启动的时候。

加载什么? 只加载每个技能的名字和一段简短的描述。

有什么用? 这一层占用的资源极少,可能就几百个 Token。它的作用就是告诉 Claude:“嘿,你的工具箱里有‘查周报’、‘处理 Excel’ 这几个工具哦。”

结果: Claude 知道自己 “会什么”,但还不知道 “具体怎么做”。

  1. 查看手册(指令Instructions)

什么时候加载? 当你提供指令时。“帮我把这个 Excel 处理一下”。

加载什么? Claude 发现这事儿归 “Excel 处理” 这个技能管,于是它才会通过后台命令,去读取那个文件夹里的 SKILL.md 文件。

有什么用? 只有在这个时候,那些详细的操作步骤、注意事项才会进入 AI 的脑子。

  1. 开始运行(Runtime Resource)

执行具体步骤时加载。

加载什么?

  • 参考(reference): 用户下达的任务可能是分析 Excel,也可能是创建 Excel,这两个操作可能有完全不同的处理步骤,详细的步骤不一定都在 SKILL.md 中,可以分开放在不同的参考文献(reference)下,当 Claude 识别到你要做的是分析 Excel 时,才会去查阅分析 Excel 的 reference。
  • 脚本(scripts):Skill 中可以内置一些可执行的 Excel 处理脚本,在 SKILL.md 或者具体的参考文献(reference)下会告诉你应该调用以及如何调用这些脚本。还有最重要的一点,Claude 只需要按照指引执行脚本,而脚本本身的代码是不会塞给 AI 去读的,你完全不用担心一个超大代码文件会消耗 Token。

按需查阅和调用,不占用上下文。

使用

去哪找skills :

随便进入一个MCP市场,基本都有skills 分类区。

github也有一部分集合。

https://skillsmp.com/

与 mcp 不同,只要会写提示词,就会写skills。

怎么使用

  1. 找到需要的skills,下载到本地。
  2. 解压压缩包,将目录下载到指定位置:
Platform Skill Directory Path
Claude Code .claude/skills//
Codex .codex/skills//
Cursor .cursor/skills//
Amp .agents/skills//
Antigravity .agent/skills//
GitHub Copilot .github/skills//

基本上都是 .agentName/skills 目录

  1. 接下来就可以打开所使用的客户端,输入提示词开始使用

你不需要手动去 “安装” 或 “运行” Skill,只要文件放对位置了,OpenCode 的 AI 就会自动根据用户的需求判断要调用这个 Skill。

创建

Anthropic 官方直接给我们提供了一个 生产 Skills 的 Skill:Skill Creator

你不需要写一行代码或配置文件,只需要用自然语言告诉它你想做什么,它就会自动为你生成一个符合标准的 Skill 包。

  1. 将该skill用以上“使用”方法下载下来放在对应目录里。

  2. 给出以下提示词(示例):

帮我创建一个可以准确获取当前系统时间的 Skill,描述使用中文,脚本使用 Node.js。

  1. 然后所使用的 agent 就可以开始创建,调用 skill-creator

  2. 然后打开 skills 目录,现多了一个 current-time-node skill,包含一个 SKILL.md 加一个获取准确时间的 Node.js 脚本。

  3. 就可以开始使用了。

知识库检索功能

将pdf转换为markdown文档会使检索效率更高。

但是感觉这个只适合中小型知识库,大型还是RAG。

skill实现原理

只需要在这个 Skill 中教会 AI 如何更好的使用一些基础的文件检索能力(ls、grep、glob)。

定位领域:通过分析用户的问题,然后结合知识库的目录索引定位出知识可能存在的领域(文件夹)。

定位文件:使用 grep 这样的方式在指定目录、文件里筛选出「可能相关的文件」,然后再按需用不同工具去读取这些文件的关键部分。

定位内容:针对不同文件类型用不同策略:

  • Markdown / 文本:直接定位到匹配段落,结合上下文分析
  • PDF:编写代码调用专门的 PDF 能力按页、按章节提取内容
  • Excel:编写代码读取 Excel,然后只看跟问题相关的表、行、列,而不是把整份表格搬出来

渐进检索:少读但读准,且优先查

保持简单可控: 用户指出位置,检索策略由skill自动化

辅助技巧:

  1. 文件夹尽量按领域划分,每个文件夹下只包含特定领域下的文件

  2. 每个文件夹下都有一个目录索引文件 data_structure.md(如果文件命名不规范、且包含 PDF 等非纯文本的文件格式,这个是必要的),这个文件中描述了当前文件夹下每个文件的用途(这里参考了 Skill 的渐进式披露的设计原则,如果有多级嵌套领域(目录),AI 找到了这个领域后才会读取这个领域的目录索引)。

实现

目录结构:

  • SKILL.md :是这个技能的使用说明书,里面描述了如何找到本地知识库目录、如何根据目录索引逐层检索知识、对不同文件的处理方式(参考哪个文档)、最终的回答风格等等
  • references:放置 PDF、Excel 等特殊文件类型的解析方法,只有确定当前知识需要具体分析一个 PDF、Excel 或其他特殊的文件类型时,再查阅详细的处理文档,可以节省 Token 和注意力。
  • scripts:放置 PDF 文件的特殊处理脚本(如解析 PDF、PDF 转图片等等)

当然也有首次效率低,不稳定,token消耗更大的缺陷。

将已有文档站/文件夹变为知识库

提示词:

当前项目是一个文档站(包含多个 md、mdx 文件),我想创建一个专用于知识库检索的 Skill,它可以替代传统的 RAG ,用于当前文章站的知识检索,你来帮我创建这个 Skill(使用中文)。Skills 的基本思路是,先根据用户的问题,提取出需要检索的可能关键字,然后使用 Grep 命令找到对应的上下文。然后分析上下文,如果检索到的信息和问题不符合需要继续检索其他可能关键字,最大重试五次。