面试官:“Skill 不就是存好的提示词?”我打开可编辑 PPT:“提示词会自己跑验收吗?”
面试日记 第 28 天
面试官把一条刚收录的 AI 热点推到我面前:有人把 PPT 工作流做成了 Skill,输入内容就能生成可编辑、可演示、可离线分发的 HTML PPT。
她扫了两眼,靠回椅背。
“Skill 不就是存好的提示词?”她说,“把 Prompt 写长点,照样能生成 PPT。”
“生成一张能看的页面,确实可以。”我把电脑接上会议室的大屏,“但交付一套能改、能演示、还能重复验收的 PPT,光靠一段提示词不够。”
我打开刚生成的 .bento.html,点进编辑模式,当着她的面拖动图表、修改文字,又切到演示页。随后我把项目目录展开:SKILL.md、scripts、references、evals,下面还有一份绿色通过的验证报告。
“它先判断受众和结论,生成 deck plan,再构建 JSON,最后检查文件结构、编辑态和演示态。”我说,“提示词会自己跑完这些验收吗?”
她坐直了一点,把那页热点重新看了一遍。
“行。”她说,“那你完整讲讲:”
什么是 AI Agent 中的 Skills?它有什么用?
“Skill 更像给 Agent 准备的操作手册。”我接着说,“最小的入口确实可以只有一份 SKILL.md,里面写触发条件、步骤和输出规范。复杂一点的 Skill 会把脚本、模板、示例和参考资料一起打包。Agent 先看到名称和描述,判断任务相关后再加载正文,需要细节时再读子文件,需要执行时再调用工具或脚本。”
“它解决的也不只是少写几遍提示词。”我接着说,“同一类任务交给不同的人、换到新的对话,Agent 仍然能沿着同一套流程做;团队的专业知识、验收标准和踩坑经验也能留在文件里。模型不用重新训练,通用 Agent 却能多出一套可复用的专业工作流。”
她看着大屏右下角的验证结果,点了点头。
“明白了。”她说,“判断一个 Skill,得看它教 Agent 怎么做事,还要看它带了哪些材料和门禁。只盯着那份 Markdown,确实容易把一本操作手册看成一张便利贴。”
走出会议室时,我又回头看了一眼屏幕。那张 PPT 还停在编辑状态,旁边的绿色校验结果亮着。
以前我判断一个 Skill 写得好不好,先看提示词长不长。现在得换个顺序:它能不能稳定把任务做完,才是正题。
回答重点
Skills 就是给 AI Agent 写的操作手册,核心入口通常是一份结构化的 SKILL.md 指令文件;复杂 Skill 还可以关联脚本、模板、示例和参考资料。当 Agent 碰到某类任务,就去读对应的 Skill,按里面的步骤一步步执行,不用你每次从头教它。
比如你想让 AI 帮你创建 Cursor 的自定义规则文件,规则文件放哪个目录、格式长啥样、有哪些字段,这些东西写一个 create-rule 的 Skill 就搞定了。Agent 碰到相关任务自动加载,不需要你每次重复沟通。
它的核心价值就三点:
1)把某个领域的专业知识、操作步骤、注意事项打包成一个文件,Agent 读了就能干活,不需要每次重复教
2)同一个任务不管执行多少次,Agent 都按 Skill 定义的流程走,输出质量可预期
3)通过编写不同的 Skills,让一个通用 Agent 具备各种垂直领域的专业能力,不需要重新训练模型
一个典型的 Skill 以 Markdown 格式的 SKILL.md 为入口,包含触发条件、操作步骤、输入输出规范、常见坑点这几个核心部分;复杂任务还可以把需要按需读取或执行的材料放在同一个 Skill 目录中。

扩展知识
Skills 出现之前的痛点
没有 Skills 的时候,你每次让 Agent 干一件稍微有点规范要求的活儿,都得从头把要求说一遍。
比如你要求“代码文件头部必须加上版权声明、函数命名用驼峰、异常处理要统一格式”,你说了一次 Agent 记住了,下次新对话又忘了。
更要命的是,不同的人给 Agent 的指令不一样,同一个团队里 10 个人可能写出 10 种风格的代码来。
Skills 就是来解决这个问题的:把这些反复出现的指令和规范固化成文件,让 Agent 在相关任务中读取,保证行为一致。
Skills 的技术实现原理
从 LLM 最终看到的内容来说,Skills 的核心确实是一种 Prompt 注入机制。从 Agent 系统的角度看,它还多了发现、匹配、渐进式加载,以及按步骤调用脚本或工具的过程。
在 Agent 执行任务之前,系统根据任务类型匹配合适的 Skill,先把名称和描述提供给模型;当 Agent 判断相关时,再加载 SKILL.md,相当于正式干活前先给 AI“补课”。
整个过程分三步走:
- 首先是匹配阶段,系统根据用户意图或关键词,从 Skill 库中找到相关的 Skill,匹配方式可以是关键词规则、语义检索,也可以直接在 Agent 的 System Prompt 里列出所有可用 Skill 让 LLM 自己判断。
- 然后是加载阶段,读取匹配到的 Skill 文件内容,注入到当前对话的上下文中。复杂 Skill 通常只先加载入口文件,需要更多细节时再读取参考资料、模板或示例,避免一次把所有内容塞满上下文。
- 最后是执行阶段,LLM 根据 Skill 中定义的步骤和约束来完成任务;如果流程需要外部操作,Agent 会继续调用相应的 Tool 或运行 Skill 附带的脚本,并按验收标准检查结果。

