news 2026/6/27 5:26:14

深入 Agent Skills:SKILL.md 规范、目录职责与渐进式加载机制详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
深入 Agent Skills:SKILL.md 规范、目录职责与渐进式加载机制详解

一、什么是 Agent Skills

Agent Skills(以下简称 Skills)是一种轻量级的开放格式,用于通过专业知识和工作流扩展 AI 智能体的能力。简单来说,Skill 就是一个包含SKILL.md文件的文件夹,它封装了领域知识、最佳实践、工作流程和执行逻辑,使 AI 能够高质量、稳定地完成特定任务。

Skills 诞生的背景是传统 Prompt 方式的三大痛点:

  1. 不稳定:模型对同一个 Prompt 的理解可能不同,输出结果不一致
  2. 不可复用:每次都要重新编写 Prompt,效率低
  3. 不可组合:难以将多个任务整合成复杂工作流

Skills 将“如何做一件事”封装成 AI 可长期记住和调用的能力模块,让执行更标准、稳定、可组合。

核心特征

  • 按需加载:智能体仅在任务匹配时加载对应 Skill,避免无关指令占用上下文窗口
  • 可复用:同一 Skill 可在不同会话、不同任务中反复使用
  • 可版本化:以文件形式存储在代码仓库中,支持 Git 版本管理
  • 可组合:多个 Skill 可协同工作,动态调度和组合

二、设计哲学:渐进式披露(Progressive Disclosure)

Skills 最核心的设计理念是渐进式披露。智能体不会一次性加载所有 Skill 的完整内容,而是分阶段按需加载,以最小化上下文占用。

整个加载过程分为四个层次:

阶段加载内容Token 消耗触发时机
宣告(Discovery)仅 name + description~100 tokens每次运行开始时
加载(Load)完整 SKILL.md 正文< 5,000 tokens任务匹配时
读取资源(Read)references/ 等文档按需需要补充信息时
运行脚本(Run)scripts/ 中的代码按需需要执行确定性操作时

这种设计让 AI 的上下文窗口始终保持精简,同时允许按需访问深层域知识。

三、Skill 的目录结构

3.1 最小结构

一个 Skill 最精简的结构只需要一个SKILL.md文件:

my-skill/ └── SKILL.md # 必需:元数据 + 执行指令

3.2 完整结构

一个生产级 Skill 的完整目录结构通常如下:

my-skill/ ├── SKILL.md # 必需:入口文件,含元数据与执行指令 ├── scripts/ # 可选:可执行代码(Python/Bash/JS等) │ ├── main.py │ └── requirements.txt # Python 依赖声明 ├── references/ # 可选:深度参考资料、文档 │ ├── api-reference.md │ └── policy-faq.md ├── templates/ # 可选:模板文件 │ └── report-template.md ├── assets/ # 可选:静态资源(图标、字体、图片等) │ └── logo.png └── workflows/ # 可选:工作流定义(非官方标准,社区实践) └── approval-flow.yaml

3.3 各目录职责速查表

目录职责典型内容加载方式
SKILL.md入口 + 核心流程触发条件、分步指令、边界规则Skill 激活时加载
scripts/确定性操作解析、转换、校验、排序等脚本按需执行
references/参考资料API 文档、政策条款、决策表按需读取到上下文
templates/输出模板报告模板、邮件模板、表单按需加载
assets/静态资源图片、字体、品牌素材用于输出,不加载到上下文
workflows/工作流定义多步骤流程的 YAML/JSON 定义按需加载

四、SKILL.md 文件详解

SKILL.md是每个 Skill 的唯一必选文件,由YAML 前置元数据Markdown 正文两部分组成。

4.1 YAML 前置元数据(Frontmatter)

