LongCut logo

Agent Skill 从使用到原理,一次讲清

By 马克的技术工作坊

Summary

## Key takeaways - **Agent Skill起源与开放**: 2025年10月16日Anthropic推出Agent Skill,最初定位提升Claude特定任务表现,但很快被VS Code、Codex、Cursor等工具支持;12月18日正式发布为开放标准,支持跨平台复用,成为AI Agent通用设计模式。 [00:00], [00:47] - **按需加载核心机制**: Claude Code先将所有Agent Skill的名称和描述发给大模型,大模型匹配后才加载选中Skill的完整skill.md指令内容,仅加载匹配的一个,避免浪费Token。 [05:41], [07:17] - **Reference条件触发**: Reference如集团财务手册仅在会议提到钱、预算时触发加载,例如检测1200元酒店是否超标住宿补贴500元标准,否则不占用任何Token上下文。 [08:31], [10:35] - **Script零上下文执行**: Script如upload.py仅被执行不会读取内容,哪怕一万行复杂逻辑也不消耗模型上下文,Claude Code只关心运行结果,用于上传总结到服务器。 [13:03], [13:27] - **三层渐进披露结构**: 第一层元数据始终加载如目录;第二层指令按需加载skill.md正文;第三层资源Reference被读取、Script被执行,实现按需中的按需加载。 [13:56], [15:37] - **与MCP区别分工**: MCP连接Claude到数据如查询销售记录,Skills教Claude如何处理数据如会议总结格式;Agent Skill适合轻量脚本,MCP更安全稳定,二者可结合使用。 [16:03], [17:22]

Topics Covered

  • Agent Skill本质是大模型说明文档
  • 按需加载节省Token核心机制
  • Reference实现条件触发引用
  • Script执行代码零上下文消耗
  • Skill教模型处理MCP供给数据

Full Transcript

2025 年 10 月 16 号 Anthropic 正式推出了 Agent Skill 起初官方对它的定位相当克制 只是希望用它来提升 Claude 在某些特定任务上的表现 但大家很快发现 这套设计实在是太好用了 因此行业里很快就跟上了节奏 包括 VS Code、Codex、Cursor 等工具 都陆续加入了对 Agent Skill 的支持 在这样的背景下 12 月 18 日

Anthropic 做出了一个重要决定 正式将 Agent Skill 发布为开放标准 支持跨平台、跨产品复用 这意味着 Agent Skill 已经超越了 Claude 单一产品的范畴 正在演变为 AI Agent 领域的一个通用设计模式 那么这个让大厂纷纷跟进的 Agent Skill 到底是解决了什么核心痛点 它和我们熟悉的 MCP 又有着怎样的区别和联系呢

今天这期视频 我们就分几个部分 彻底讲清楚这个 Agent Skill 首先从 Agent Skill 的概念出发 给大家讲明白它到底是个什么东西 接着给大家演示一下它的基本使用方法 在了解了基本用法之后 我们再来看看它的高级用法 高级用法一共包含两块 分别是 Reference 和 Script 最后我会把 Agent Skill 和 MCP 做个比较

告诉你到底应该选哪一个 好了话不多说 让我们直接开始 哦,不好意思,只是想证明自己不是 AI 那我们现在真的要开始了 那什么是 Agent Skill 呢 用最通俗的话来讲 Agent Skill 其实就是一个大模型 可以随时翻阅的说明文档 举个例子 比如你想要做一个智能客服 可以在 Skill 里面明确交代 遇到投诉得先安抚用户的情绪

而且不得随意承诺 再比如你想要做会议总结 可以直接在 Skill 里面规定 必须要按照参会人员 议题、决定这个格式 来输出总结的内容 这样一来 就不用每次对话都去重复粘贴 那一长串的要求了 大模型自己翻翻这个说明文档 就知道该怎么干活了 当然说明文档只是一个 为了方便理解的简化说法 实际上 Agent Skill 能做的事情

要远比这个强大 它的高级功能我们待会儿就会讲到 不过在目前的起步阶段 你就把它当成是一个说明文档就行 下面我就用会议总结这个实际的场景 带大家看看它到底是怎么使用的 这里我们使用 Claude Code 来演示如何使用 Agent Skill 要想使用 Agent Skill 那当然是要先创建一个了 根据 Claude Code 的要求 我们需要在用户目录下的

.claude/skill 文件夹

.claude/skill 文件夹 创建我们的 Agent Skill 所以就让我们先进入到这个文件夹中 然后执行 mkdir 会议总结助手 来创建一个文件夹 这个文件夹的名字 就代表了我们 Agent Skill 的名字 然后使用 VS Code 来打开这个文件夹 这样的话我们编辑文件会更方便一些 打开这个文件夹后 我们在里面创建一个叫做 skill.md 的文件

