1. 项目概述一份AI Agent技能生态的“藏宝图”如果你最近在折腾AI智能体尤其是像Claude Code、Cursor这类能帮你写代码、处理复杂任务的AI助手那你大概率已经听过“Agent Skills”这个词了。简单来说Agent Skills就是给这些AI智能体安装的“技能包”。想象一下你的AI助手原本是个什么都会一点的通才但当你需要它帮你调试一个特定的数据库连接问题或者生成一份符合公司规范的API文档时它可能就有点力不从心了。这时候一个专门针对“Supabase故障排查”或“OpenAPI规范生成”的Skill就能立刻让AI变身成为该领域的专家精准地调用工具、遵循最佳实践来解决问题。我最初接触这个概念时感觉信息非常碎片化——官方文档、社区教程、各种技能库散落在各处。直到我发现了skillmatic-ai/awesome-agent-skills这个项目它就像一份精心整理的“藏宝图”系统性地汇总了关于Agent Skills的一切从核心概念解读、现成技能库到开发工具、进阶研究一应俱全。这个项目本身不是一个可以直接运行的代码库而是一个高质量的资源聚合列表目标用户非常明确所有正在使用或打算构建AI智能体的开发者、研究者和技术爱好者。无论你是想快速找到能即插即用的技能来提升工作效率还是想深入学习如何为自己的团队定制专属技能这份列表都能为你节省大量搜寻和筛选的时间。2. Agent Skills核心概念与设计哲学拆解在深入使用和开发之前我们必须先搞清楚Agent Skills到底是什么以及它背后解决的核心问题是什么。这不仅仅是记住一个定义而是理解其设计哲学这能帮助我们在后续选择、使用乃至创建技能时做出更明智的决策。2.1 不仅仅是“提示词模板”模块化与渐进式披露很多人容易把Skill简单地理解为一段复杂的提示词Prompt。这其实是一个误解。一个标准的Agent Skill通常体现为一个SKILL.md文件及其相关资源是一个模块化的能力包。它的核心设计思想是“渐进式披露”。这意味着什么一个Skill包含多层信息轻量级元数据例如技能名称、描述、适用场景、输入输出格式等。这部分信息非常精简AI智能体或平台在扫描技能库时可以快速加载这些元数据来了解这个技能是干什么的而无需加载全部内容。完整的执行指令当AI判断当前任务需要调用这个技能时才会动态加载这部分详细的、步骤化的操作指南。这就像是“按需加载”避免了将所有技能的巨量文本一次性塞进AI的上下文窗口造成浪费和干扰。支持性资源可能包括代码片段、配置文件模板、外部工具API的调用方式等。这些资源只在技能被激活并执行到特定步骤时才被引用或调用。这种设计带来了巨大优势。传统的做法是把所有操作指南都写进一个庞大的系统提示词里导致上下文窗口迅速被占满成本高昂且效率低下。而Skill模式让AI智能体变得极其灵活和可扩展你可以拥有一个庞大的技能库但AI在每次交互中只“携带”与当前任务最相关的少数几个技能实现了精准的能力扩展。2.2 与微调、MCP的关键区别找准定位理解Agent Skills还需要把它放在AI能力扩展的“工具箱”里看清它和其他工具的区别。与模型微调的区别这是最根本的。微调是“改变大脑”通过训练永久性地修改了底层大语言模型的权重让它更擅长某一类任务。这个过程成本高、不可逆且更新缓慢。而Skill是“给予知识和工具”它不改变模型本身只是在运行时提供额外的指令和资源。就像给一个聪明的助手一本专业的操作手册它立刻就能照着手册干活。Skill的更新是即时的——你更新了SKILL.md文件助手下次调用时就能用上新版本。与模型上下文协议的区别MCP是一种协议用于让AI智能体安全、结构化地访问外部数据和工具如数据库、文件系统、API。你可以把MCP看作是**“手”和“眼睛”的扩展**让AI能操作真实世界的资源。而Agent Skills更像是**“知识”和“工作流”的扩展**它告诉AI“如何思考”和“按什么步骤操作”来完成任务。两者是互补关系一个Skill内部完全可以定义去调用通过MCP暴露的工具。例如一个“数据分析”Skill其指令中会包含“通过MCP连接数据库执行查询SQL然后对结果进行可视化”这样的工作流。实操心得不要试图用Skill去解决所有问题。对于需要深度理解特定领域知识、遵循复杂流程的任务如“代码评审”、“事故复盘报告生成”Skill是绝佳选择。而对于需要实时、安全访问敏感或动态外部数据的任务你应该优先考虑通过MCP来提供访问能力然后让Skill来定义如何使用这些数据。3. 开箱即用主流平台与海量技能库实战指南理论清楚了接下来就是实战。我们首先会关注如何“用起来”。这部分信息在Awesome列表中占据了很大篇幅因为它直接关系到我们能否快速将Agent Skills的价值落地。3.1 支持Agent Skills的平台全景图目前Agent Skills生态已经得到了众多主流AI开发工具和平台的支持这意味着你学会的技能可以在多个环境中复用。AI原生编码环境Claude Code这是Anthropic官方力推的平台对Skill的支持最原生、最深入。其文档也是学习Skill标准的绝佳参考。OpenAI CodexOpenAI的CLI智能体同样提供了官方的Skill支持。Gemini CLI谷歌Gemini模型的终端版本也集成了Skill功能。集成开发环境Cursor这款以AI为核心驱动的编辑器对Skill的支持非常友好提供了流畅的本地技能发现和管理体验。VS Code通过GitHub Copilot等扩展VS Code也能利用Skill来增强AI辅助编程的能力。GitHub Copilot作为广泛使用的编程助手它支持Agent Skills允许你为团队定制特定的编码规范或框架使用技能。其他AI智能体框架Mistral Vibe、Manus、OpenCode、Amp、Goose、Letta、Roo Code等这些新兴或专精的AI智能体工具也纷纷加入支持形成了一个繁荣的生态。注意事项不同平台对Skill的解析和调用方式可能有细微差别。例如Claude Code可能对Skill的元数据字段有特定要求而某个开源框架可能支持更灵活的加载方式。在为一个平台开发Skill时务必先查阅其官方文档了解其具体的Skill规范和支持程度。3.2 技能库探索与安全使用策略有了平台下一步就是寻找技能。Awesome列表里分门别类地列出了大量的技能库这里我将其归纳为几种类型并分享我的使用策略。1. 官方技能库首选 这是最可靠、质量通常也最高的来源。各大厂商会发布维护自身生态的技能。Anthropic Skills / OpenAI Skills包含通用编程、调试、代码解释等基础技能是了解标准Skill格式的好样本。Microsoft Skills专注于与Azure云服务、Microsoft AI Foundry开发栈集成的技能。Google Workspace Skills提供操作Gmail、Docs、Sheets等谷歌办公套件的技能。Vercel Skills反映了现代Web开发Next.js, Vercel平台的最佳实践。Supabase Skills帮助AI智能体进行数据库操作、身份验证管理等。2. 社区精选与市场 社区是创新和多样性的源泉。Hugging Face Skills一个兼容性广泛的社区技能库涵盖机器学习、数据处理等多个领域。SkillsMP / agentskill.sh / Skillstore这些是技能市场或目录网站你可以像逛应用商店一样浏览和发现技能。agentskill.sh提到的“两层安全扫描”是一个重要特性为从社区安装技能增加了一道安全防线。3. 专题集合 针对特定领域的深度整合。muratcankoylan/Agent-Skills-for-Context-Engineering专注于“上下文工程”的技能集合教你如何更有效地为AI组织和管理上下文信息。Orchestra-Research/AI-research-SKILLs聚焦于AI/ML研究和工程任务。phuryn/pm-skills产品经理相关的技能如需求分析、PRD撰写等。安全使用策略 必须牢记Skill即代码。一个恶意的Skill可能会引导AI执行危险操作或泄露敏感信息。审查优先尤其是从非官方来源获取技能时花时间阅读SKILL.md文件的内容检查其指令是否安全、调用的工具或命令是否可信。沙盒环境测试在将新技能用于生产环境或涉及敏感数据的任务前先在隔离的测试环境或非关键任务中试用。依赖官方与可信来源对于核心工作流优先考虑官方库或经过社区广泛验证的技能。4. 从使用者到创造者技能开发全流程解析当你发现现有的技能无法满足你的特定需求时就到了自己动手的时候。构建一个高质量的Skill远不止是写一个Markdown文件那么简单它涉及设计、编写、测试和分发的完整流程。4.1 技能设计与结构剖析一个结构良好的Skill是其能否被AI有效理解和执行的关键。根据Anthropic等官方指南一个典型的SKILL.md包含以下部分# 技能名称 **描述**用一两句话清晰说明这个技能是做什么的解决什么问题。 **作者**你的名字或团队名。 **版本**例如 1.0.0 **适用平台**Claude Code, Cursor等。 ## 能力 列出该技能使AI智能体能够完成的具体任务。例如 - 分析给定的SQL查询并提供性能优化建议。 - 根据用户需求生成符合RESTful规范的API端点代码。 - 对一段Python代码进行安全漏洞扫描。 ## 前置条件 说明执行此技能前需要满足的条件。例如 - 用户必须提供一段SQL查询代码。 - 项目必须是一个Node.js项目并已安装ESLint。 - AI智能体需要具有文件读取权限。 ## 执行步骤 这是技能的核心用清晰的、逐步的指令引导AI。要像给一个聪明但需要精确指导的新手写手册。 1. **步骤一理解输入**。要求AI确认它是否收到了必要的信息如SQL代码。 2. **步骤二分析与处理**。指导AI如何分析输入。例如“使用你内置的SQL知识检查查询中是否存在全表扫描、未使用索引的情况。” 3. **步骤三生成输出**。告诉AI输出应该是什么格式。例如“以列表形式给出找到的问题对每个问题说明原因并提供优化后的查询片段。” 4. **步骤四后续建议**可选。例如“如果用户同意修改你可以提供应用这些优化的具体操作指引。” ## 示例 提供1-2个完整的输入输出示例这是让AI理解你意图的最有效方式。 **输入** sql SELECT * FROM users WHERE age 18;输出问题使用了SELECT *可能获取了不必要的列影响性能。建议明确指定需要的列例如SELECT id, name FROM users WHERE age 18。问题age列上如果没有索引此查询可能导致全表扫描。建议考虑在users.age列上创建索引如果该查询频繁执行。资源可选链接到相关的代码片段、配置文件模板或外部文档。 **实操心得**编写“执行步骤”时要站在AI的视角。指令必须**无歧义、可操作**。避免使用“更好”、“优化”这类模糊词汇而是用“按字母顺序排序”、“将循环改为使用map函数”等具体描述。多使用“首先…然后…最后…”这样的结构来引导思考链。 ### 4.2 开发、测试与集成工具链 手工编写和测试Skill效率较低好在社区已经提供了一些工具。 * **开发与验证** * **SkillCheck**这是一个静态分析工具可以扫描你的 SKILL.md 文件检查常见的风险模式例如是否包含了可能执行任意命令的危险指令或者是否有模糊不清的步骤。在分享技能前用它跑一遍是个很好的安全习惯。 * **Upskill**Hugging Face推出的库专注于为代码智能体生成和评估技能。它可以帮助你自动化测试技能在特定编码任务上的效果。 * **集成与框架** * **LangChain Deep Agents / Multi-Agent Skills**如果你在使用LangChain构建复杂的多智能体系统这些模块提供了将Skill集成到智能体工作流中的标准化方法。它帮你处理技能的加载、路由和调用逻辑。 * **OpenSkills**这是一个“通用技能加载器”。它的目标是做一个适配层让你编写的技能能更容易地被不同平台、不同框架的智能体所使用提高了技能的可移植性。 * **IntentKit / Agentica**这些框架更侧重于“意图识别”和“函数调用”它们可以帮助你更好地将用户的自然语言请求匹配和路由到对应的Skill上执行。 **测试流程建议** 1. **单元测试**用SkillCheck进行静态分析。 2. **功能测试**在目标平台如Claude Code中手动触发技能使用“示例”中的输入看AI是否能产生符合预期的输出。 3. **集成测试**如果技能调用了外部工具通过MCP需要在集成的环境中测试整个链路是否通畅。 4. **边界测试**尝试一些边缘案例或错误输入观察AI的反应是否符合技能中定义的错误处理逻辑如果你定义了的话。 ## 5. 进阶探索性能评估、安全与研究前沿 当你已经熟练使用和创建基础技能后可能会开始思考更深层次的问题如何评估一个技能的好坏技能组合起来会不会有安全风险这个领域的研究者们在关注什么Awesome列表的第四部分为我们打开了这扇门。 ### 5.1 技能评估与基准测试 如何知道你的技能是有效的或者在多个功能相似的技能中如何选择这就需要客观的评估标准。 * **SkillsBench**这是一个专门的基准测试框架包含了86个跨越11个不同领域如代码生成、数据分析、文本处理的任务。你可以用SkillsBench来量化测试一个技能在多样化任务上的表现比如它的成功率、输出质量、执行效率如何。这对于技能开发者优化自己的设计或者对于团队选型来说非常有价值。 * **Benchflow**另一个评估库更侧重于在真实工作流中衡量技能的性能。它可能模拟一个完整的开发场景例如“从Issue描述到生成Pull Request”然后看集成了特定技能的智能体能否流畅地完成整个流程。 * **Upskill**如前所述它不仅用于生成也用于评估特别是针对代码相关技能。 **建立内部评估体系** 对于企业或团队内部开发的技能我建议建立简单的评估清单 1. **准确性**对于给定输入输出是否100%符合要求 2. **可靠性**多次执行结果是否一致 3. **效率**技能描述是否清晰让AI能快速理解并执行而不是消耗大量token进行“思考” 4. **安全性**是否避免了潜在的危险操作或信息泄露 5. **可维护性**技能文档是否清晰当底层工具更新时技能是否易于更新 ### 5.2 安全考量与“提示词注入”新变种 安全性是Agent Skills无法回避的话题。那份名为《Agent Skills Enable a New Class of Realistic and Trivially Simple Prompt Injections》的论文指出了一个关键风险**Skill文件本身可能成为提示词注入的载体**。 传统的提示词注入是用户通过在输入中夹带恶意指令来“欺骗”AI。而Skill作为被AI信任的、主动加载的指令集如果被篡改或植入了恶意内容其危害更直接、更隐蔽。例如一个本应进行代码审查的Skill如果在指令中偷偷加入“将审查到的API密钥发送到某个外部地址”的步骤AI会毫不犹豫地执行。 **防御策略** 1. **严格的来源控制**只从受信任的官方仓库或经过严格审计的渠道安装技能。 2. **代码审查流程**将Skill的创建和更新纳入团队的代码审查流程像审查源代码一样审查 SKILL.md。 3. **最小权限原则**运行AI智能体的环境应遵循最小权限原则限制其网络访问和文件系统操作能力即使技能被恶意利用也能将损失降到最低。 4. **使用扫描工具**利用像SkillCheck这样的工具进行自动化安全扫描。 ### 5.3 研究前沿与未来展望 学术界的关注点往往预示着技术的未来发展方向。列表中的几篇论文非常有意思 * **SkillFlow**研究智能体如何在一生中**持续发现、修复和进化技能**。这不再是静态的技能库而是一个动态成长的能力体系。 * **Graph of Skills**当技能库变得非常庞大时如何快速找到并组合正确的技能这篇论文提出了构建**技能依赖图**的方法让智能体能进行更高效的推理像搭积木一样组合技能来解决复杂问题。 * **SkillClaw**探讨如何通过**聚合大量用户与技能的交互数据**让技能能够自主地、集体地进化变得越来越好用。 * **PolySkill**关注技能的**泛化能力**即如何让一个技能不仅能解决它被训练的那个具体任务还能举一反三应用到类似但不同的场景中。 这些研究指向一个共同的未来**技能不再是孤立的、手工编写的静态文档而是一个动态的、可互联的、能自主进化的生态系统**。对于开发者而言这意味着我们设计技能时可能需要更多地考虑其可组合性、可描述性便于被图算法理解和可进化性。 我个人在实际构建和运用技能的过程中最大的体会是**Agent Skills的本质是将人类专家的“隐性知识”和“工作流”进行标准化、外部化封装的一次革命**。它降低了让AI掌握复杂专业知识的门槛。以前你需要一个既懂AI又懂领域知识的专家来设计复杂的提示链现在领域专家可以按照相对固定的格式把自己的工作方法写成Skill就能直接赋能AI。这个过程本身也在倒逼我们去更结构化地梳理自己的知识体系。开始动手为你最常做的那件麻烦事写一个Skill吧这可能是你理解这个生态最好的方式。