广告位联系
返回顶部
分享到

Agent Skill是什么?创建和设计高质量Agent Skill的完整教程

Ai 来源:互联网 作者:佚名 发布时间:2026-08-07 22:41:15 人浏览
摘要

一、什么是 Skill?为什么需要 Skill? 1.1 Skill 的本质 Skill 是模块化、自包含的能力扩展单元,它通过专门知识、工作流程和工具集成来增强 AI Agent 的能力。可以把 Skill 理解为 AI Agent 的「岗位

一、什么是 Skill?为什么需要 Skill?

1.1 Skill 的本质

Skill 是模块化、自包含的能力扩展单元,它通过专门知识、工作流程和工具集成来增强 AI Agent 的能力。可以把 Skill 理解为 AI Agent 的「岗位培训手册」——它把一个通用 AI 变成一个具备特定领域 procedural knowledge(程序性知识)的专业 Agent。

大模型本身拥有海量的常识性知识,但在以下场景中往往力不从心:

  • 公司内部知识:内部系统、业务流程、数据 schema、合规规范
  • 重复性工作流:每次都要从零推理,效率低且不一致
  • 工具与格式集成:特定 API、文件格式、模板的使用细节
  • 领域最佳实践:经过验证的操作步骤、判断标准、避坑指南

Skill 的价值,就是把这些「模型不知道、但执行任务必须知道」的知识,以结构化的方式打包,让 Agent 在需要时能精准调用。

1.2 一个「好用的 Skill」长什么样?

判断一个 Skill 好不好用,核心看三点:

维度 好的 Skill 差的 Skill
触发准确性 用户一提相关需求就被正确调用,不误触发、不漏触发 描述模糊,该触发时不触发,不该触发时乱触发
执行有效性 按 Skill 指引能稳定产出高质量结果 看完还是不知道怎么做,产出质量全靠运气
上下文效率 只在需要时加载必要信息,不浪费 token 不管用不用都塞一大堆内容,上下文臃肿

二、Skill 设计的核心原则

2.1 原则一:简洁至上(Concise is Key)

上下文窗口是公共资源。Skill 会和系统提示词、对话历史、其他 Skill 的元信息、用户实际请求一起竞争有限的上下文空间。

设计心法:默认假设 AI Agent 已经非常聪明。 只添加 AI Agent 真正不知道的上下文。每一段信息都要经受拷问:「AI 真的需要这段解释吗?」「这几段话值得它消耗的 token 吗?」

实操建议:

  • 能用一句话说清的,不用一段话
  • 优先用简洁示例代替冗长解释
  • 常识性内容一律删掉
  • 详细内容放到 references 目录,按需加载

2.2 原则二:自由度匹配(Set Appropriate Degrees of Freedom)

Skill 的指令具体程度,应该和任务的「脆弱度」和「可变度」匹配:

自由度等级 形式 适用场景
高自由度 纯文字指令、启发式指引 多种方法都可行、决策依赖上下文、靠经验判断
中自由度 伪代码 / 带参数的脚本 有推荐模式、允许一定变化、配置影响行为
低自由度 具体脚本、少量参数 操作脆弱易出错、一致性至关重要、必须按固定顺序

类比思维:把 AI Agent 想象成在探索一条路——窄桥两边是悬崖,就需要具体的护栏(低自由度);开阔的原野,可以走很多条路(高自由度)。

2.3 原则三:渐进式披露(Progressive Disclosure)

Skill 采用三级加载机制来高效管理上下文:

1

2

3

Level 1: 元信息(name + description)→ 始终在上下文中(约 100 字)

Level 2: SKILL.md 正文              → Skill 触发后才加载(< 5000 字)

Level 3: 捆绑资源(scripts/references/assets)→ Agent 按需加载(理论无上限)

设计目标:SKILL.md 正文保持精简,控制在 500 行以内。接近上限时,把内容拆分到独立文件中。

常见拆分模式:

模式 1:高层指南 + 参考文件

1

2

3

4

5

6

7

8

# PDF 处理

## 快速上手

用 pdfplumber 提取文本:[代码示例]

 

## 高级功能

- **表单填充**:详见 [FORMS.md](references/FORMS.md)

- **API 参考**:详见 [REFERENCE.md](references/REFERENCE.md)

- **示例**:详见 [EXAMPLES.md](references/EXAMPLES.md)

