聊一个很多人还没完全转过弯来的东西:Agent Skills。
最近大半年,我在做 AI Agent 应用落地,发现一个非常明显的趋势——模型之间的能力差距在快速拉平,真正决定一个 Agent 好不好用的,已经不再是"你接入了哪个模型",而是"你给这个 Agent 配了哪些 skills"。这个词最近被频繁刷屏,OpenAI 在讲 Skills,Anthropic 也在推 Agent Skills,国内几家大厂也默默跟进。可能你已经在各种技术文章里看到过这个词,但多数内容要么飘在概念层,要么就是照着文档翻译一遍,真正说清楚"它到底解决什么问题"和"我自己怎么做一个"的很少。
这篇文章就把我自己的理解、踩过的坑、以及实际做出来的经验完整梳理一遍。面向的读者是:做 AI 应用开发的朋友、想用 Agent 改造工作流的效率控,以及被各种新概念绕晕但想真正搞懂的从业者。不写教科书,只写实操。
1. 为什么 AI Agent 突然需要"技能"这层抽象
先从一个我自己的真实项目说起。今年年初,我接了个活儿,给一家内容团队搭建一个自动化选题与初稿生成系统。客户的要求很朴素:AI 能理解他们过往的内容风格,能盯着平台热点,每周自动产出二十个选题方向,并且给每个选题写出大纲。
我当时的第一反应是:这有什么难的,接个大模型 API,写几条 prompt,搞定。结果做出来之后发现完全不是那么回事。模型确实能跑,每次给的东西也都像模像样,但就是"不稳"——有时候写出来的选题方向跟他们的内容定位完全跑偏,有时候风格忽冷忽热,甚至有几次模型自己"发挥"出了一套全新的表达方式,差点被客户打回。
问题出在哪?出在我把所有的"做事方法"都揉进了那几条 prompt 里。每当我需要让 AI 执行一个完整任务,就得在系统提示词里塞进去一大堆规则、示例、约束条件。随着需求变多,系统提示词越来越长,很快就失控了——不是长度失控,是逻辑失控。模型开始顾此失彼,A 任务不需要的规则干扰了 B 任务的表现。
这就是 Agent 落地时最典型的困境:模型是通用的,但你要它干的工作是高度专用的。
1.1 Agent 式微:模型聪明但"不会干活"的悖论
2024 年到 2025 年,我身边的同行都在抱怨一个反直觉的现象:大模型明明越来越聪明,理解能力越来越强,但直接让它干活的效果并没有同步提升。原因不复杂——理解能力强和会做事是两码事。
你让一个新来的实习生写一份行业分析报告,他只是"聪明"是不够的,他需要知道你们公司惯用的报告结构、数据来源偏好、甚至领导喜欢的措辞风格。这些信息如果不动手整理,光靠他脑子聪明是想不出来的。以前的 Agent 就是这种"聪明的实习生"——智商很高,但没有任何岗位经验。
给实习生一份《岗位操作手册》,让他照着做,他会很快上手。给 Agent 的东西一直很原始——过去几年,我们给 AI 的"操作手册"就两种形态:要么塞进系统提示词里,要么用 RAG 检索出来拼进去。这两种方式都有问题。
系统提示词的致命伤是熵增不可控。装进一个任务的所有规则还好,当我需要 Agent 处理十个不同类型的任务时,整个提示词就成了一锅粥。规则之间互相干扰、优先级不明确、模型注意力被无关内容稀释。RAG 稍微好一点,能把大量说明性内容动态加载进来,但 RAG 解决的是"知识怎么被调取"的问题,解决不了"工作流程怎么被编排"的问题。它能把操作手册检索出来给 AI 看,但无法保证 AI 按操作手册一步步执行。
1.2 Skills 的定位:给 Agent 装上"肌肉记忆"
Skills 这个概念之所以能火起来,本质上是补上了中间的这层缺口。它的核心思想很有意思:不要把技能写进指令里,而是把技能作为一个独立封装的能力包,挂在 Agent 身旁。Agent 面对任务时,按需调用对应技能。技能内部既包含"怎么想",也包含"怎么干",还可能包含"用什么工具干"。
如果说模型本身是"大脑",工具是"手脚",那 Skills 就是"肌肉记忆"。大脑负责理解任务、做决策、调用肌肉记忆;肌肉记忆负责把某个动作做得又快又稳。这也解释了为什么 Skills 和传统意义上的提示词工程是两条路线——提示词工程是每次都在大脑里临时想一遍"该怎么做",Skills 则是先做成肌肉记忆,需要时一键触发。
从产品定位上说,Skills 最大的价值在于复用和标准化。以前我做一个自动化写作系统,那些规则、流程、示例只能跟着这个项目走,换一个项目全部重来。如果我把这些提炼成 Skills 包,它可以被安装进任何 Agent,可以共享给团队其他人,甚至放到社区里让别人直接拿去用。这套逻辑,跟开源软件的成功路径如出一辙。
2. Skills 到底是什么:结构拆解与运行机制
我在自己的项目里摸索了一段时间之后,确认了一个判断:Skills 的本质是一套为 AI 预编排的工作流。不要把它想象成人脑的"技能",想成"武功秘籍"反而更准确——它不是让 AI 更聪明,而是让 AI 在做特定事情时,动作更标准、套路更固定、结果更可预期。
一个标准的 Skills 包,在文件系统层面通常是一个独立的目录,目录里有说明文件、参考文档、示例、以及可选的脚本和资源文件。这些材料组合在一起,构成了 AI 在执行某类任务时的完整上下文。
2.1 SKILL.md:设计意图与结构示例
Skills 包的核心是入口文件SKILL.md。它相当于技能的"说明书+操作手册"二合一。AI 调用某个技能时,第一步就是读取这个文件,理解任务目标、执行步骤、注意事项。我在实践中发现,这个文件写得好不好,直接决定了技能效果的八成。
一个典型的SKILL.md包含这些部分:
- 元信息:技能名称、功能描述、适用场景。这部分尤其重要——它决定了 AI 在众多技能库中怎么把这个技能检索出来。
- 触发条件:明确什么情况下应该使用这个技能。
- 执行步骤:一步一步的做事流程,每一步要有清晰产出物。
- 规则约束:哪些事情绝对不能做,哪些边界必须守住。
- 示例:输入输出对,帮助 AI 理解预期效果。
我自己的一个内容选题技能里,SKILL.md 开头是这样设计的:描述部分是"分析内容账号的历史选题与平台热点,生成符合账号定位的选题方向列表并附带可行性判断",触发条件是"用户要求生成选题、做选题规划、或者评估选题质量时"。执行步骤则分了五步:读取历史内容→分析规律→扫描平台热点→交叉匹配→输出带评分的选题列表。每一个步骤都有具体的执行标准。比如"读取历史内容"这一条,不是简单一句"分析历史内容",而是精确到"从用户提供的内容列表中提取最近 30 篇,统计标题句式、关键词分布、互动数据"。
2.2 技能包内部还有啥:参考资源、脚本与工具绑定
光有 SKILL.md 还远远不够。真实场景里,技能通常需要配套的资源文件。举个例子——我做一个自动生成周报的技能,SKILL.md 描述规则和流程,但我还放了一个examples/目录,里面有五份历史周报。AI 每次生成新周报之前,会先参考这些样例来对齐风格和结构。这就是传统 prompt 工程做起来很费劲、但 Skills 可以优雅解决的事情。
更复杂的技能还需要绑定工具。比如一个"数据分析技能"可能需要在数据文件上进行 pandas 操作,那技能包内可以包含一个脚本工具,AI 在执行时通过脚本而非直接推理来处理数据。这个设计跟我前面提到的 MCP 形成了互补关系——MCP 提供工具接入的标准化协议,Skills 提供做事方法的标准化封装。可以这样理解两者的关系:MCP 关注"AI 能调用什么",Skills 关注"AI 应该怎么做"。
为了更直观,我把几个容易混淆的概念放在一起对比:
| 概念 | 解决的问题 | 类比 | 形态 |
|---|---|---|---|
| 提示词工程 | 让模型输出更符合预期 | 给实习生口述的要求 | 文本规则 |
| RAG | 给模型补充外部知识 | 给实习生一堆参考资料 | 检索+拼装上下文 |
| 微调 | 改变模型的内部行为 | 把实习生送去长期培训 | 模型权重更新 |
| MCP | 让模型能使用外部工具 | 给实习生配电脑和软件账号 | 工具接入协议 |
| Skills | 让模型按预置流程稳定执行任务 | 给实习生一本岗位操作手册 | 结构化指令+资源+工具绑定 |
这个对比表并不是要否定前几种方式的合理性,而是说明它们各自解决的问题不一样。Skills 并不是提示词工程的替代品,而是它的上层封装——一个技能包内部依然大量使用精细的提示词,只是这层提示词不再站在全局系统提示词里,而是独立成包,按需加载。
2.3 Skills 的运行机制:从检索到执行
从一个 Agent 的视角来看,Skills 的调用过程大致分为三步。第一步是技能检索,Agent 根据任务描述从可用技能库里选择最匹配的技能——这一步依赖技能包里的描述信息写得是否精准。第二步是技能加载,Agent 读取 SKILL.md,整体理解技能的执行流程,同时加载配套的参考文档和脚本。第三步是逐步执行,Agent 按照技能内定义的步骤序列开始干活,过程中如果遇到技能定义不明确的地方,会结合自身理解做适当调整。
我调试过不少技能包,发现运行机制中最关键的一环是第一步的检索质量。你的技能库里如果装了二十个技能,描述又都模棱两可,Agent 大概率会选错;选错了,后面全盘皆输。所以我在给技能写描述时,会刻意使用"反例"来辅助定位——比如一个选题技能的描述里会写明"这不用于生成具体的文案内容,只负责选题方向",这样 Agent 在接到一篇直接写作任务时,就不会误选这个技能。
3. 如何制作一个能真正工作的 Skills
讲完了原理,这部分是真正的干货——怎么从零制作一个能用的技能包。我会用一个完整的例子带大家走一遍全流程:做一个"竞品动态追踪"技能。这个技能的需求来自我朋友的一个市场团队,他们每周要人工扫描竞品的最新动作,整理成简报,过程非常耗时。
选这个例子的原因是它足够典型:有明确的信息获取环节、有分析判断环节、有格式化输出环节,能覆盖大多数真实技能的设计场景。
3.1 设计阶段:先画流程再写文件
很多人的第一个 Skills 做得很失败,根本原因是没想清楚流程就急着写文件。做技能包和做产品一样,先要搞清楚你希望 AI 按什么步骤做事。
以竞品动态追踪为例,我拆解了人类员工做这件事的完整流程:
- 确定竞品名单——通常三五家,不能太多,否则工作量失控。
- 逐个检索竞品的最新动态——官网公告、产品更新日志、新闻媒体报道。
- 对每条动态做分类和评估——是产品迭代,还是市场活动,还是组织变动?影响程度是重大还是一般?
- 将信息按既定模板整理成简报——固定格式、按周编号、包含摘要和后续行动建议。
这个流程是设计技能的蓝图。我把每一步细化成 SKILL.md 里的执行步骤,让 AI 严格按这个顺序来。
目录结构我采用了这样的组织方式:
competitor-tracking/ ├── SKILL.md ├── data/ │ ├── competitors.md │ └── report_template.md └── examples/ └── sample_report.mddata/competitors.md存竞品名单和每个竞品的重点关注维度,data/report_template.md存简报的格式模板,examples/sample_report.md存一份过往的合格简报样例。这么设计的意图很明确:把固定信息和流程信息分离。SKILL.md 里只写"怎么做",具体名单和模板属于"用到的材料",单独放。将来要换竞品对象,只需改competitors.md,不用动技能主体。
3.2 编码阶段:写出高可用 SKILL.md 的实操窍门
写好一份 SKILL.md,有几个实战中验证过的小窍门。
第一,步骤要精确到产出物。不要写"分析竞品动态",而要写"输出一份包含动态摘要、影响程度评级、应对建议的分析条目"。AI 对目标明确的步骤执行稳定性极高,对目标模糊的步骤则容易自由发挥。
第二,主动给 AI 提供决策规则。比如影响程度评级,我在技能里明确写了规则:涉及产品功能上线或下线、定价调整、重大组织架构变动的,标记为高影响;单纯的媒体报道、品牌活动、常规宣传,标记为一般影响。有了规则,AI 的判断就从"感觉"变成了"按标准执行"。
第三,在技能内多处设置质量校验点。我在流程最后加了一个质检环节:要求 AI 在输出简报前逐条检查每一项是否有主观臆测内容,若有则需要重新核实信息来源。这个环节看着多余,但能明显降低幻觉出现的概率。
第四,善用反例和禁区描述。我在 SKILL.md 中明确写了:不得编造未在公开渠道获取到的信息,不得将主观意见标注为事实,不得漏掉高影响事件。这类否定式表述对模型行为的约束效果比肯定式更强。
下面是一份核心步骤在 SKILL.md 里的写法逻辑示例:
## 执行流程 ### 第一步:读取竞品名单 从 data/competitors.md 中读取竞品名单,若名单为空或无法读取,立即停止并请求用户提供。 ### 第二步:逐家检索动态 对各竞品,依次检索其官网公告页、产品更新日志、主流科技媒体近 7 天内的相关报道。 ### 第三步:分类与评估 对检索到的每条动态,按以下标准分类: - 产品迭代:涉及功能新增、修改、下线,或界面重大变化 - 市场动态:定价调整、营销活动、品牌合作 - 组织变动:人事调整、架构重组、融资并购 每条动态标记影响程度(高/中/低),判断标准见上节"影响程度评级规则"。 ### 第四步:生成简报 按 data/report_template.md 的模板生成简报,格式参考 examples/sample_report.md。3.3 测试阶段:用边界 Case 打磨技能
技能包写完只是第一步,测试才是重头戏。我的习惯是用三种类型的问题来测试技能包。
第一类是正常任务:直接给 Agent 下发一个常规任务,看它能否顺利走完流程。第二类是边界任务:故意给一个带歧义的任务描述,看技能检索环节是否被绕晕。第三类是失败任务:给一个技能无法完成的任务,看 Agent 是否会如实告知,还是硬着头皮瞎编。
实测下来,第一类通常不难过关,第二类和第三类才见真章。边界任务往往暴露的是技能描述中的语义漏洞,失败任务暴露的是技能内质量标准措辞是否足够强。每发现一个问题,就回到 SKILL.md 调整措辞、补全边界条件,然后再测试。这跟调试代码的循环非常像:写→跑→发现问题→修→再跑。好的技能包是改出来的,不是写出来的。
我用这个流程跑通了竞品追踪技能之后,又把同样的方法论复制到了另外两个技能上——一个是技术文章写作技能,一个是会议纪要整理技能。骨架完全一致,只是内容和工具绑定不同,开发成本大幅降低。
4. 我踩过的坑:Skills 实操中的常见问题与解法
做技能包做得多了,自然会踩出不少坑来。我把自己实际遇到的、以及身边同事高频遇到的典型问题整理成了一份速查表,给做同样事情的朋友当个参照。
4.1 问题速查表与排查思路
| 问题现象 | 深层原因 | 我的解法 |
|---|---|---|
| Agent 总是选错技能 | 技能描述不够精确,多个技能边界重叠 | 重写描述部分,添加触发条件和反例说明 |
| 技能执行到一半开始自由发挥 | 步骤定义粒度太粗,模型只能靠猜 | 拆分步骤,每一步都给出明确产出物和判断标准 |
| 调用技能后效果不如直接写 prompt | 技能内容只是把原prompt抄进文件,没有流程化 | 重新梳理流程,补充决策规则和示例对 |
| 技能检索不到 | 技能包目录命名和描述里的关键词不匹配使用场景 | 用真实任务来描述技能,覆盖更多同义表达 |
| 输出格式不稳定 | 只写了要求没给样例 | 在 examples 目录里放至少 2-3 份完整样例 |
| 技能里的规则互相矛盾 | 多次修改后遗留逻辑冲突 | 每隔一段时间做一次完整性审查,通读全部规则 |
4.2 写 Skills 时最容易忽视的三个细节
第一,不要把所有内容塞进一个 SKILL.md。当一个技能文件的规模超过几百行时,AI 读取的效率和信息利用率都会明显下降。把固定数据、长样例、模板单独拆成配套文件更合理。这跟写作一样,主文件负责"流程控制",材料文件负责"提供内容"。
第二,注意技能的可移植性。如果技能包内要引用文件路径,尽量使用相对路径而不是绝对路径,这样整个目录拷到哪里都能直接用。这是我被坑过一次才记下的教训——当时我把技能包发给同事,结果里面的绝对路径在他机器上全部失效,排查了大半天。
第三,版本管理不能少。技能包本质上也是代码资产,我一般会放到 git 仓库里管理,每次修改记录提交说明。坚持了一段时间之后发现收益巨大——技能调优经常出现"改坏了想退回之前的版本"的情况,有 git 兜底就能快速回滚。另外,技能的效果评估一定要记录。我通常在技能包目录下放一个CHANGELOG.md,每次更新都会记录改动内容和效果反馈,积累多了之后,能明显看出哪种调整方向有效、哪种无效。
4.3 深度避坑:过度设计与伪需求
还有一个更隐蔽的坑值得单独拿出来说。很多入坑 Skills 的朋友容易过度设计——任务明明用一段 prompt 就能解决,非要包装成一个技能包。我见过一个同事,把"让 AI 翻译一段英文"也做成了一个带三个参考文件的技能包,理由是"这样以后可以复用"。翻译确实可以做成技能包,但如果里面没沉淀任何领域词汇表、翻译风格指南、格式规范,那它跟一段普通 prompt 没有任何区别,只是徒增开销。
判断一个任务是否值得做成 Skills,我自己的标准是三个:高频、稳定流程、有沉淀价值。高频是指这个任务会反复执行;稳定流程是指任务的处理步骤相对固定、很少需要临场发散;有沉淀价值是指过程中能积累领域知识、参考样例、输出规范。三个都满足,值得做;缺两个,还是老老实实写 prompt 吧。
5. 从 Skills 到技能库:规模化之后的新问题
当技能包的数量超过十个,新的麻烦就来了。找技能、选技能、维护技能、保证技能质量的一致性,这些问题跟代码库变大的过程惊人地相似。我在管理自己的技能库时,逐渐摸索出了几条行之有效的组织原则。
5.1 技能库的组织原则与命名规范
按领域划分子目录是最基本的组织方式。我目前分成几类:内容生成类、数据分析类、信息检索类、流程管理类。每个技能放在对应目录下,命名规则统一为"动词+对象",比如generate-content-calendar、analyze-user-feedback、track-competitors。统一的命名规范让技能检索的准确率高了不少。
技能的描述信息也要当成一等公民来对待。我给每个技能写描述时,会包含三个部分:技能功能的简要说明、使用场景的边界描述、以及一个典型调用示例。这三部分写清楚,Agent 在技能检索阶段的选择正确率会显著提升。
5.2 技能质量评估:别让技能库变成垃圾场
技能库做大之后,另一个衍生问题是质量参差不齐。我会给技能包做定期复盘,评估维度主要是两个:使用频率和效果稳定性。使用频率太低的技能,要么是描述太偏导致 Agent 想不起来调用,要么是本身定位有问题,需要重新审视。效果不稳定的技能,往往是流程定义还有漏洞,需要回到测试阶段重新打磨。
我见过一些团队直接把买来的、或者社区里下载的 Skills 包原样倒入项目,结果出现了技能之间相互冲突、甚至同类型技能输出矛盾的情况。这里也提醒一下,任何技能包接入你的体系之前,都要先隔离测试。你无法确知这个技能里是否包含了你不想让 AI 执行的步骤、或者与你的现有流程冲突的规则。
5.3 Skills 生态的现状与未来空间
Skills 的生态还处于非常早期的阶段,但已经能看到一些有意思的苗头。主流模型平台已经支持直接挂载技能包;一些开源社区开始出现技能市场,用户可以分享自己的技能;企业内部也开始出现把专家经验沉淀为技能包的趋势。可以预见,技能的标准化程度将来只会越来越高,跨模型、跨平台的技能互认也会逐渐落地。
说实话,这项技术除了工程上的价值,还有一个非常难得的维度——知识资产的沉淀。以前很多行业经验、做事方法论停留在老师傅的脑子里,现在可以结构化地封装成技能包,被 AI 调用、被团队共享、被跨组织复用。从这个意义上讲,Skills 的社会价值可能比它的工程价值更值得关注。一个行业沉淀出一批高质量技能包之后,AI 对这些行业的服务质量会从"能用"跨到"好用"。
最后再分享一个我在实践中最深的体会:技能包的开发从来不是"写完就完事",它是一个持续的、需要数据和反馈驱动迭代的过程。我从第一个粗糙的选题技能走到今天相对成熟的技能库,靠的不是灵感,而是一轮又一轮的测试、标注、修正。如果说模型是整个体系的发动机,那技能包就是变速箱——发动机决定马力上限,变速箱决定力量怎么高效输出。两者配合,才是一辆真正好开的车。