这跟 RAG 有点像,但关键区别在于:RAG 检索的是知识片段,目的是“回答问题”;Skill 加载的是操作指令,目的是“指导行动”。
Skills 在主流 AI 编程工具中的应用
目前 Skills 在 AI 编程助手领域已经有比较成熟的落地。截至 2026 年 7 月,几款主流工具对 Agent Skills 的实际支持如下:
| 工具 | Skills 实现形式 | 常见存放位置 | 触发方式 |
|---|---|---|---|
| Cursor | SKILL.md,可附带脚本与参考资料 | .cursor/skills//SKILL.md 或 .agents/skills//SKILL.md | Agent 根据任务自动匹配,或用户手动调用(官方说明) |
| Claude Code | SKILL.md,遵循 Agent Skills 开放标准 | .claude/skills//SKILL.md 或 ~/.claude/skills//SKILL.md | 自动匹配,或使用 /skill-name 调用(官方文档) |
| GitHub Copilot | 由 SKILL.md、脚本和资源组成的 Skill 目录 | .github/skills/、.claude/skills/、.agents/skills/,个人目录可用 ~/.copilot/skills/ 或 ~/.agents/skills/ | 任务相关时自动加载(官方文档) |
| Windsurf | SKILL.md 与配套文件 | .windsurf/skills//SKILL.md | Cascade 自动调用,或用户 @mention(官方文档) |
这里有个容易混淆的地方:CLAUDE.md、.github/copilot-instructions.md 和 Windsurf Rules 更接近常驻规则或项目说明,会持续影响对话;Agent Skill 通常按任务相关性动态加载,还可以携带脚本、模板和参考资料。叫法和目录会变,但核心思路一致:通过本地文件把可复用的专业流程交给 Agent。
Skills 的设计原则
写一个好的 Skill 跟写一个好的 Prompt 一样需要技巧:
1)一个 Skill 只解决一类问题,别把所有东西塞到一个文件里。“创建规则文件”和“修改编辑器配置”应该是两个独立的 Skill
2)操作流程要清晰,每一步做什么、用什么工具都写明白,最好是编号列表
3)明确定义输入参数和输出格式,减少歧义
4)给出正确和错误的示例,比纯文字描述有效得多
5)Skill 不是写完就不管了,要根据实际使用效果不断迭代优化
面试官追问
追问:Skills 和 RAG 都是往上下文里塞内容,具体区别在哪?
回答:RAG 检索的是知识片段,目的是让模型基于这些信息回答问题,属于"给 AI 喂资料"。Skills 加载的是操作指令,目的是让模型按照固定流程执行任务,属于"给 AI 定规矩"。RAG 的检索粒度通常是段落级别,一次可能检索 5-10 个相关文档片段;Skills 通常是整份文件加载,一次加载 1-2 个 Skill。另外 RAG 需要向量数据库做语义检索,Skills 一般靠简单的关键词匹配或者让 LLM 自己选就够了。
追问:如果 Skill 文件内容特别长,塞进上下文会不会有问题?
回答:肯定有问题。LLM 的上下文窗口是有限的,比如 Claude 的上下文是 200K token,一个 Skill 文件如果写了好几千 token,再加上用户的对话历史和系统提示词,很容易把上下文撑满。一般解决办法有两个:一是控制 Skill 文件的长度,把非核心内容拆成子文件按需加载;二是做分层加载,先加载一个精简版的摘要,Agent 判断需要更多细节时再加载完整内容。Cursor 就是这么干的,鼓励你把大 Skill 拆分成多个小文件。
追问:怎么判断一个任务应该用 Skill 来解决还是用 Tool 来解决?
回答:看这个任务需不需要跟外部系统打交道。如果只是需要 AI 按照特定流程去思考和组织输出,比如生成代码要遵循某种规范、创建文件要按照特定模板,用 Skill 就够了。如果需要查数据库、调 API、操作文件系统这些实际的外部操作,那就得上 Tool。简单说,Skill 管的是"怎么想",Tool 管的是"怎么做"。两者也经常配合着用,Skill 里面会写明在某一步调用哪个 Tool。
这道题最容易答浅的地方,就是把 Skill 说成“保存起来的提示词”后便停住。面试官真正想听的是后面几层:它怎么被发现和加载,为什么能让团队流程稳定下来,又怎样和 RAG、Tool、常驻规则分工。
今天看到一个开源 Skill,别只打开 SKILL.md 数字数。顺手看看它有没有脚本、参考资料、示例和验收门禁。能把这些东西串起来,才算真的会用 Skill 给 Agent 增加专业能力。
更多推荐




所有评论(0)