我们在里面创建一个叫做 skill.md 的文件 然后填好这个文件的具体内容 就是这样了 每一个 Agent Skill 都需要有这么一个文件 它用来描述这个 Agent Skill 的名称 能干什么事 以及怎么干这个事情的 比如我们这里要创建的 Agent Skill 就是用于总结会议录音内容的 它的 skill.md 一共分为两部分

它的 skill.md 一共分为两部分 头部的这几行 被两段短横线包起来的是叫做元数据 英文叫做 Metadata 这一层就只写了 name 和 description 这两个属性 name 是 Agent Skill 的名称 必须与文件夹的名字相同 name 的下面是 description 它代表这个 Agent Skill 的描述 主要是向大模型说明 这个 Agent Skill 是用来干什么的

再看下面剩余的部分 这个就是具体的 Agent Skill 的说明了 官方把这一部分叫做指令 对应的英文是 Instruction 这一部分就是在详细描述 模型需要遵循的规则 比如说你看这里 我规定了它必须要总结参会人员 议题和决定这几个方面的内容 为了确保它真的理解了 我这里还举了一个例子

输入的是会议的录音内容 然后输出的就是我们所需要的格式了 好现在我们的 Agent Skill 应该是做好了 对就是这么简单 就是一个说明文档 下面我们打开 Claude Code 来验货 首先随便找一个空目录 打开 Claude Code 然后输入下面这个问题 你有哪些 Agent Skill Claude Code 给我们回答了 可以看出它已经发现了我们写好的 Agent Skill

然后我们来看看 Claude Code 是怎么使用这个 Agent Skill 的 我们输入请求 总结以下会议的内容 然后粘贴一段会议录音文本 回车 让我们看看 Claude Code 会如何应付我们这个问题 好 Claude Code 有反应了 大家注意看屏幕这里 Claude Code 并没有直接开始瞎编 它根据我的指令 意识到了这事归我们刚才上传的那个 Agent Skill 管

所以它是在向我询问 能不能使用这个 Agent Skill 那我们当然是同意了 同意之后 它就开始读取我们写的那个会议总结助手了 主要就是读取其中的那个 skill.md 文件

主要就是读取其中的那个 skill.md 文件 让我们稍作等待 好结果出来了 参会人员、议题、决定 三点都清清楚楚 这完全符合我们在 skill 里面定的规矩 这个就是 Agent Skill 的基础用法了 是不是很简单 现在你知道了如何创建和使用 Agent Skill 那不妨让我们想想刚才到底发生了什么 首先整个流程中一共有三个角色

用户、Claude Code 以及 Claude Code 背后所使用的大模型 在我们的例子里,这个就是 Claude 模型 流程一开始的时候,用户会输入请求 此时 Claude Code 会把用户的请求 连同所有 Skill 的名称和描述 一起发给大模型 注意这里只带了名称和描述 也就是我们前面所说的 Skill 元数据层 虽然说我们之前只演示了一个 Skill

但是你可以想象一下 哪怕你装了十几个 Skill 此时的大模型也只是在看一份轻量级的目录 因为毕竟只有名称和描述嘛 在接到了用户请求 和每一个 Skill 的名称描述后 大模型会发现用户的请求 可以使用会议总结助手这个 Agent Skill 来解决 此时它就会把这个信息告诉 Claude Code Claude Code 接到大模型的响应之后

会去会议总结助手那个目录里面 读取完整的 skill.md 正文

读取完整的 skill.md 正文 对这个时候读取的才是 skill.md 的全部内容

对这个时候读取的才是 skill.md 的全部内容 之前就只是名称和描述 而且要注意 它只读取了会议总结助手这一个 Agent Skill 的内容 在拿到了会议总结助手的 skill.md 内容后

在拿到了会议总结助手的 skill.md 内容后 Claude Code 会把用户的请求 和完整的 skill.md 内容发给大模型

和完整的 skill.md 内容发给大模型 大模型会根据 skill.md 的要求来生成响应

大模型会根据 skill.md 的要求来生成响应 并且把响应发给 Claude Code Claude Code 进而会把这个响应发回给用户 这样用户就可以看到结果了 这就引出了 Agent Skill 的第一个核心机制 按需加载 虽然 Skill 的名字和描述是始终对模型可见的 但具体的指令内容 只有在这个 Skill 被选中之后 才会被加载进来给模型看

这就节省了很多的 Token 了 前面我们讲了 一开始 Claude Code 会把所有 Agent Skill 的名称和描述 都给到模型 比如说什么爆款文案 Skill 会议总结 Skill 数据分析 Skill 等等 模型呢会从中选择一个 之后只有选中的那个 Skill 的 SKILL.md 文件才会给到模型

