开源Skills:给AI Agent装上可复用技能包,让工作流真正落地
先说个我最近的观察。AI Agent 工具这两年火得不行但很多人装完 Claude Code、Codex 或者 OpenCode 之后试了几个晚上就放下了原因特别统一让 AI 写个周报、改个代码还行一让它干正经活就露怯不是流程跑偏就是输出格式不对。问题不在模型在于你只给了它一张嘴没给它一套“干活的手册”。这就是开源 Skills 这个圈子突然热闹起来的原因——社区里有人把“整理笔记、准备客户会议、查数据、做演示、配图”这类高频工作打磨成了一整套可复用的技能包你只要把它装进 Agent 里AI 立刻从一个“什么都会但什么都不精”的实习生变成一个“知道自己每一步该干嘛、按什么标准验收”的熟练工。这篇文章我打算把这套玩意的原理、选型、安装步骤、以及我实际跑通 5 个典型场景的完整过程都摊开讲。适合两类人看一是刚接触 AI Agent、想让它真正参与到日常工作中的朋友二是已经在用 Claude Code 这类工具、但觉得效果不够稳定,想靠开源 Skills 提升产出质量的人。如果只是随便玩玩 Prompt这篇文章可能会帮你打开一个新思路。1. Skills 到底是什么为什么突然成了 AI Agent 圈的“新基建”1.1 Skills 的本质给 AI 一份“带操作手册的上岗培训”先说个最核心的判断Skills 不是普通 Prompt也不是插件它本质上是一套结构化的“职业技能包”。你平时写 Prompt相当于告诉 AI“给我写一份会议纪要”而 Skills 做的是更进一步——它把你期望 AI 在完成任务时遵循的完整流程、输入格式、输出模板、质量标准和禁忌事项全部打包。举个例子一个做“客户会议准备”的 Skill里面通常包含一份 SKILL.md 文件大致长这样--- name: meeting_brief description: 根据客户资料、历史纪要和公开信息生成一页纸的客户会议准备简报。当用户需要开会前准备、客户拜访准备、简报生成时使用。 --- ## 输入要求 - 客户公司名称 - 会议主题可选 - 我方参会人员可选 ## 处理流程 1. 读取本地知识库中的历史会议纪要 2. 检索客户公司最新动态和公开信息 3. 将信息汇总为结构化简报 ## 输出格式 - 一张 Markdown 表格包含客户现状、近期动态、历史共识、待讨论事项、建议议题 - 末尾附资料引用来源 ## 质量标准 - 简报不超过 1 页 - 所有事实性信息必须标注来源 - 没有找到的信息要明确写“未获取”禁止编造你没看错这就是一个 Skills 的核心文件。它前面有一段 YAML 格式的 frontmatter里面写 name 和 descriptionAI Agent 会根据这段 description 自动判断“什么时候该用这个技能”。中间是具体的执行步骤AI 会像照着 SOP 干活一样一步步来。我当时第一次看懂这个结构的时候心里冒出来一句话Prompt 是给 AI 提要求Skills 是给 AI 做培训。前者是一次性的后者是可复用的。你把 Skill 放进 Agent 的技能目录里它就能跨会话、跨项目地被反复调用而且每次的产出质量都相对稳定。1.2 Skills 和 MCP、插件、普通 Prompt 到底怎么分这个区分我特别想讲清楚因为现在网上概念太乱了。我自己的理解是这样的概念定位类比普通 Prompt一次性的任务描述你临时交代的一句话插件 / 扩展给 Agent 增加常驻能力给工具箱里添一把新扳手MCPAgent 与外部系统/工具之间的统一接口工具箱上标准的电源插口Skills一套面向具体任务的工作流与方法论老师傅脑子里的完整作业指导书MCP 和 Skills 经常被混为一谈但它们的层次是不一样的。MCP 解决的是“AI 能不能摸到某个外部系统”的问题比如能不能连上你的数据库、能不能调 API、能不能读文件系统。Skills 解决的是“AI 摸到了系统之后该怎么正确地干活”的问题。我在实际使用中比较喜欢的一个组合方式是一个 Skill 负责定义步骤和流程MCP 负责提供数据源和工具入口。比如“查数据”这个场景Skill 里规定“先确定指标口径再生成 SQL”真正执行 SQL 的动作则通过数据库 MCP 来完成。这样各司其职Agent 干活的时候既不会乱来又确实能把数据拿到手。值得一说的是现在开源社区里已经积累了大量现成的 Skills。最有名的几个方向包括Anthropic 官方的 skills 仓库obra/superpowers 这个收藏了几十个实用技能的项目还有 baoyu skills、codex skills、opencode skills 等各类衍生仓库。质量参差不齐但好处是你可以直接拿过来改这比自己从零写一个简单太多了。2. 五类高频场景的开源 Skills 选型思路2.1 整理笔记用 AI 按你的规则替你做知识归档我先从笔记场景讲因为这是最容易出效果、也最能让你感受到 Skills 价值的一个方向。如果你和我一样用 Obsidian 这类纯文本工具管理笔记那你大概率也会遇到这种状态剪藏了几百篇文章躺在 Inbox 里文件名乱七八糟、标签缺失、没有任何链接关系想找一篇半年前看过的文章只能靠搜索。传统做法是花一个周末手动整理整理完下一次还是会堆。开源 Skills 解决的就是这件事。我用的思路是装一个“笔记归档”方向的 Skill它会先扫描指定目录下的所有 Markdown 文件读取每篇笔记的主题然后按照我在配置里定义好的分类体系比如“技术”“产品”“行业动态”“个人随笔”四类给出一个重新归档的方案。这个方案会以表格形式展示AI 会问你要不要执行。确认之后它会批量更新文件名、补充 frontmattertags、aliases、created 时间并把笔记移动到对应目录。这里面最关键的配置就是分类规则。如果规则不明确AI 会自己发明一套逻辑反而让知识库越来越乱。我的做法是在 Skill 的配置区写清楚“每一类的判断标准是什么”并且给了反例。比如## 分类规则 - 技术包含编程语言、框架、架构设计、工具使用。 - 产品涉及产品规划、竞品分析、用户体验。 - 行业某个具体行业的新闻、政策、公司动态。 - 随笔个人思考、日记、无明确主题的内容。 注意一篇笔记只归入一个分类不允许跨类。无法判断时归入“待定”并向我询问。这个小细节非常重要。因为你给 AI 的判断标准越细它后续整理出来的知识库就会越像你自己会做出来的样子而不是一个大杂烩。2.2 准备客户会议从“开会前一个小时慌”到“五分钟生成简报”第二个场景是客户会议准备。我做了很多年技术解决方案和客户对接的工作对这种痛感记忆特别深下午要见客户上午才发现自己还没仔细看客户上次聊了什么、对方什么背景、我们之前答应过什么事情。真到沟通的时候只能靠临场反应效果全看缘分。一个开源的“会议准备”类 Skill 会把这件事流程化。它的典型工作流是这样的读取本地知识库里的历史会议纪要、客户资料、项目文档然后借助搜索类 MCP 去查客户公司官网和最近的公开动态最后生成一张结构化简报内容分为客户现状、近期动态、历史共识、待讨论事项、建议议题五块。以我自己的使用经验来说这个流程最大的价值不在于“查到了什么新闻”而在于它逼着 AI 把历史共识和待办事项列出来。比如 AI 会在简报里写“上次会议我方承诺提供 API 文档目前状态未交付本次需说明进度”这种信息一旦出现在你面前开会的状态完全不一样。如果是会议结束之后还可以配合一个“会议纪要”类的后续 Skill把现场录音转出来的文字丢进去AI 会按照“结论-讨论过程-行动项”的结构整理并且自动把行动项同步到项目笔记里标注负责人和截止时间。说白了你需要的不是某个神奇功能而是一整套“会前-会中-会后”的闭环流程Skills 就是干这件事的。2.3 查数据先定口径再查数别让 AI 瞎编数字第三个场景是查数据这也是我一开始最怀疑、后来觉得最值得花时间配置的领域。你可以想象一下一个销售负责人问“上个月新签客户的活跃度怎么样”如果直接让 AI 生成 SQL 去查它大概率会在“什么是新签客户”“什么是活跃”这些定义上跟你争论半天甚至直接用通用口径算出一个你以为对、实际对不上的数字。这事完全不能怪 AI因为你没给它输送业务知识。所以一个合格的“数据查询”类 Skill 必须包含一份指标口径表。你可以在配置里明确写指标口径定义新签客户过去 30 天内首次成交的客户活跃用户当天有登录行为且完成任意一个业务动作的去重用户次周留存率某周新增用户在下一周仍保持活跃的占比Skill 的工作流程变成了这样AI 接到问题后先去查询指标口径表把问题里的模糊词汇翻译成精确的业务定义然后根据这个定义生成 SQL再通过数据库 MCP 执行查询最后返回结果并附上一两句业务解读。这个流程如果跑顺了你会发现以前需要排队找数分同学的问题自己就能解决了。当然前提是你真的把口径表维护好。我见过太多人直接套网上的 Skill 却不好好填配置最后 AI 查出来的数据一堆坑。记住一句话开源 Skill 给你的只是流程框架业务知识必须由你自己注入。2.4 做演示文稿先把大纲聊明白再让 AI 生成 PPT第四个场景是演示文稿。网上不少 AI 生成 PPT 的工具我都试过最大的问题倒不是生成不了而是生成出来的东西“信息密度太低”。AI 非常容易把一页 PPT 写满漂亮但没有内容的废话比如“市场趋势持续向好”“客户需求不断升级”这种看了等于没看的话。开源社区里做得比较靠谱的“PPT 生成”类 Skills会刻意把流程拆成三个阶段。第一阶段AI 只帮你确定叙事线这个演示的目标是什么、观众是谁、核心结论是什么、每一页的要点和论据是什么。第二阶段把这套大纲转换成结构化的 markdown 文稿。第三阶段再调用 python-pptx 或 Marp 类工具生成真正的演示文件。我实际用下来最顺手的路径是先让 AI 给我一页“大纲图”我用树状格式列出每一页的主题、核心信息、需要的数据或图表、以及参数来源。确认大纲没问题之后再让它去做具体页面。这样虽然多了一步但最终产出的质量比一步到位好了不知道多少倍。而且这种“大纲先行”的思路同样适用于其他内容创作场景比如周报、方案文档、甚至博客文章。你把这一步沉淀进 Skill 的流程里AI 执行的时候就会自动按照这个节奏来不会一上来就噼里啪啦生成一堆东西。2.5 配图SVG 是 AI 最容易被低估的输出格式最后一个场景是配图。这个场景有点特殊因为很多人一提“AI 配图”就想到 Midjourney、Stable Diffusion 这类图像生成模型。但在实际工作流里你需要的往往不是一张艺术插画而是一张结构清晰、能放进技术文档或者 PPT 里的示意图、架构图、数据卡片或者封面图。这种需求的最佳方案其实是让 AI 直接生成 SVG 代码。SVG 是矢量图可以在任何浏览器里打开可以无损缩放可以直接改颜色改文字还能嵌入网页或文档。市面上已经有一些优秀的开源“SVG 设计”类 Skills它们会在 SKILL.md 里约定输出规范比如画布尺寸、配色方案、字体风格、元素层级让 AI 生成出来的图片风格统一不会出现一次一个样的问题。我自己的经验是让 AI 生成 SVG 时一次只让它画一个元素效果最好。比如你要一张技术架构图封面不要幻想 AI 一次生成整张海报而是先让它生成一个背景卡片再加上标题文字最后再逐层加入图形元素。因为 SVG 的本质是代码元素叠多了之后很容易出现文字溢出、间距错乱这类问题拆开生成、逐步叠加出错的概率会低很多。如果你确实需要照片级的配图那可以再接一个图像生成的 MCP 服务。但从“工作流生产力”的角度讲SVG 的实用性远远被低估了。我这几篇技术分享的封面图、流程图、结构图都是用 AI 生成 SVG 再微调代码做出来的改了第五版也只需要改一行代码比打开设计软件重新导出快太多了。3. 实操过程从克隆开源仓库到跑通第一个 Skills3.1 环境准备Claude Code、Codex、OpenCode 的 Skills 加载方式聊完选型我说说怎么落地。先把环境讲清楚。现在主流的 AI Agent 工具基本都支持 Skills 机制但加载方式略有差异。我列一个表你们对照着看自己手头用的是哪个工具Skills 目录位置备注Claude Code项目内.claude/skills/或用户级~/.claude/skills/Anthropic 官方支持社区生态最丰富Codex~/.codex/skills/OpenAI Codex 的 skills 机制格式基本兼容 SKILL.mdOpenCode~/.config/opencode/skills/开源工具加载逻辑类似可直接复用现有 skill 目录Superpowers仓库内置 skills/ 目录通过插件或启动时加载偏“技能集大成”几十个技能一起配齐我第一次上手的时候用的是 Claude Code。操作流程其实特别简单一句话就能说清把一个 Skill 项目克隆下来然后把它里面的 skill 目录复制到你的技能目录里重启会话让 Agent 重新扫描。拿相对通用的做法举例# 1. 先创建一个技能目录第一次需要 mkdir -p ~/.claude/skills # 2. 把某个开源 skill 仓库克隆到本地 git clone https://github.com/example/skills-kit.git # 3. 把需要的 skill 目录复制过去比如复制“客户会议准备”这个技能 cp -r skills-kit/meeting-brief ~/.claude/skills/ # 4. 重启 Claude Code在对话里输入技能的关键词比如“帮我准备明天上午的客户会议”Codex 和 OpenCode 的步骤几乎一模一样只是目标路径不同。如果你在 Windows 上操作用资源管理器把文件夹复制过去就行路径别搞错就好。3.2 一份可复制的 SKILL.md 最小配置很多人会问开源仓库里的 Skills 能不能直接拿来就用能但更好的玩法是看懂它的结构然后改成适合自己的。一个标准的 Skill 目录是长这样的meeting-brief/ ├── SKILL.md # 技能的核心说明书必须 ├── scripts/ # 可选辅助脚本比如抓取网页的 python 脚本 ├── templates/ # 可选输出模板比如简报模版、PPT 模板 └── references/ # 可选参考文档比如指标口径表、示例输出其中 SKILL.md 是灵魂。它对格式的要求并不复杂但非常严格。frontmatter 里的 name 和 description 是 Agent 用来“检索”你技能的入口如果 description 写得太泛Agent 永远都不会在关键时刻想起来调用你。我当时踩过的一个坑就是把一个技能 description 写成“meeting helper”结果半天不生效。后来改成“根据客户资料、历史纪要和公开信息生成一页纸的客户会议准备简报。当用户需要开会前准备、客户拜访准备、简报生成时使用”它才开始被正确触发。下面给一份最小可用的 SKILL.md 全文你可以直接参考--- name: daily_report description: 生成结构化日报。当用户需要写日报、汇总今日工作内容时使用。 --- ## 输入要求 - 今日完成的事项如果没有会先询问你 - 明日计划可选 - 需要领导关注的风险可选 ## 执行流程 1. 先列举用户输入的所有事项按“完成 / 进行中 / 风险”三组分类 2. 为每组生成简明明细 3. 按照输出模板整理 ## 输出模板 - 今日完成 - 进行中 - 风险与求助项 - 明日计划 ## 质量标准 - 每条事项必须有动词开头的描述 - 不编造没有提到的内容 - 总字数控制在 300 字以内 ## 禁止事项 - 不要美化或夸大成果 - 不要替用户编造风险你看这个文件写得很朴实但它把“什么时候用”“怎么用”“什么不要做”都讲清楚了。AI 拿到这个文件之后执行起来会非常有边界感。我后来给很多自己用的技能都补了“禁止事项”这一节效果立竿见影AI 不再自作主张地扩展任务范围这是我在反复试错中总结出来的重要经验。3.3 复杂一点的玩法让 Skill 调用脚本、模板和 MCP 工具如果你的需求不只是写写文本那 Skill 里还可以加脚本和模板。我在做 PPT 生成技能的时候目录结构大概长这样ppt-builder/ ├── SKILL.md ├── scripts/ │ └── build_ppt.py # 用 python-pptx 读取大纲 JSON生成 .pptx 文件 ├── templates/ │ └── theme.json # 主题配置配色、字体、页边距 └── references/ └── sample_outline.md # 一个标准的大纲范例SKILL.md 里的执行流程会指示 AI 这么干根据用户需求用中文生成大纲结构参照 sample_outline.md把大纲转换为 JSON 格式传递给 scripts/build_ppt.py执行脚本生成 PPTX并报告生成的文件路径。这里最关键的一步是“把大纲转成 JSON 并交给脚本”。因为 SKILL.md 本身只是文字说明真正干活的是那些脚本。你完全可以按照自己的环境写辅助工具让 AI 调用它。如果你愿意在这个基础上加一个文件系统 MCPAI 还能自己读取本地模板、把生成的文件放到指定目录整个流程就完全自动化了。同一个逻辑也适用于数据查询。我在数据类 Skill 里就写了这样一段话执行 SQL 之前必须先从 references/metrics.md 确认指标口径如果口径表里没有对应指标直接向用户询问禁止自行假设。执行 SQL 时先运行DESCRIBE table;检查表结构确认字段存在后再执行查询。这句话看起来简单但它帮我挡掉了大量错误查询。AI 在没有这条指令前常常会凭感觉猜一个字段名然后查出一张空表或者报错日志加了这条规则之后整个查数过程的稳定性有了质的提升。4. 常见问题与排查技巧实录4.1 最容易踩的 5 个坑以及我的解决办法我在这两周折腾各种开源 Skills 的过程中踩了不少坑。挑几个典型的放出来给你当排雷手册。问题原因解决办法技能没被触发AI 不按 Skill 干活SKILL.md 的 description 写得太泛Agent 没识别出来把 description 写具体带上使用场景和触发关键词Skill 装了但完全没反应技能目录路径不对或 Agent 忘了重新扫描确认放在~/.claude/skills/或项目.claude/skills/下重启会话AI 执行到一半跑偏自己加料流程步骤描述太短或者缺“禁止事项”把流程拆成明确步骤每个步骤写明输出补全禁止事项查数据时 SQL 乱生成没有配置指标口径表AI 只能靠猜在 references/metrics.md 里写清口径要求 AI 先查口径再执行生成 PPT/SVG 样式很丑缺少设计约束AI 只用了默认风格在 Skill 里预设好模板、配色、字体或者让它按参考样例排版4.2 从“能用”到“好用”的三个心得先说第一个心得一个 Skill 只解决一件事别贪多。我最早也想做一个“万能办公助手”技能结果 AI 每次都不知道该先调用哪部分效果反而差。现在我的做法是把一个大的需求拆成几个小技能比如“会议准备”“会议纪要”“行动项跟踪”分开让 AI 按需调用组合使用。技能组合越灵活整体越稳定。第二个心得一定要给 Skill 写“禁止事项”。这一点很多开源项目都没做。比如数据查询技能里我写了“禁止对数据做业务解读除非用户明确要求”会议准备技能里写了“禁止编造历史对话”。有了这些红线AI 犯错的概率会小很多。第三个心得开源 Skills 是起点不是终点。我每次从社区里下载一个新技能第一件事是先把它的 SKILL.md 通读一遍然后按自己的习惯改掉里面的输入格式和输出模板。改到第三版的时候这个技能才真正变成“我的”。社区里很多项目的作者非常欢迎提 issue 和 pull request如果你觉得某个技能好也可以顺手给作者反馈。开源社区的价值就在于此大家都把自己工作流里最好用的一环贡献出来别人就能在这个基础上继续改。4.3 一个值得注意的细节如何让 Skill 正确调用 MCP 工具最后单独说下开源社区里大家问得最多的Skills 到底怎么调用 MCP 工具其实它不负责“调用”它只是“声明需要”。在 SKILL.md 中你可以写一段“依赖的外部工具”说明。AI Agent 读到这段说明后会去检查当前环境里有没有可用的 MCP 工具如果没有它会告诉你“当前缺少数据库 MCP请配置后重试”。这种做法相当于提前声明了依赖让 Agent 在开工之前就做好环境检查。我的建议是在 Skill 里明确写出需要哪些 MCP 服务比如需要一个文件搜索类 MCP、一个数据库查询类 MCP、一个网页搜索类 MCP而不是笼统地写“查询公开信息”。你写清楚之后AI 用起工具来会精准得多也不会在缺少某个工具的时候硬着头皮瞎编。这个细节我是在对比了很多开源项目后才意识到的一个好的开源 Skill 除了流程清晰之外还会把工具依赖表达得清清楚楚。5. 写在最后这套玩法还能怎么延伸按惯例聊点个人体会。我大概用了两周多的时间把这套基于开源 Skills 的工作流跑进自己的日常最大的感受是它带来的不只是单次产出质量的提升而是我重新定义了“怎么给 AI 布置工作”。以前我在对话框里写一句“帮我查下数据”剩下的全看它临场发挥现在我会先说“用数据查询技能处理口径按 config 里的定义”它就真的会按部就班地去做。这个转变很微妙但你试过之后就不想回去了。另外分享一个我最近在用的很基础但很有用的小技巧给 Skill 写“验收标准”。比如在 PPT 技能里写“生成完成后检查是否所有页面都有具体论据是否出现了空话套话若有则自动重写该页”。这个标准不太复杂但它能让 AI 在交付之前自己先检查一遍很多低级错误在这里就会被挡下来。再往深说这套思路完全可以在团队里铺开。大家可以把团队的指标口径、会议模板、周报规范、汇报风格都沉淀成一个个私有 Skills放到一个共享位置新同事上手的时候直接拉下来就能用。这比写几十页的团队文档要直观得多因为它是直接“长”在 AI 执行流程里的。如果你看完这篇文章也想试我的建议很直白先别贪多挑一个你每周都会做、但又一直不想做的任务比如整理笔记或者准备客户会议去 GitHub 上搜一个对应的开源 Skills 装上改成适合自己的版本用两周再说。很可能你会有和我类似的体验——AI 并不是突然变聪明了而是终于有人给它写了一本靠谱的作业指导书。