Agent 只在需要时才加载对应的参考文件。

模式 2:按领域/子主题组织

1

2

3

4

5

6

7

bigquery-skill/

├── SKILL.md              # 概览和导航

└── references/

    ├── finance.md        # 收入、计费指标

    ├── sales.md          # 商机、管道

    ├── product.md        # API 使用、功能

    └── marketing.md      # 营销活动、归因

用户问销售指标时,Agent 只读 sales.md。

模式 3:条件式详情

1

2

3

4

5

6

7

8

# DOCX 处理

## 创建文档

用 docx-js 创建新文档。参见 [DOCX-JS.md](references/DOCX-JS.md)。

 

## 编辑文档

简单编辑直接修改 XML。

**修订模式**:参见 [REDLINING.md](references/REDLINING.md)

**OOXML 细节**:参见 [OOXML.md](references/OOXML.md)

重要提醒:参考文件保持一层深度,不要嵌套太深。所有参考文件都应从 SKILL.md 直接链接。超过 100 行的参考文件,顶部加目录。

三、Skill 的结构组成

3.1 标准目录结构

每个 Skill 由一个必需的 SKILL.md 文件和可选的捆绑资源组成:

skill-name/
├── SKILL.md              # 必需:Skill 的入口和核心说明
│   ├── YAML Frontmatter  # 必需:name + description
│   └── Markdown 正文     # 必需:使用指引

├── scripts/              # 可选:可执行代码(Python/Bash 等)
├── references/           # 可选:参考文档,按需加载
└── assets/               # 可选:输出用的资源文件

3.2 SKILL.md:Skill 的灵魂

SKILL.md 是 Skill 唯一必需的文件,分为两部分:

Frontmatter(YAML 元数据)

1

2

3

4

---

name: pdf-processor

description: 全面的 PDF 文档处理能力,支持文本提取、页面旋转、合并拆分、表单填充与水印添加。当需要处理 PDF 文件时使用,包括:(1) 提取 PDF 文本内容,(2) 旋转或调整页面方向,(3) 合并多个 PDF 或拆分 PDF,(4) 填写 PDF 表单,(5) 添加水印或页眉页脚。

---

写好 description 的黄金法则:

  • 同时说明「做什么」和「什么时候用」——description 是 Skill 的主要触发机制
  • 所有「何时使用」的信息都写在这里——正文在触发后才加载,写在正文里没用
  • 列举具体触发场景——用 (1)(2)(3) 列出来,越具体越不容易误触发
  • 覆盖所有使用方式——用户可能用各种说法表达同一个需求,都要覆盖到

正文(Markdown 指令)

正文是 Agent 触发 Skill 后才会读取的内容,应该包含:

  • 核心工作流程和步骤
  • 关键判断点和决策逻辑
  • 各资源文件的使用说明和加载时机
  • 常见问题和注意事项
  • 质量标准和验收要求

写作风格:始终使用祈使句/不定式(「做 X」「使用 Y」),不要用描述性语言(「这个 Skill 可以做 X」)。

3.3 三类捆绑资源

Scripts(脚本)

什么时候放 scripts/:

  • 同样的代码被反复重写
  • 需要确定性的、可重复的结果
  • 操作复杂、容易出错

例子:scripts/rotate_pdf.py 用于 PDF 旋转任务

优势:token 效率高、结果确定、可以不读入上下文直接执行

注意:脚本可能仍需要 Agent 读取来做环境适配或修补

References(参考文档)

什么时候放 references/:

  • Agent 工作时需要查阅的文档
  • 详细的领域知识、规范、schema

例子:

  • references/finance.md — 财务指标定义
  • references/api_docs.md — API 接口文档
  • references/policies.md — 公司政策

最佳实践:

  • 文件大(>10k 字)时,在 SKILL.md 中写明 grep 搜索模式
  • 信息要么在 SKILL.md,要么在 references,不要重复
  • SKILL.md 只保留核心流程指引,详细内容放 references

Assets(资产)

什么时候放 assets/:

  • 最终输出产物中需要用到的文件
  • 模板、图片、字体、样板代码

例子:

  • assets/logo.png — 品牌 Logo
  • assets/slides-template.pptx — PPT 模板
  • assets/frontend-boilerplate/ — 前端项目脚手架

特点:不加载到上下文,而是在输出中被使用/复制/修改

3.4 什么不该放进 Skill

