Agent Skill 学习笔记

1.自己有做过什么 Skill 吗?

skill可以是用写好了的,比如antropic官方就提供了很多skill:

  1. front-design 前端设计 Skill
    主要用于辅助前端页面设计,比如根据页面需求生成布局方案、组件结构、交互说明和样式建议。

  2. skill-creator 写 Skill 的 Skill
    这是一个“用来生成 Skill 的 Skill”。它可以根据某个任务的执行流程、输入输出要求、边界情况,自动整理出一个结构化的 SKILL.md

  3. 工作总结 Skill
    可以设计过一个能够根据一段时间内的代码修改、思路调整、实验效果和项目进展,自动生成工作总结文档的 Skill。
    比如它可以读取近期的开发记录、commit 信息、实验结果,然后整理成阶段性工作数据报告,方便周报、组会汇报或者项目复盘。


2. Skill 是什么?

简单来说:

Skill 就是给 AI 的一份“工具说明书”或者“任务执行手册”。

它告诉 AI:

  • 这个任务应该怎么做;
  • 按什么步骤做;
  • 输入是什么;
  • 输出是什么;
  • 遇到特殊情况应该怎么处理;
  • 哪些规则必须遵守。

如果普通 Prompt 是临时告诉 AI 怎么做,那么 Skill 更像是把一套可复用的方法沉淀下来,让 AI 以后遇到类似任务时可以稳定执行。


3. Skill 的典型结构

一个 Skill 通常会包含一个核心文件,比如:

SKILL.md

SKILL.md 里一般包括两部分:


3.1 YAML 元数据

文件开头通常会有 YAML 格式的元数据,例如:

---
name: work-summary-skill
description: 根据近期代码修改、实验记录和项目进展生成阶段性工作总结
---

常见字段包括:

  • name:Skill 的名称;
  • description:Skill 的功能介绍;
  • 可能还会有适用场景、输入要求、依赖工具等信息。

这部分主要用于让 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-skill
description: 根据近期代码修改和实验进展生成工作总结

等 Agent 判断当前任务确实需要这个 Skill 后,再加载完整的 SKILL.md 内容。

这样做的好处是:

  • 减少上下文占用;
  • 避免无关 Skill 干扰模型;
  • 提高 Skill 选择效率;
  • 让系统可以支持更多 Skill。

可以理解成:

先看目录,再决定翻哪本书。


8. CLI、Skill 和 MCP 的关系

CLI、Skill、MCP 都可以看作是 AI 扩展能力的方式,但它们解决的问题不一样。


8.1 CLI:命令行工具调用

CLI 是命令行模式,本质是 AI 调用本地命令行程序或脚本。

比如:

python summarize.py
npm run build
git diff
mvn test

CLI 的特点是:

  • 轻量;
  • 本地可用;
  • 适合调用已有脚本或命令行工具;
  • 通常通过标准输入输出,也就是 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 更偏“工具连接层”。

比如通过 MCP,Agent 可以调用:

  • 数据库;
  • 文件系统;
  • 搜索工具;
  • Git 工具;
  • API 服务;
  • 企业内部系统。

9. MCP 和 Skill 的区别

MCP 和 Skill 很容易混淆,但它们关注点不一样。

9.1 MCP 解决“怎么连接工具”

MCP 关注的是:

  • 工具在哪里;
  • 怎么调用;
  • 参数是什么;
  • 返回什么;
  • 通信协议是什么。

也就是说,MCP 解决的是:

大模型如何安全、统一地连接外部工具。


9.2 Skill 解决“怎么完成任务”

Skill 关注的是:

  • 任务流程是什么;
  • 先做什么,后做什么;
  • 怎么判断结果是否正确;
  • 出错了怎么处理;
  • 输出格式是什么。

也就是说,Skill 解决的是:

大模型应该按照什么方法完成某类任务。


9.3 二者可以配合使用

MCP 和 Skill 不是互相替代的关系,而是可以配合。

例如:

用户说:

帮我根据最近一周代码修改生成工作总结。

Agent 可以:

  1. 先根据 Skill 判断应该如何写工作总结;
  2. 再通过 MCP 调用 Git 工具获取 commit 记录;
  3. 再调用文件系统读取相关文档;
  4. 最后按照 Skill 中定义的模板生成总结。

也就是说:

MCP 让 Agent 能调用工具,Skill 让 Agent 知道怎么用这些工具完成任务。


10. CLI、Skill、MCP 对比

类型 主要作用 特点 适用场景
CLI 调用本地命令或脚本 轻量、本地、简单、通过 stdio 通信 调用已有脚本、运行测试、执行命令
Skill 封装任务流程和知识 可复用、偏流程、平台相关 工作总结、前端设计、文档生成、格式检查
MCP 连接外部工具的协议 标准化、安全、统一连接工具 数据库、文件系统、搜索、API、企业系统

11. 我对 Skill 的理解

我理解的 Skill 不是简单的一段 Prompt,而是一个可复用的任务能力包。

它的核心价值是:

  1. 沉淀经验
    把某类任务的正确做法写下来,减少每次重新提示的成本。

  2. 稳定输出
    让 Agent 按照固定流程、固定格式完成任务,减少随机性。

  3. 降低上下文成本
    通过元数据检索和按需加载,不需要每次把所有规则都塞进上下文。

  4. 适配个人或团队需求
    不同团队有不同规范,Skill 可以把这些规范固化下来,让 Agent 更贴合实际工作流。

  5. 增强 Agent 的可控性
    Agent 不只是自由发挥,而是在明确的流程和边界下执行任务。


12. 总结

我理解 Skill 本质上是给 AI 的一份可复用任务说明书,它通常由 SKILL.md 组成,前面是 YAML 元数据,比如 namedescription,后面是 Markdown 格式的具体说明,包括执行步骤、输入输出示例和边界情况。除了 SKILL.md,Skill 目录里也可以包含模板、示例和参考资料。

我自己尝试设计过一些 Skill,比如前端设计 Skill、生成 Skill 的 Skill,以及一个工作总结 Skill。工作总结 Skill 可以根据近期代码修改、思路调整、实验效果和项目进展,自动生成阶段性工作总结或工作数据报告。

我认为适合做成 Skill 的场景,是那些流程能明确写下来、判断过程会反复出现、经验可以长期复用的任务。比如周报总结、实验结果分析、接口文档生成等。而像写小说这类创造性很强、一次性很强的任务,就不一定适合做成 Skill。

当 Skill 很多时,我会采用按需加载和渐进式披露的方式。系统一开始只加载 Skill 的元数据,等确定当前任务需要某个 Skill 后,再加载完整的 SKILL.md,这样可以减少上下文占用,也能避免无关 Skill 干扰模型。

另外,Skill 和 MCP 不是一回事。MCP 更像是大模型和外部工具之间的通信协议,解决如何安全、统一地调用外部工具;Skill 则是封装特定流程和知识的能力包,告诉模型怎么完成某类任务。二者可以配合使用:MCP 提供工具调用能力,Skill 提供任务执行流程。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