---name:expense-reportdescription:File and validate employee expense reports according to company policy. Use when asked about expense submissions,reimbursement rules,or spending limits.license:Apache-2.0compatibility:Requires python3,pandasmetadata:author:finance-teamversion:"2.1"allowed-tools:read_file write_file---
字段说明
字段必需说明
name✅ 是最多 64 字符。仅小写字母、数字和连字符。不得以连字符开头或结尾,不得包含连续连字符。必须与父目录名称匹配
description✅ 是最多 1024 字符。描述技能的作用和使用场景。应包含帮助智能体识别相关任务的关键词
license❌ 否许可证名称或对捆绑许可证文件的引用
compatibility❌ 否最多 500 字符。环境要求(预期产品、系统包、网络访问等)
metadata❌ 否其他元数据的任意键值映射(作者、版本等)
allowed-tools❌ 否技能可以使用的预先批准的工具列表(实验性)
name 命名规则
  • 1-64 个字符
  • 只能用 Unicode 小写字母、数字和连字符(a-z0-9-
  • 不能以-开头或结尾
  • 不能有连续连字符(--

✅ 有效示例:pdf-processingdata-analysiscode-review

❌ 无效示例:PDF-Processing(有大写)、-pdf(以连字符开头)、pdf--processing(连续连字符)

description 编写要点
  • 1-1024 个字符,不能为空
  • 具体说明技能的功能和使用场景
  • 包含帮助匹配的关键词
  • 避免空泛形容词和宣传语

4.2 Markdown 正文

frontmatter 后面的 Markdown 正文包含技能的核心执行指令——分步指导、输入输出示例、常见边缘情况等。

编写原则

  • 使用指令性语言(动词开头),而非第二人称
  • 保持SKILL.md500 行以下
  • 将详细的参考资料移动到references/等单独文件中
  • 避免重复:信息只存在于一个地方

示例

# Expense Report Processing ## When to use this skill Use when users ask to file expense reports, check reimbursement status, or inquire about spending limits. ## Core workflow 1. Collect employee info (name, ID, department) 2. Validate expense amount against policy (see `references/policy.md`) 3. Run `scripts/validate.py` to check format compliance 4. Generate report using `templates/report-template.md` 5. Submit for approval ## Edge cases - Amount > $1000 requires manager approval - International receipts require currency conversion

五、可选资源目录详解

5.1 scripts/ —— 可执行脚本

用途:存放需要确定性可靠性的可执行代码。

何时使用:当某个操作需要稳定、机械、可重复执行时(如数据解析、格式转换、校验、排序、去重等),应交给脚本而非让 AI 临场发挥。

典型内容

  • Python 脚本(.py
  • Bash 脚本(.sh
  • JavaScript/TypeScript 脚本(.js/.ts

依赖管理

  • Python:在scripts/下放置requirements.txt
  • Node.js:在scripts/下放置package.json

示例

scripts/ ├── validate.py ├── export_csv.py └── requirements.txt # pandas>=1.3.0, openpyxl

关键原则:scripts/ 里的代码负责不需要语义判断、价值判断、风格判断的稳定动作。

5.2 references/ —— 参考资料

用途:存放旨在根据需要加载到上下文中以辅助 AI 思考和决策的文档。

何时使用:当信息是参考性质的,AI 不一定每次都需要时。将长篇文档放入references/可以保持SKILL.md精简。

典型内容

  • API 文档
  • 数据库 Schema
  • 公司政策条款
  • 决策表
  • 术语表
  • 字段说明
  • 最佳实践指南

示例

references/ ├── policy.md # 公司报销政策 ├── api-reference.md # API 接口文档 ├── status-codes.md # 状态码含义对照表 └── glossary.md # 术语表

优势:AI 只在确定需要时才加载这些文档,避免无关内容占用上下文。

5.3 templates/ —— 模板文件

用途:存放用于生成输出的模板文件。

典型内容

  • 报告模板(Markdown/HTML)
  • 邮件模板
  • 表单模板
  • 代码样板

示例

templates/ ├── weekly-report.md ├── email-notification.txt └── invoice-template.html

使用方式SKILL.md中引用模板,指导 AI 在生成输出时参照模板格式。

5.4 assets/ —— 静态资源

用途:存放不打算加载到上下文中、而是用于 AI 生成输出中的文件。

与 templates/ 的区别

  • templates/文本模板,AI 会读取并填充内容
  • assets/静态资源,直接用于输出或引用(如图片、字体)

典型内容

  • 品牌 Logo
  • 图标、图片
  • 字体文件
  • CSS 样式文件
  • PDF 样板

示例

assets/ ├── company-logo.png ├── brand-font.ttf └── letterhead.pdf

5.5 workflows/ —— 工作流定义

说明workflows/并非 Agent Skills 官方规范的强制或推荐目录。它是社区实践中出现的一种组织方式,用于存放多步骤工作流的定义文件。

用途:当 Skill 包含复杂的多步骤流程时,可以用 YAML/JSON 等格式将工作流定义独立存放,便于维护和版本管理。

典型内容

  • 工作流 YAML/JSON 定义
  • 步骤间的依赖关系
  • 审批流程配置

示例

workflows/ ├── approval-flow.yaml └──>六、工作原理:完整执行流程

以一个实际场景为例,展示 Skill 的完整工作流程:

场景:ECS 实例查询 Skill

目录结构

ecs-query/ ├── SKILL.md ├── references/ │ └── instance-status-codes.md ├── scripts/ │ ├── query-instances.py │ └── export-csv.py └── assets/ └── output-template.md

执行流程

  1. 发现阶段:智能体启动时,仅加载ecs-querynamedescription,知道有这个技能可用

  2. 激活阶段:用户说“帮我查一下所有运行中的 ECS 实例”,description 匹配,智能体加载完整的SKILL.md

  3. 执行阶段:智能体按照SKILL.md中的指令操作:

    • 确认查询范围(地域、筛选条件)
    • 执行scripts/query-instances.py获取实例列表
    • 参考references/instance-status-codes.md解读状态码
    • 参照assets/output-template.md格式化输出
    • 如需导出,执行scripts/export-csv.py

七、最佳实践

7.1 结构与内容

实践说明
具体明确的 description清楚说明 Skill 何时应该被使用,包含触发关键词
指令性语言使用动词开头的指令(“提取”、“验证”、“生成”),而非第二人称
按需加载将长篇文档放入references/,避免SKILL.md臃肿
保持 SKILL.md 精简控制在 500 行以内
避免重复信息应存在于SKILL.md或引用文件中,不要两处都有
确定性操作脚本化解析、转换、校验等稳定动作交给scripts/

7.2 Skill 与长 Prompt 的区别

对比项长 PromptSkill
核心形态一大段指令有入口、有资料、有脚本的目录
主要依赖模型每次重新理解模型按设计好的路径执行
内容组织背景、规则、模板混在一起流程、材料、脚本分开放
稳定动作交给模型临场发挥交给脚本或明确工具
适合场景一次性任务重复流程、固定格式

7.3 创建 Skill 的流程

  1. 理解需求:明确 Skill 的使用场景和触发条件
  2. 拆解工作流:分析哪些是流程、哪些是材料、哪些是脚本
  3. 规划资源:分析是否需要脚本、参考文档、模板或静态资源
  4. 创建目录:在.codebuddy/skills/或对应平台目录下创建
  5. 编写 SKILL.md:填写 YAML 元数据 + Markdown 指令
  6. 引用打包资源:在指令中正确引用 scripts/、references/ 等

八、总结

Agent Skills 通过标准化目录结构渐进式披露加载职责分离的设计,将 AI 的能力从“每次重新理解 Prompt”升级为“按设计好的路径专业执行”。

其核心要点可概括为:

  • 一个入口SKILL.md是唯一必选文件,包含元数据和执行指令
  • 四类资源scripts/(确定性操作)、references/(参考资料)、templates/(输出模板)、assets/(静态资源)
  • 一种哲学:渐进式披露,按需加载,最小化上下文占用
  • 一次开发:多端部署,个人、团队、企业均可受益

掌握 Skills 的本质,不是把“上次成功的对话”写成更长的 Prompt,而是将重复流程拆解为结构清晰、职责分明、可维护可版本化的能力模块。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/27 5:25:22

Python闭包的三大核心用法解析

Python 闭包是指一个嵌套函数&#xff0c;它能够记住并访问其外部函数作用域中的变量&#xff0c;即使外部函数已经执行完毕 。其核心价值在于封装数据与行为&#xff0c;实现状态的持久化。 一、闭包的核心构成与创建 一个典型的闭包需要满足三个条件&#xff1a; 存在嵌套…

作者头像 李华
网站建设 2026/6/27 5:24:35

计算机Java毕设实战-基于 SpringBoot 的影视资源管理网站的设计与实现 基于 SpringBoot 的电影信息发布与查询系统【完整源码+LW+部署说明+演示视频,全bao一条龙等】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/6/27 5:15:39

旅行Agent接入携程、RollingGo等国内MCP能力对比报告

之前针对下面知乎这个问题&#xff0c;写了篇简要回答&#xff0c;很多人后台问我能不能具体再详细说说&#xff0c;确实上一篇的介绍过于简略&#xff0c;今天花时间又分析了一遍。 本文核心发现&#xff1a;通过对携程问道和RollingGo国内酒旅MCP/Skill产品的6维度对比分析&a…

作者头像 李华
网站建设 2026/6/27 5:14:20

OpenCode 安装全攻略:4 种方式覆盖 Windows、macOS、Linux

目录一、AI 编程助手井喷&#xff0c;但安装是第一道坎 二、OpenCode 到底是什么&#xff0c;为什么 2026 年大家都在聊 三、四种安装方式技术拆解 四、典型案例与选型对比 五、工程落地启示 六、最后留个问题一、AI 编程助手井喷&#xff0c;但安装是第一道坎2026 年上半年的 …

作者头像 李华
网站建设 2026/6/27 5:14:15

SketchUp软件安装步骤(附安装包)SketchUp2026 下载安装教程(图文步骤)

文章目录SketchUp2026 安装前准备SketchUp2026 安装教程如何用SketchUp2026进行室内设计&#xff1f;详细操作步骤分享整理了一份SketchUp2026安装教程&#xff0c;下载到配置每一步都拆开了讲&#xff0c;第一次接触3D建模的话照着走基本不会卡住。 SketchUp2026 安装前准备 …

作者头像 李华