说白了呢就是按需加载 这个呢已经很省 Token 了 但是它还不够极致 大家试想一下 我们的会议总结助手可能会越来越高级 我们希望它不仅是简单复述 而是能够提供更有价值的补充说明 比如说当会议决定要花钱时 它能直接在总结里标注是否符合财务合规 当涉及到合同时 它能够提示法务风险

这样大家在看会议总结的时候 就不需要再去翻规章制度 一眼就能看到这些关键的补充信息 这就非常方便了 但问题在于 Skill 能做这些事情的前提是 它要把相关的财务规定和法律条文 都写到 skill.md 文件里

都写到 skill.md 文件里 这些文件可能会非常长 都写进去的话 skill.md 文件就会变得无比的臃肿

skill.md 文件就会变得无比的臃肿 哪怕只是开个简单的早会 都要被迫加载一堆根本用不上的财务和法律废话 浪费模型资源 那能不能做到按需中的按需呢 比如说只有当会议内容真的聊到了钱 Claude Code 才会把财务规定加载给模型看 其实这个也是可以的 Agent Skill 提供了 Reference 的概念 干的就是这个活

让我们来试一下 首先我们来给它加一个文件 也就是 Agent Skill 术语里面的 Reference 我们把这个文件叫做集团财务手册 里面写明了各种费用的报销标准 比如说住宿补贴 500 一晚 餐饮费人均 300 一晚之类的 然后在原来的 skill.md 文件里面

然后在原来的 skill.md 文件里面 新增一个财务提醒规则 里面写明仅在提到钱、预算、采购、费用的时候触发 触发的时候需要读取集团财务手册.md 这个文件

触发的时候需要读取集团财务手册.md 这个文件 根据文件内容指出会议决定中的金额是否超标 并明确审批人 这就可以了 我们回到 Claude Code 这里再试一下 这次我们的请求仍然是 总结下这个会议的内容 不过这次使用的会议内容稍微换了一下 这段对话我们就不是看了 你只需要知道在这段对话里面

老陈让小李订 1200 一晚的酒店 这涉及到了钱 按道理来说 Claude Code 应该触发我们刚才新增的财务提醒规则 让我们看看 Claude Code 能不能意识到这一点 首先 Claude Code 意识到了这个请求 跟我们的会议总结助手相关联 请求使用这个 Agent Skill 我们同意 然后它意识到了这个会议跟钱相关 根据 skill.md 文件的指示

根据 skill.md 文件的指示 它请求读取集团财务手册这个文件 用于查看里面的财务合规信息 这个我们也同意 最后它根据实际的会议内容生成了总结 可以看出总结中不仅包含参会人员 议题、决定等基本信息 还包含了财务提醒 这完美符合我们的需求 这个就是 Reference 的核心逻辑了 在 Agent Skill 的体系里面

集团财务手册.md 这个文件就是个典型的 Reference

集团财务手册.md 这个文件就是个典型的 Reference 请大家记住它的特性 它是条件触发的 在刚才的例子里面 只有当 Claude Code 读取完 skill.md 文件

判断出需要查账时才会去加载这个文件 反过来说 如果这是一个跟钱无关的技术复盘会 那么这个财务文件就只会躺在硬盘里面 绝不会占用哪怕一个 Token 的上下文 好讲完了 Reference 接下来我们来讲讲如何让 Agent Skill 跑代码 毕竟查资料只是第一步 能直接动手运行代码帮我们把活干了 这才是真正的自动化

这就用到了 Agent Skill 的另一大能力 Script 让我们在文件夹里面创建一个 Python 脚本 文件名就叫做 upload.py

文件名就叫做 upload.py 用于上传文件 之后我们填好这个代码文件的内容 然后我们来到 skill.md 这个文件里

然后我们来到 skill.md 这个文件里 再加上一段关于上传规则的描述 如果用户提到了上传、同步 或者是发送到服务器这样的字眼 你必须运行 upload.py 脚本

你必须运行 upload.py 脚本 将总结内容上传到服务器 然后我们来到 Claude Code 这边输入请求 总结下这个会议的内容 并把它上传到服务器中 然后我们粘贴会议内容 跟之前一样 Claude Code 意识到了这个请求 与我们的会议总结助手相关 所以它请求使用这个 Agent Skill 我们同意 然后它把会议的总结内容输出了出来 并准备上传到服务器中

它请求执行 upload.py 文件来实现这个功能

它请求执行 upload.py 文件来实现这个功能 我们也同意 好上传成功 而且 Claude Code 还把上传相关的一些信息也展示了出来 非常棒 这里面有个小插曲大家注意一下 我这次所使用的会议内容跟钱其实没什么关系 所以 Claude Code 也并没有去读取集团财务手册那个文件 结果中也没有财务提醒相关的内容