Skill 应该只包含直接支撑其功能的必要文件。不要创建这些多余文件:

  • README.md
  • INSTALLATION_GUIDE.md
  • QUICK_REFERENCE.md
  • CHANGELOG.md
  • 等等

Skill 是给 AI Agent 用的,不是给人看的开源项目。额外的文档只会造成混乱和上下文浪费。

四、从问题到 Skill:创建方法

4.1 第一步:用具体例子理解需求

跳过这一步的前提:你已经非常清楚 Skill 的使用模式。即使是改造现有 Skill,这一步也很有价值。

要创建一个有效的 Skill,必须先清楚地理解它会被如何使用——用具体的、真实的用户场景来定义。

关键问题清单:

  1. 这个 Skill 要支持哪些功能?
  2. 用户会怎么说?能举几个典型的用户提问例子吗?
  3. 什么样的用户输入应该触发这个 Skill?
  4. 期望的输出是什么样的?有格式或质量要求吗?

示例:设计一个图片编辑 Skill

  • ? 模糊理解:「用户要编辑图片」
  • ? 具体理解:
    • 「把这张图里的红眼去掉」→ 触发图片修复功能
    • 「把这个 PDF 转成图片」→ 触发格式转换功能
    • 「帮我把这张图旋转 90 度」→ 触发旋转功能
    • 「给这张图加个水印」→ 触发水印功能

沟通技巧:不要一次问太多问题,先从最重要的开始,逐步深入。

4.2 第二步:规划可复用的内容

把具体例子转化为 Skill 内容,对每个例子做分析:

  1. 如果从零开始执行这个任务,需要怎么做?
  2. 反复执行这些工作流时,哪些脚本/参考/资产会有帮助?

分析示例:PDF 编辑器 Skill

用户需求 从零执行需要什么 可复用资源
帮我旋转这个 PDF 写 Python 代码用 PyPDF2 旋转页面 scripts/rotate_pdf.py
提取这个 PDF 的文字 写代码用 pdfplumber 提取 scripts/extract_text.py
合并这几个 PDF 写代码合并多个 PDF scripts/merge_pdf.py

分析示例:前端应用构建 Skill

用户需求 从零执行需要什么 可复用资源
帮我做个待办应用 写 HTML/CSS/JS 脚手架 + 业务逻辑 assets/boilerplate/ 模板
做个数据看板 同样的脚手架 + 图表组件 assets/boilerplate/ 模板

分析示例:数据查询 Skill

用户需求 从零执行需要什么 可复用资源
今天有多少用户登录? 先查表结构,再写 SQL references/schema.md
上月收入是多少? 先查财务表结构,再写 SQL references/finance-schema.md

通过这个分析,你就能列出 Skill 需要包含的所有可复用资源:scripts、references、assets。

4.3 第三步:初始化 Skill 结构

用初始化脚本快速创建标准目录结构:

1

scripts/init_skill.py <skill-name> --path <user_skills目录>

脚本会自动创建:

  • Skill 目录
  • 带 frontmatter 和 TODO 占位符的 SKILL.md 模板
  • scripts/、references/、assets/ 示例目录和文件

初始化后,根据需要自定义或删除生成的示例文件。

4.4 第四步:实现 Skill 内容

先做资源,再写文档——先实现 scripts/references/assets 中的内容,再更新 SKILL.md。这样写文档时你已经清楚有哪些资源可用、怎么用。

实现脚本的注意事项

  • 每个脚本都要实际运行测试,确保没有 bug、输出符合预期
  • 脚本很多时,至少测试代表性样本
  • 不需要的示例文件和目录都删掉

写 SKILL.md 的注意事项

  • 始终使用祈使句
  • Frontmatter 的 description 要精心打磨
  • 正文按工作流组织,不是按资源类型组织
  • 明确告诉 Agent 什么时候读哪个 reference 文件
  • 包含质量标准和验收要求

4.5 第五步:收尾和交付

开发完成后,确认以下事项:

  1. ? 目录包含必需的 SKILL.md 文件
  2. ? 所有需要的 scripts/、references/、assets/ 文件都在
  3. ? 删除了占位文件、未使用的示例资源、缓存和临时输出
  4. ? 运行了需要测试的脚本(或说明为什么没测)
  5. ? 运行了验证脚本检查 frontmatter 和命名

