吴恩达 Agent Skills 学习笔记
本文是吴恩达 Agent Skills 课程的学习笔记,记录了 Skill 的概念、构成、创建方式以及与工具/MCP/子代理之间的关系。
目录
基础理论
Skill 的概念
Skill 是一种可复用的指令集合,用于告诉 AI Agent 如何完成某一类特定任务。它本质上是一段结构化的 Markdown 文档,包含了任务的触发条件、执行步骤、约束规则和输出格式。
与直接写 prompt 不同,Skill 是持久化、可共享、可组合的。你可以把它理解为 Agent 的”技能卡”——Agent 在接到任务时,根据匹配条件自动加载对应的 Skill,按照其中的指令执行。
核心特征:
- 声明式:描述”做什么”和”怎么做”,而不是编程逻辑
- 可复用:一次编写,多次调用,跨会话生效
- 可组合:多个 Skill 可以协同工作,覆盖复杂场景
- 自然语言驱动:用 Markdown 编写,无需编程知识
构成
一个完整的 Skill 通常由以下部分组成:
| 组成部分 | 作用 | 示例 |
|---|---|---|
| 名称(Name) | 唯一标识符,用于引用和触发 | format-markdown |
| 描述(Description) | 说明 Skill 的用途和触发时机 | “格式化 Markdown 文件” |
| 触发条件(Trigger) | 定义何时激活该 Skill | 用户说”格式化”、文件以 .md 结尾 |
| 指令(Instructions) | 具体的执行步骤和规则 | 添加 frontmatter、规范标题层级 |
| 约束(Constraints) | 限制和边界条件 | 不修改代码块内容、保留原有链接 |
| 输出格式(Output) | 期望的输出形式 | 输出到 {filename}-formatted.md |
1 | --- |
为什么要用 Skills
1. 一致性
同一类任务每次都按相同标准执行。不会因为 prompt 写法不同导致输出质量波动。
2. 效率
不需要每次都写详细的 prompt。触发 Skill 后,Agent 自动按照预设流程执行,减少重复劳动。
3. 可维护性
当流程需要调整时,只需修改 Skill 文件,所有后续调用自动生效。比散落在各处的 prompt 更容易管理。
4. 团队协作
Skill 可以在团队内共享。新成员不需要学习复杂的 prompt 技巧,直接使用已有的 Skill 即可获得一致的输出质量。
5. 专业化分工
将复杂任务拆解为多个专注的 Skill,每个 Skill 只负责一件事,降低单个指令的复杂度,提高准确率。
Skill 和工具/MCP/子代理间的联系
工具(Tool)
工具是 Agent 可以调用的具体能力,比如读文件、写文件、执行命令、搜索代码等。
特点:
- 原子操作,做一件具体的事
- 有明确的输入输出格式(JSON Schema)
- 由外部系统实际执行,LLM 只负责决定调用
- 例如:
Read、Write、Bash、Grep、WebSearch
MCP
MCP(Model Context Protocol)是连接 LLM 与外部工具/数据源的标准化协议。
特点:
- 定义了工具发现、调用、结果返回的统一接口
- 支持动态发现——Agent 可以在运行时连接新的工具服务器
- 类似 USB 接口,任何实现了 MCP Server 的服务都能被 Agent 调用
- 解决了每个工具都需要单独适配的问题
子代理(Sub-Agent)
子代理是一个独立的 Agent 实例,由主 Agent 派生出来执行特定子任务。
特点:
- 拥有自己的上下文窗口,不污染主 Agent 的上下文
- 可以并行执行,提高效率
- 适合独立性强的子任务(搜索、分析、代码审查等)
- 执行完毕后将结果返回给主 Agent
联系与区别

| 维度 | Skill | 工具(Tool) | MCP | 子代理 |
|---|---|---|---|---|
| 本质 | 指令集/流程 | 原子能力 | 连接协议 | 独立执行者 |
| 层级 | 编排层 | 执行层 | 通信层 | 执行层 |
| 类比 | 菜谱 | 厨具 | 厨具接口标准 | 帮厨 |
| 复用方式 | 跨会话持久化 | 内置或注册 | 动态发现 | 按需创建 |
| 编写方式 | Markdown | 代码/配置 | 协议实现 | Agent 配置 |
它们之间的协作关系:
1 | Skill(定义流程) |
Skill 是”指挥官”,决定做什么、怎么做;工具是”武器”,提供具体能力;MCP 是”通信协议”,让武器能即插即用;子代理是”分队”,独立执行分配的任务。
如何创建一个 Skill
Skill Creator
Skill Creator 是一个专门用于生成 Skill 的工具/流程。它通过对话引导你定义 Skill 的各个组成部分:
- 描述需求:告诉 Skill Creator 你想让 Agent 完成什么任务
- 明确触发条件:什么情况下应该激活这个 Skill
- 定义步骤:具体的执行流程是什么
- 设置约束:有哪些边界条件和限制
- 生成文件:Skill Creator 输出一个标准格式的
.md文件
使用 Skill Creator 的好处是不需要记住 Skill 的格式规范,通过交互式问答就能生成高质量的 Skill 定义。
Markdown 文件结构
Skill 以 Markdown 文件的形式存储,通常放在项目的 .claude/skills/ 或全局的 ~/.claude/skills/ 目录下。
标准结构:
1 | --- |
限制与规范
文件规范:
- 使用 Markdown 格式(
.md文件) - Frontmatter 必须包含
name和description name使用 kebab-case 命名description要足够具体,便于触发匹配
内容规范:
- 指令要明确、可执行,避免模糊表述
- 步骤之间有清晰的顺序和依赖关系
- 约束条件要具体,不能是”尽量”、”大概”这类模糊词
- 避免过于复杂的单个 Skill,复杂任务应拆分为多个 Skill 组合
触发规范:
- 触发条件不能过于宽泛(会误触发)
- 也不能过于狭窄(难以被激活)
- 多个 Skill 的触发条件不应重叠
最佳实践:
- 一个 Skill 只做一件事(单一职责)
- 先写触发条件和约束,再写执行步骤
- 用具体的例子说明期望的输入输出
- 定期根据实际使用效果迭代优化