这正好印证了我前面所说的观点 Reference 是按需加载的 如果用户没有提到与 Reference 相关的内容 那 Claude Code 是不会去读取它的 这样就达到了节省上下文 Token 的目的 好让我们再回到代码执行部分 注意看这里 Claude Code 申请执行这个 upload.py 文件

它并没有去读取这个文件 没错 Agent Skill 里面的代码只会被执行 不会被读取 这就意味着哪怕你的脚本写了一万行复杂的业务逻辑 它消耗的模型上下文也几乎是零 Claude Code 只关心脚本的运行方法和运行结果 至于这个脚本的内容 它可以说是毫不在意 所以虽然 Reference 和 Script 都属于 Agent Skill 的高级功能

但是它们对于模型上下文的影响其实是截然不同的 Reference 是读 它会把内容加载到上下文里面 所以是会消耗 Token 的 Script 是跑 它只会被执行 不会占用模型的上下文 讲到这里 我们需要停下来稍微做个总结 聊一聊 Agent Skill 的渐进式披露机制 Agent Skill 的设计其实是一个精密的渐进式披露结构

这个结构里面一共有三层 每一层的加载机制都不太一样 第一层是元数据层 这里有所有的 Agent Skill 的名称和描述 它们是始终加载的 相当于大模型里面的目录 大模型每次回答前都会看一下这一层的信息 然后决定用户的问题是否与某个 Agent Skill 相匹配 第二层是指令层 对应 skill.md 文件里面

对应 skill.md 文件里面 除了名称和描述之外其余的部分 只有当大模型发现用户的问题 与某个 Agent Skill 相匹配的时候 它才会去加载这一层的内容 所以我们称这一层为按需加载 第三层是资源层 这个是最深的一层 它一共是包含 Reference 和 Script 两方面的内容 其实按照官方最新的规范 应该还有一个组成部分叫做 Asset 不过我看了一下

它跟 Reference 的定义似乎有部分重叠 因此我们这里先忽略它 好我们刚才例子里面的 集团财务手册和 upload.py 脚本就属于这一层

集团财务手册和 upload.py 脚本就属于这一层 只有当模型发现用户问题 与财务或者上传相关的时候 它才会去加载这一层的内容 这就相当于是在按需加载的指令层基础上 又做了一次按需加载 所以我们可以称它为按需中的按需加载 当然这是我起的名字 Reference 和 Script 的加载方式其实不太一样 Reference 是被读取的

Claude Code 会把对应文件的内容 放到模型的上下文中 以供回答时参考 而 Script 是被执行的 Claude Code 根本就不会去看代码的内容 它只关心代码的执行结果 当然这个也不是铁律 如果你没有把代码的执行方法说清楚 Claude Code 还是有可能去通过看一下代码的 毕竟跑不下去了嘛 这样的话就会占用模型的上下文了 所以还是请大家写 Skill 的时候

尽可能把一切都解释清楚 那聊完了 Agent Skill 的用法 很多朋友可能会有种似曾相识的感觉 Agent Skill 好像是跟 MCP 有点像啊 本质上都是让模型去连接和操作外部世界 既然功能重叠 那我们到底应该用哪一个呢 关于这个问题 Anthropic 官方写过一篇相关的文章来解释 核心观点就一句话 就在这里 MCP connects Claude to data

Skills teach Claude what to do with that data 这句话可以说是直接点明了 MCP 与 Agent Skill 的区别 它其实就是在说 MCP 给大模型供给数据 比如说查询昨天的销售记录 读取订单的物流状态等等 而 Skill 是教会大模型如何处理这些数据的 比如说会议总结必须要有个议题啊 汇报文档必须要包含具体的数据啊等等

到这里有些同学可能就会问了 不对啊 Agent Skill 里面也能写代码 我直接在 Agent Skill 里面写连接数据的逻辑不就好了吗 这样就不需要 MCP 了 Agent Skill 就直接把这两个活都给干了 确实 Agent Skill 也能连数据 功能上与 MCP 有所重叠 但是能干并不代表适合干 这就好像是瑞士军刀也能切菜 但没有人会这么干

我们这个场景其实也是这样 MCP 本质上是一个独立运行的程序 而 Agent Skill 本质上是一段说明文档 它们的本质不同 决定了适合的场景也是不同的 Agent Skill 更适合跑一些轻量的脚本 处理简单的逻辑 在代码执行方面 Agent Skill 的安全性和稳定性都不及 MCP 所以大家还是要根据场景选择合适的工具 甚至在很多的场景下

我们需要把 Agent Skill 和 MCP 结合起来一起使用 以便尽可能地满足我们的需求 好今天的视频就到此结束了 我是马克 用最通俗的语言讲最硬核的技术 如果我的视频对你有帮助 欢迎点赞订阅 我们下次再见 Bye bye

Loading...

Loading video analysis...