什么是 AI Agent 中的 Skills?它有什么用?

张开发
2026/6/12 1:17:42 15 分钟阅读
什么是 AI Agent 中的 Skills?它有什么用?
‍⚕️主页 gis分享者‍⚕️感谢各位大佬 点赞 收藏⭐ 留言 加关注✅!‍⚕️收录于专栏AI大模型原理和应用面试题文章目录一、Skills1.1 ☘️概念1.2 ☘️作用二、扩展知识2.1 ☘️Skills 出现之前的痛点2.2 ☘️Skills 的技术实现原理2.3 ☘️Skills 在主流 AI 编程工具中的应用2.4 ☘️Skills 的设计原则三、追问一、Skills1.1 ☘️概念Skills 就是给 AI Agent 写的操作手册本质上是一份结构化的指令文件。当 Agent 碰到某类任务就去读对应的 Skill按里面的步骤一步步执行不用你每次从头教它。比如你想让 AI 帮你创建 Cursor 的自定义规则文件规则文件放哪个目录、格式长啥样、有哪些字段这些东西写一个 create-rule 的 Skill 就搞定了。Agent 碰到相关任务自动加载不需要你每次重复沟通。1.2 ☘️作用1把某个领域的专业知识、操作步骤、注意事项打包成一个文件Agent 读了就能干活不需要每次重复教2同一个任务不管执行多少次Agent 都按 Skill 定义的流程走输出质量可预期3通过编写不同的 Skills让一个通用 Agent 具备各种垂直领域的专业能力不需要重新训练模型一个典型的 Skill 文件通常是 Markdown 格式包含触发条件、操作步骤、输入输出规范、常见坑点这几个核心部分。二、扩展知识2.1 ☘️Skills 出现之前的痛点没有 Skills 的时候你每次让 Agent 干一件稍微有点规范要求的活儿都得从头把要求说一遍。比如你要求代码文件头部必须加上版权声明、函数命名用驼峰、异常处理要统一格式你说了一次 Agent 记住了下次新对话又忘了。更要命的是不同的人给 Agent 的指令不一样同一个团队里 10 个人可能写出 10 种风格的代码来。Skills 就是来解决这个问题的把这些反复出现的指令和规范固化成文件让 Agent 每次都能自动读取保证行为一致。2.2 ☘️Skills 的技术实现原理Skills 的底层原理其实不复杂本质上就是一种 Prompt 注入机制。在 Agent 执行任务之前系统根据任务类型匹配合适的 Skill 文件把文件内容注入到 LLM 的上下文中相当于对话开始前先给 AI “补课”。整个过程分三步走首先是匹配阶段系统根据用户意图或关键词从 Skill 库中找到相关的 Skill匹配方式可以是关键词规则、语义检索也可以直接在Agent 的 System Prompt 里列出所有可用 Skill 让 LLM 自己判断。然后是加载阶段读取匹配到的 Skill 文件内容注入到当前对话的上下文中。最后是执行阶段LLM 根据 Skill 中定义的步骤和约束来完成任务。这跟 RAG 有点像但关键区别在于RAG 检索的是知识片段目的是回答问题Skill 加载的是操作指令目的是指导行动。2.3 ☘️Skills 在主流 AI 编程工具中的应用目前 Skills 在 AI 编程助手领域已经有比较成熟的落地工具Skills 实现形式存放位置触发方式CursorSKILL.md 文件.cursor/skills-cursor/Agent 根据任务自动匹配或用户引用Claude CodeCLAUDE.md项目根目录或 ~/.claude/每次对话自动加载GitHub Copilot.github/copilot-instructions.md.github/ 目录自动注入上下文WindsurfRules 文件.windsurfrules自动加载叫法不一样核心思路都是一个通过本地文件来持久化地影响 AI 的行为模式。2.4 ☘️Skills 的设计原则写一个好的 Skill 跟写一个好的 Prompt 一样需要技巧1一个 Skill 只解决一类问题别把所有东西塞到一个文件里。创建规则文件和修改编辑器配置应该是两个独立的 Skill2操作流程要清晰每一步做什么、用什么工具都写明白最好是编号列表3明确定义输入参数和输出格式减少歧义4给出正确和错误的示例比纯文字描述有效得多5Skill 不是写完就不管了要根据实际使用效果不断迭代优化三、追问提问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。

更多文章