Agent Skills(智能体技能)
Agent Skills 最近非常的火,它是既 MCP 后 Anthropic 推出的又一个 Agent 领域的行业标准。
简单来说,Skills的作用就是将那些重复性的、专业的流程进行打包封装。当你需要使用某种能力时,不再需要像过去那样每次都去查阅手册或重新输入冗长的提示词,而是像调用工具一样直接使用。
Skills的核心价值:把重复的指令打包,按需加载。
一句话总结:Skills是模块化的能力包,包含指令、脚本和资源,让Claude在需要时自动加载和使用。
一、 Skills 入门理解
1.1 Skills 到底是什么?
在传统的 AI 聊天模式中,AI 的能力取决于:
- 它原本学过什么(训练数据)
- 你临时在对话框里告诉它什么(提示词、工具、记忆)
这就像你招了个什么都懂一点的实习生,每次干活你都得重新教一遍。
而 Agent Skills 带来了一种全新的玩法:模块化能力插件。
你可以把 Claude(支持 Skills 的客户端)想象成一个超级大脑,而 Agent Skills 就是给这个大脑安装的外接工具箱。
这个工具箱不仅有工具本身,还包含了详细的“官方使用说明书”。大脑不需要理解具体有哪些工具以及工具的用法是什么,只需要在需要使用某个工具时查看工具说明书,再把工具拿来用。
1.2 Skills 长什么样?
Agent Skills 的官方文档中强调了一个核心关键词:File-system based(基于文件系统)。
如果你写过代码,可能很容易理解。
要编写一个程序,并不一定所有代码都是我们自己写的。
我们可能会通过 import xxx 来引入一些外部包,这些包存放在固定的位置(如 node_modules)。
当程序需要调用这些包的能力时,就会从指定文件夹取出对应的代码然后执行。
Agent Skills 也是类似的逻辑,每个 Skill 都是一个实实在在存在的文件夹,它存放在一个固定的位置(如 .claude/skills)这个文件夹里装着下面几样东西:
- 指令(SKILL.md):告诉AI怎么干活的SOP
- 参考(reference):更详细的参考文档(可选)
- 脚本(scripts):比如 Python 代码,让 Skill 也能调用外部能力(可选)
- 资源(assets):图片、模版等可能使用到的资源(可选)。
如果你在你的 Agent(如 Claude Code)执行目录(如你的项目代码目录)下放了这个文件夹,
那下次和 Agent 对话的时候就能自动根据你的需求匹配到这个 Skill,不需要再进行任何额外的配置。
比如,你希望 Agent 帮你润色文章,就可以编写一个下面这样的 Skill:
上面的三根短横线部分相当于 Skill 的「身份证」:
- name是它的唯一标识,起个简单好记的英文名字就行
- description则决定什么时候会触发这个 Skill,描述这个 Skills 是做什么的、遇到什么样的用户请求应该用它、提醒读者:描述越具体,越容易在正确场景被调用
下面就是 Skill 的正文部分:
- 目标:简单描述清楚这个 Skill 要做的事情
- 使用步骤:列出 Skill 的操作流程(先搞清楚想要什么风格、再读原文、再改写、最后规定输出格式)
- 注意事项:告诉模型「什么不要做」(不要乱加内容、不要替用户做决定、有歧义要提醒)
看起来挺普通的?似乎很多能力都可以做这件事?
- 可以把这段文字和要润色的文章直接发给大模型?
- 可以把这段文字放到系统提示词?
- 可以把这段固定的流程封装为一个 Workflow?
- 可以把这段文字编写为一个 Agent.md 或者项目级的 Rules?
这些方式看似不同,但本质上只是把提示词放在了不同的位置,你给 AI 的每次对话都会带上这些提示词。
在真实的业务场景中,一个 Agent 不可能只干一件这么简单的事。大家试想一下,如果你要给 AI 装 50 个技能,每个技能都有几千字的说明书,要是系统一启动就把这些全塞进 AI 的脑子(Context Window)里,那么就会:
- 成本爆炸,每次对话可能都会消耗几万 Token。
- AI 的注意力也会被分散,变得“这也想干,那也想干”。
Skill 的出现就是为了解决这种问题,它有一个非常核心的机制,叫渐进式披露(Progressive Disclosure)。说人话就是:按需加载,用多少拿多少。
- 在 Agent 启动时,仅将所有 Skills 的基本描述加入 AI 的上下文
- 当用户发出需求时,AI 会根据 Skill 的描述判断具体要调用哪个 Skill
- 决定后再去读取这个 Skill 的使用说明(SKILL.md)
- 然后再根据使用说明进一步读取更详细的参考文档,以及决定是否执行某个脚本来连接外部世界
1.3 Skills 的核心机制
这是我觉得 Agent Skills 设计得最聪明的地方。你可以把它想象成我们在图书馆查资料的三个步骤,非常直观:
第一层:先看目录(元数据 Metadata)
- 什么时候加载? 系统刚启动的时候。
- 加载什么? 只加载每个技能的名字和一段简短的描述。
- 有什么用? 这一层占用的资源极少,可能就几百个 Token。它的作用就是告诉 Claude:“嘿,你的工具箱里有‘查周报’、‘处理 Excel’ 这几个工具哦。”
- 结果: Claude 知道自己 “会什么”,但还不知道 “具体怎么做”。
第二层:翻开手册(指令 Instructions)
- 什么时候加载? 当你说 “帮我把这个 Excel 处理一下” 的时候。
- 加载什么? Claude 发现这事儿归 “Excel 处理” 这个技能管,于是它才会通过后台命令,去读取那个文件夹里的 SKILL.md 文件。
- 有什么用? 只有在这个时候,那些详细的操作步骤、注意事项才会进入 AI 的脑子。
第三层:动手干活(运行时资源 Runtime Resources)
- 什么时候加载? 真正执行具体步骤的时候。
- 加载什么?
- 参考(reference): 用户下达的任务可能是分析 Excel,也可能是创建 Excel,这两个操作可能有完全不同的处理步骤,详细的步骤不一定都在 SKILL.md 中,可以分开放在不同的参考文献(reference)下,当 Claude 识别到你要做的是分析 Excel 时,才会去查阅分析 Excel 的 reference。
- 脚本(scripts):Skill 中可以内置一些可执行的 Excel 处理脚本,在 SKILL.md 或者具体的参考文献(reference)下会告诉你应该调用以及如何调用这些脚本。还有最重要的一点,Claude 只需要按照指引执行脚本,而脚本本身的代码是不会塞给 AI 去读的,你完全不用担心一个超大代码文件会消耗 Token。
这意味着:一个 Skill 可以打包整套说明文档、大量的执行脚本,但只要任务不需要,这些内容就永远不会占用上下文。
二、Skills VS MCP
看到这,你可能会觉得 Skills 和 MCP 有点像?
它们似乎都可以做到按需加载、给 AI 扩展外部能力?
这也是很多同学可能会弄混的问题。
2.1 MCP 有什么问题
在 全网最细,一文带你弄懂 MCP 的核心原理! 中,介绍了 MCP 出现的意义和执行原理:
MCP(Model Context Protocol,模型上下文协议)是由 Anthropic 公司推出的一个开放标准协议,它就像是一个 “通用插头” 或者 “USB 接口”,制定了统一的规范,不管是连接数据库、第三方 API,还是本地文件等各种外部资源,都可以通过这个 “通用接口” 来完成,让 AI 模型与外部工具或数据源之间的交互更加标准化、可复用。 |
所以MCP的本质,还是在做“标准化”,它让给AI扩展外部能力这件事更“标准化”
假如你的 Agent 连接了多个 MCP,它似乎也能实现 “按需加载”(根据用户的意图决定调用哪个工具)。
但这个 “按需加载” 背后的代价是非常巨大的,在 MCP 的架构下,仅仅是“连接”这个动作,就已经在透支你的额度了。
这是由 LLM 的工具调用机制决定的。为了让 AI 知道它有哪些能力可用,每一个连接的 MCP Server 必须在对话开始前,将其所有工具的完整定义(名称、详细描述、参数 Schema、使用示例)一次性注入 LLM 的上下文中。
每个 MCP Server 一般都会包含大量的工具,比如 Github MCP ,它自己就包含了 30 多个工具。
假如每个工具消耗 500 个 Token,那只链接这一个工具就需要消耗将近 20000 Token。
在真实环境下,一个 Agent 不会仅连接一个 MCP Server。
假如你只问了 AI 一个非常简单的问题(1+1=?),Agent 已经烧掉了大几万的 Token,这个成本是非常恐怖的。
更深层的问题在于连接过多的 MCP Server 可能导致 LLM 的 “注意力” 下降,从而降低工具调用的准确性。
模型必须自己发现合适的工具、正确调用,并把多步结果汇总成最终答案。目前最强的 Claude Opus 4.5 也只能拿到 62% 的准确率,这个值还会随着工具的增多而进一步下降。
而我们上面讲到的 Skills 的核心机制:渐进式披露 ,恰好可以解决这两个问题:
- 节省 Token:首次链接时,相比 MCP 需要将 40 多个 MCP Server 下 300 个工具全部塞进模型上下文(消耗数万 Token),模型只需要加载 40 个 Skills 的元数据(几千 Token)。
- 提升注意力: 面对几百个工具,AI 很容易分心。Skills 采用的是“漏斗式”引导:先通过目录判断大方向,确认要干活了,再加载具体的说明,最后通过说明找到详细的文档和脚本最后再执行。让 AI 每次只专注于当前任务。即使是能力稍弱的模型,在这种机制下也能保持极高的调用准确率。
2.2 MCP 会被淘汰吗?
看到这你可能会问了,Skills 看起来更智能、更节省资源,那 MCP 会被淘汰吗?
结论是:MCP 不会被完全淘汰,但对它的需求会大幅减少!
首先,MCP 协议层的价值不可替代:MCP 的真正价值不在于它如何把文本塞进Prompt,而在于它制定了一套标准接口。
它统一了 AI 连接世界的方式。如果你是一个通用的三方平台(高德地图、Notion 等),想发布一个工具让其他 Agent 都能用上你的能力,那首先选择的还是 MCP。
但是,如果你有一些重复性的工作流,比如要以固定的流程读写本地文件、要用一个标准的范式来 Review 代码、有一套固定的风格来编写文章,这些场景都推荐使用 Skill 来实现。
在过去这几个需求中的本地文件读写、链接 Github、给文章生成图片这些需要链接外部世界的能力都得通过 MCP 去实现,但现在你可以都把它们打包到 Skill 里。
未来的格局可能是这样的(来自宝玉老师):
- Agent 本身内置部分核心能力(bash、read、edit、write)
- 少数通用 MCP Server 负责远程连接(数据库、云 API、SaaS 集成)
- 大量 Skills 负责封装标准工作流、连接本地知识库
- 两者在必要时协作,但 Skills 会承担绝大部分 “教 AI 怎么做事” 的工作(这其中也包含教 AI 怎么用 McpServer、怎么用其他 Skills、怎么更好的调用核心能力)
三、Skills 的初步尝试
3.1 去哪找 Skills?
和 MCP 一样,Skills 成了开放标准后开始爆发式增长,社区出现了大量的开源 Skills,很多 Skills 开放市场也应运而生,之前大部分 MCP Market 也都增加了 Skills 的分类:
https://skillsmp.com/
可以看到 skillsmp 中的 Skills 数量在最近经历着爆发式增长,这个增长速度要比之前的 MCP 爆火的时候还要快。这就不得不提Skills 的另一大优点:编写门槛低!
MCP 虽然有一套标准的规范,但终究还是要靠代码编写的,即便有了 AI 辅助,对于小白来讲还是有一定的门槛的。
而 Skills 就不一样了,只要你会写提示词,就能写 Skill,可以预见的是,之前那些大量的固定工作流在未来可能都会被编写为 Skill,这也意味着 Agent 的编写门槛被再一次大幅降低。
3.2 怎么使用 Skills?
我们随便进入一个 MCP 市场,然后搜索我们要使用的 Skills,比如这里我们还以绘图软件 Excalidraw 为例:
进入详情后,我们选择一个最简单的安装方式,直接把这个 Skill 下载到本地,点击 wget skill.zip:
然后我们把这个压缩包解压,你就会看到熟悉的目录。接下来,你只需要把这个目录下载到指定的位置:
不同客户端的目录大同小异,基本上都是 .agentName/skills 目录,这里我们使用最近比较火的 OpenCode 进行演示(大家看可以自行选择 Cusor、Codex 等支持 skills 的客户端),所以我们创建一个新的文件夹,然后把刚刚下载的文件夹放到 .opencode/skills 目录下:
接下来,我们在这个目录下打开 opencode 客户端,输入下面的提示词:
帮我绘制一个架构图,讲解什么是 5W2H 分析法,直接帮我在当前目录下生成一个excalidraw文
你不需要手动去 “安装” 或 “运行” Skill,只要文件放对位置了,OpenCode 的 AI 就会自动根据用户的需求判断要调用这个 Skill,然后帮我生成了代码:
我们将生成的代码粘贴到 https://excalidraw.com/,就可以看到已经生成好的架构图:
3.3 创建你的第一个 Skill(skill-creator)
下面,我们一起来尝试做第一个 Skill,虽然 Skill 的开发门槛低,但这不意味着我们就??????????
Anthropic 官方直接给我们提供了一个 生产 Skills 的 Skill:Skill Creator。你不需要写一行代码或配置文件,只需要用自然语言告诉它你想做什么,它就会自动为你生成一个符合标准的 Skill 包。
接下来,按照刚才的流程,我们把这个 Skill 下载下来,放到 .opencode/skills 目录下:
然后我们给出下面的提示词:
帮我创建一个可以准确获取当前系统时间的 Skill,描述使用中文,脚本使用Node.js。
然后,opencode 识别到我们的需求,开始调用 skill-creator:
然后我们打开本地的 .opencode/skills 目录,发现多了一个current-time-node skill,包含一个 SKILL.md 加一个获取准确时间的 Node.js 脚本:
接下来,我们询问 opencode:“获取当前系统时间”,然后它就会自动找到刚刚生成的 Skill 并调用里面的脚本:
四、Dify接入agent skills
1、插件安装
dify插件: https://github.com/lfenghx/skill_agent
2、搭建对话流
deepseek-chat模型
3、添加/查看/删除技能
用户输入字段Type选择“技能管理”
4、使用技能
用户输入字段Type选择“Skill智能体”
问:有什么技能
调用“技能2”:
下载这几个文件,然后浏览器打开login.html,生成的登录页面如下: 效果不错哦
调用技能1:
问题分析:
从技能描述可以看到:
- 技能会自动保存文件到当前工作目录(第6步:"Automatically save to current working directory")
- 技能可能会生成多个文件(不同输出模式)
- 插件尝试读取目录而不是文件,导致 IsADirectoryError
修复后:
下载这几个文件,浏览器打开.html文件:
5、使用skill-creator生成技能
生成的技能包如下:
五、参考
Dify插件:
Skill_Agent - Dify 市场
Agent Skill技能插件 - Dify Marketplace
lfenghx/skill_agent: 一个基于Dify平台的skill智能体,支持以渐进式披露的方式工作
Skills 教程 | 菜鸟教程
下载skill:
https://agentskills.io/home
https://github.com/anthropics/skills
从理论到实战,一期彻底搞懂 Agent Skills!Agent Skills 最近非常的火,它是既 MCP 后 Ant - 掘金
一期带你彻底搞懂 Agent Skills,从原理到实战!_哔哩哔哩_bilibili
用 Agent Skills 做知识库检索,能比传统 RAG 效果更优吗?使用 Agent Skills 做知识库检索, - 掘金
Agent Skills 做知识库检索,能比传统 RAG 效果更好吗?_哔哩哔哩_bilibili
Agent Skill 从使用到原理,一次讲清_哔哩哔哩_bilibili
用 Agent Skills 重构你的职业竞争力 | 人人都是产品经理
五步框架:把 Workflow 变成可进化的 Skill - 53AI-AI知识库|企业AI知识库|大模型知识库|AIHub
使用“Agent + Skills”架构五步法打造可进化的智能工作流-CSDN博客
什么是Agent Skills,Agent Skills 终极指南,入门、精通、预测 – 智慧城市行业分析
Claude Agent Skills:将 Workflow 打进技能包 - 知乎
