
Agent Skill 学习笔记1.自己有做过什么 Skill 吗skill可以是用写好了的比如antropic官方就提供了很多skillfront-design 前端设计 Skill主要用于辅助前端页面设计比如根据页面需求生成布局方案、组件结构、交互说明和样式建议。skill-creator 写 Skill 的 Skill这是一个“用来生成 Skill 的 Skill”。它可以根据某个任务的执行流程、输入输出要求、边界情况自动整理出一个结构化的SKILL.md。工作总结 Skill可以设计过一个能够根据一段时间内的代码修改、思路调整、实验效果和项目进展自动生成工作总结文档的 Skill。比如它可以读取近期的开发记录、commit 信息、实验结果然后整理成阶段性工作数据报告方便周报、组会汇报或者项目复盘。2. Skill 是什么简单来说Skill 就是给 AI 的一份“工具说明书”或者“任务执行手册”。它告诉 AI这个任务应该怎么做按什么步骤做输入是什么输出是什么遇到特殊情况应该怎么处理哪些规则必须遵守。如果普通 Prompt 是临时告诉 AI 怎么做那么 Skill 更像是把一套可复用的方法沉淀下来让 AI 以后遇到类似任务时可以稳定执行。3. Skill 的典型结构一个 Skill 通常会包含一个核心文件比如SKILL.mdSKILL.md里一般包括两部分3.1 YAML 元数据文件开头通常会有 YAML 格式的元数据例如---name:work-summary-skilldescription:根据近期代码修改、实验记录和项目进展生成阶段性工作总结---常见字段包括nameSkill 的名称descriptionSkill 的功能介绍可能还会有适用场景、输入要求、依赖工具等信息。这部分主要用于让 Agent 快速判断当前任务是否适合调用这个 Skill。3.2 Markdown 正文内容YAML 元数据后面是具体的 Markdown 内容通常包括任务目标执行步骤输入格式输出格式示例注意事项边界情况失败处理方式。例如一个工作总结 Skill 可能会写## 执行步骤 1. 收集最近一段时间的代码修改记录。 2. 按功能开发、问题修复、实验结果、风险问题进行分类。 3. 提炼关键进展和阻塞点。 4. 输出结构化工作总结。4. Skill 目录里可能包含什么Skill 不一定只有一个SKILL.md文件也可能包含其他资源目录。例如work-summary-skill/ ├── SKILL.md ├── examples/ │ └── weekly_report_example.md ├── templates/ │ └── report_template.md └── references/ └── project_terms.md可能包含示例文件模板文件参考资料规则说明脚本文件测试样例外部资源说明。也就是说Skill 可以不只是“文字说明”也可以是一个包含知识、流程和资源的能力包。5. 什么场景适合做成 Skill不是所有任务都适合做成 Skill。适合做成 Skill 的任务一般有几个特点5.1 流程可以明确写下来比如生成周报总结代码改动整理实验结果生成前端页面设计文档检查论文格式生成接口文档根据日志定位问题。这些任务都有比较固定的步骤可以沉淀成执行流程。5.2 判断过程会反复出现如果一个任务不是只做一次而是经常会遇到就适合写成 Skill。例如每周都要写项目进展每次实验后都要分析结果每次写接口都要生成文档每次写前端页面都要遵循相同设计规范。Skill 的价值就在于把重复出现的经验和流程沉淀下来让 Agent 下次可以直接复用。5.3 经验可以长期复用Skill 本质上是在给 Agent 增加长期能力。比如一个工作总结 Skill里面可以固定要求先总结完成了什么再总结遇到的问题再写下一步计划最后整理风险和待确认事项。这样每次生成的工作总结都会更稳定、更符合自己的习惯。6. 什么场景不适合做成 Skill创造性要求特别高、一次性的任务不一定适合做成 Skill。比如写一篇完全原创的小说临时想一个广告创意一次性的头脑风暴没有固定流程的开放式创作。这类任务每次差异很大流程不稳定复用价值不高。所以判断一个任务适不适合做成 Skill可以看一句话这个任务有没有一套可以重复执行的流程如果有就适合做 Skill。如果每次都完全不同就不一定适合。7. Skill 太多上下文塞不下怎么办当 Skill 数量很多时不可能把所有 Skill 的完整内容一次性塞进上下文里否则会导致上下文过长、成本增加还可能干扰模型判断。解决方法是按需加载渐进式披露。也就是一开始只加载每个 Skill 的元数据而不是加载完整内容。例如一开始只给 Agent 看name:work-summary-skilldescription:根据近期代码修改和实验进展生成工作总结等 Agent 判断当前任务确实需要这个 Skill 后再加载完整的SKILL.md内容。这样做的好处是减少上下文占用避免无关 Skill 干扰模型提高 Skill 选择效率让系统可以支持更多 Skill。可以理解成先看目录再决定翻哪本书。8. CLI、Skill 和 MCP 的关系CLI、Skill、MCP 都可以看作是 AI 扩展能力的方式但它们解决的问题不一样。8.1 CLI命令行工具调用CLI 是命令行模式本质是 AI 调用本地命令行程序或脚本。比如python summarize.pynpmrun buildgitdiffmvntestCLI 的特点是轻量本地可用适合调用已有脚本或命令行工具通常通过标准输入输出也就是stdio通信不需要额外服务适合执行时间短、边界明确的任务。例如如果系统里已经有一个成熟脚本可以直接让 Agent 通过 CLI 调用它。8.2 Skill技能包Skill 更像是一个任务能力包主要告诉 Agent遇到某类任务时应该按照什么流程执行。Skill 的特点是更偏流程和知识封装通常绑定在某个平台中使用可以包含文档、示例、模板和资源适合沉淀长期复用的任务经验可以让 Agent 更符合某个团队或个人的使用习惯。例如前端设计 Skill工作总结 Skill论文格式检查 Skill接口文档生成 Skill。Skill 不一定直接执行外部命令它更多是在指导 Agent 怎么做。8.3 MCP模型上下文协议MCP全称是 Model Context Protocol可以理解为大模型和外部工具之间的一套标准通信协议。它主要解决的是AI 如何统一连接外部工具工具如何暴露给 AI参数如何传递结果如何返回调用过程如何更安全、更标准。MCP 更偏“工具连接层”。比如通过 MCPAgent 可以调用数据库文件系统搜索工具Git 工具API 服务企业内部系统。9. MCP 和 Skill 的区别MCP 和 Skill 很容易混淆但它们关注点不一样。9.1 MCP 解决“怎么连接工具”MCP 关注的是工具在哪里怎么调用参数是什么返回什么通信协议是什么。也就是说MCP 解决的是大模型如何安全、统一地连接外部工具。9.2 Skill 解决“怎么完成任务”Skill 关注的是任务流程是什么先做什么后做什么怎么判断结果是否正确出错了怎么处理输出格式是什么。也就是说Skill 解决的是大模型应该按照什么方法完成某类任务。9.3 二者可以配合使用MCP 和 Skill 不是互相替代的关系而是可以配合。例如用户说帮我根据最近一周代码修改生成工作总结。Agent 可以先根据 Skill 判断应该如何写工作总结再通过 MCP 调用 Git 工具获取 commit 记录再调用文件系统读取相关文档最后按照 Skill 中定义的模板生成总结。也就是说MCP 让 Agent 能调用工具Skill 让 Agent 知道怎么用这些工具完成任务。10. CLI、Skill、MCP 对比类型主要作用特点适用场景CLI调用本地命令或脚本轻量、本地、简单、通过 stdio 通信调用已有脚本、运行测试、执行命令Skill封装任务流程和知识可复用、偏流程、平台相关工作总结、前端设计、文档生成、格式检查MCP连接外部工具的协议标准化、安全、统一连接工具数据库、文件系统、搜索、API、企业系统11. 我对 Skill 的理解我理解的 Skill 不是简单的一段 Prompt而是一个可复用的任务能力包。它的核心价值是沉淀经验把某类任务的正确做法写下来减少每次重新提示的成本。稳定输出让 Agent 按照固定流程、固定格式完成任务减少随机性。降低上下文成本通过元数据检索和按需加载不需要每次把所有规则都塞进上下文。适配个人或团队需求不同团队有不同规范Skill 可以把这些规范固化下来让 Agent 更贴合实际工作流。增强 Agent 的可控性Agent 不只是自由发挥而是在明确的流程和边界下执行任务。12. 总结我理解 Skill 本质上是给 AI 的一份可复用任务说明书它通常由SKILL.md组成前面是 YAML 元数据比如name和description后面是 Markdown 格式的具体说明包括执行步骤、输入输出示例和边界情况。除了SKILL.mdSkill 目录里也可以包含模板、示例和参考资料。我自己尝试设计过一些 Skill比如前端设计 Skill、生成 Skill 的 Skill以及一个工作总结 Skill。工作总结 Skill 可以根据近期代码修改、思路调整、实验效果和项目进展自动生成阶段性工作总结或工作数据报告。我认为适合做成 Skill 的场景是那些流程能明确写下来、判断过程会反复出现、经验可以长期复用的任务。比如周报总结、实验结果分析、接口文档生成等。而像写小说这类创造性很强、一次性很强的任务就不一定适合做成 Skill。当 Skill 很多时我会采用按需加载和渐进式披露的方式。系统一开始只加载 Skill 的元数据等确定当前任务需要某个 Skill 后再加载完整的SKILL.md这样可以减少上下文占用也能避免无关 Skill 干扰模型。另外Skill 和 MCP 不是一回事。MCP 更像是大模型和外部工具之间的通信协议解决如何安全、统一地调用外部工具Skill 则是封装特定流程和知识的能力包告诉模型怎么完成某类任务。二者可以配合使用MCP 提供工具调用能力Skill 提供任务执行流程。