交付形式:Skill 文件夹本身就是交付物。不要打包成 zip,也不要创建 .skill 文件。保持完整目录结构,这样可以直接作为文件夹加载。

五、确保 Skill 「好用」的设计技巧

5.1 触发准确率优化

触发不准是 Skill 最常见的问题。以下是优化 description 的几个技巧:

技巧 1:覆盖多种表达方式

1

2

3

? description: 处理 PDF 文件

? description: PDF 文档处理,支持文本提取、页面旋转、合并拆分、表单填充、OCR 识别。

   当用户提到 PDF、pdf 文件、pdf 文档、扫描件转文字、pdf 转 word、合并 pdf、拆分 pdf 时使用。

技巧 2:明确边界,减少误触发

1

2

3

? description: 文档处理

? description: 专业 PDF 文档处理(仅限 .pdf 格式)。

   不适用于 Word 文档、Excel 表格、PPT 演示文稿等其他格式。

技巧 3:用具体动词和名词

1

2

3

? description: 图片相关的任务

? description: 图片编辑和处理,包括裁剪、缩放、旋转、格式转换、加水印、去背景、调整颜色、

   压缩优化。当用户要修改、处理、编辑、转换图片时使用。

5.2 执行质量保障

技巧 1:给出明确的质量标准

不要只说「生成一份报告」,要说「报告应包含 X/Y/Z 三个部分,每部分不少于 500 字,数据需标注来源」

技巧 2:提供正反示例

  • 好的输出长什么样,差的输出长什么样,对比展示
  • 对容易出错的地方特别强调

技巧 3:预设常见错误和应对

  • 列出 Agent 可能犯的错误
  • 给出检测和纠正的方法

技巧 4:加入自检步骤

  • 在工作流的关键节点加入检查点
  • 告诉 Agent 完成后要做哪些验证

5.3 上下文效率优化

技巧 1:信息分层

  • 最常用的 20% 内容放 SKILL.md
  • 偶尔用的放 references
  • 几乎不用的放更深层的 reference 或干脆不放

技巧 2:用表格代替大段文字

  • 结构化信息用表格,信息密度更高
  • 决策逻辑用流程图式的判断树

技巧 3:代码和配置用代码块

可执行的内容用代码块,Agent 更容易识别和使用

六、常见陷阱与避坑指南

陷阱 1:把 Skill 写成了教程

问题:花大量篇幅解释概念、讲背景知识,Agent 根本不需要。

解法:直接给操作指令,假设 Agent 已经理解基础概念。需要背景知识的放 references,按需加载。

陷阱 2:description 太短或太泛

问题:description 只有一句话,导致触发不准。

解法:description 是 Skill 最重要的部分,值得花时间打磨。要包含功能描述 + 具体触发场景 + 边界说明。

陷阱 3:所有内容都塞在 SKILL.md

问题:SKILL.md 写了几千行,触发一次就占满大半上下文。

解法:遵循渐进式披露原则,按使用频率和场景拆分到 references。

陷阱 4:没有实际测试脚本

问题:脚本写了但没跑过,实际用的时候全是 bug。

解法:每个脚本都要实际运行测试,至少用一个真实用例验证。

陷阱 5:过度设计

问题:还没验证需求就做了一大堆功能,结果大部分用不上。

解法:先做最小可用版本,在真实使用中迭代。从最常见的 2-3 个用例开始。

七、总结:好 Skill 的设计清单

创建 Skill 前,用这份清单检查你的设计:

需求理解

  • 有至少 3 个具体的用户使用场景
  • 清楚用户会用什么说法触发这个 Skill
  • 明确了 Skill 的边界(做什么、不做什么)

结构设计

  • SKILL.md 控制在 500 行以内
  • 详细内容拆分到了 references
  • 重复代码封装成了 scripts
  • 输出模板放在了 assets

内容质量

  • description 写得具体、全面、边界清晰
  • 正文用祈使句,直接给指令
  • 有明确的质量标准和验收要求
  • 包含了常见问题和注意事项

可交付性

  • 所有脚本都经过实际运行测试
  • 删除了所有占位文件和示例资源
  • 目录结构清晰,命名规范
  • 通过了基础验证检查

Skill 设计是一个持续迭代的过程。第一版不需要完美,先让它跑起来,在真实使用中发现问题、持续优化,才是打造高质量 Skill 的正确路径。


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 :
相关文章
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计