Agent Skills · 深度解析

Agent Skills 深度解析
AI Agent 时代的「Dockerfile」

从 SKILL.md 到渐进式披露,手把手教你开发一个 Skill

过去两年,大家给大模型「注入能力」的手段主要有两种:系统提示词(System Prompt)把规则一股脑塞进去,能力一多就臃肿、Token 暴涨,而且信息越多越难检索;工具调用 / MCP 让 Agent 能「动手」,但工具是零散的,Agent 并不知道「何时该用、按什么顺序用、做到什么程度算完成」。

Agent Skills 要填补的,正是这两者之间的空白——「专业流程」的沉淀与复用。

什么是 Agent Skills

一、Agent Skills 是什么?

Agent Skills 是 Anthropic 在 2025 年 10 月随 Claude 发布的能力封装机制,同年 12 月被升格为开放标准(agentskills.io)并开源。截至目前已被 33+ 个 Agent 产品采纳,包括 Claude Code、OpenAI Codex、GitHub Copilot、Cursor、VS Code、Gemini CLI 等。

它的核心形态非常简单:一个包含 SKILL.md 的文件夹。

组成作用
指令说明(Prompt)定义做什么、怎么做、何时停
配套脚本(Scripts)确定性、可重复执行的代码
参考资源(References)领域知识、规范、schema

💡 一句话概括:Skill 不是 Prompt,而是围绕任务、工具、流程和输出边界的「结构化行为设计」。它不直接让模型更聪明,而是让专业经验可以被结构化地沉淀、复用和测试。

二、核心机制:渐进式披露(Progressive Disclosure)

这是 Agent Skills 最精妙的设计。Anthropic 工程团队的原话是:*"Progressive disclosure is the core design principle that makes Agent Skills flexible and scalable."*

它借鉴 UI/UX 领域「按需展开信息」的思想,把 Skill 分成三层加载:

层级加载内容加载时机Token 成本
L1 目录层所有 Skill 的 name + description会话启动时每个约 50–100 tokens
L2 指令层完整 SKILL.md 正文Skill 被激活时建议 < 5000 tokens
L3 资源层scripts/、references/、assets/指令引用时按需视文件大小

关键价值在于:即使安装 20 个 Skill,启动时的初始上下文也只有 1000–2000 tokens,相比单体提示词减少约 90%。

⚠️ 最常见的误区:很多人以为 Agent 选 Skill 时会细读全文。实际上 L1 层的入口信号只有 description,它像一个目录/索引,帮助模型快速判断「要不要深入读」。因此——description 的目标是「提高被选中的概率」,而不是塞入执行细节。

三、解剖一个 Skill:目录结构与 SKILL.md 规范

一个 Skill 的最小形态,只需要一个文件:

目录结构
skill-name/
├── SKILL.md      # 必需:YAML 元数据 + Markdown 指令
├── scripts/      # 可选:可执行脚本(Python/Bash/JS)
├── references/   # 可选:按需加载的参考文档
└── assets/       # 可选:模板、图标、字体等静态资源

工程规范要点:主文件必须命名为 SKILL.md(区分大小写);文件夹名必须用 kebab-case(如 my-skill-name)。这套约定已被 Claude Code(.claude/skills/)、CodeBuddy(.codebuddy/skills/)等环境统一采纳。

3.1 Frontmatter 字段详解

SKILL.md 由 YAML Frontmatter(元数据) + Markdown 正文(指令) 组成。最小示例只需 name 和 description:

yaml
---
name: pdf-processing
description: Extract PDF text, fill forms, merge files. Use when handling PDFs.
---
字段是否必填约束说明
name✅ 必需唯一标识,见下方命名规则
description✅ 必需1–1024 字符,说明功能 + 触发时机
license❌ 可选许可证名称或文件引用
compatibility❌ 可选最多 500 字符,环境/依赖要求
metadata❌ 可选任意键值对,自定义扩展
allowed-tools❌ 可选预授权工具列表(实验性)

3.2 name 字段的严格命名规则

示例
✅ name: pdf-processing
✅ name: code-review
❌ name: PDF-Processing   # 不允许大写
❌ name: -pdf             # 不能以连字符开头
❌ name: pdf--processing  # 不允许连续连字符

3.3 description:整个 Skill 的「命门」

官方只给了硬约束,但真正的门道在于:它是模型做「是否激活」决策的唯一依据。一个高质量的 description 要同时回答三件事——做什么、什么情境下用、有无硬限制。

优秀示例
Extracts text and tables from PDF files, fills PDF forms, and merges multiple PDFs.
Use when working with PDF documents or when the user mentions PDFs, forms, or document extraction.

⚠️ 关键发现:description 只应描述「触发条件」,绝不要总结 Skill 的工作流程。测试发现,当 description 总结了工作流时,Agent 可能直接按 description 执行,而跳过阅读完整的 Skill 正文。

四、五种设计模式(来自 Google ADK 团队)

规范只告诉我们「Skill 长什么样」,没告诉我们「内部逻辑该怎么设计」。Google ADK 团队研究了生态中大量实现,总结出 5 种反复出现的设计模式:

模式核心逻辑适用场景
Tool WrapperSKILL.md 不存完整知识,只告诉 Agent 去哪加载(references/)框架/库编码规范、团队风格指南
Generator模板 + 风格指南强制输出一致性,缺信息主动问标准化文档生成、脚手架
Reviewer「查什么」和「怎么查」分离,清单独立维护自动 PR 审查、安全扫描
InversionAgent 先「采访」用户收集需求,再动手需求不明时的需求澄清
Pipeline严格顺序步骤 + 检查点,不跳步从代码生成文档等复杂流程

💡 模式选择指南:不确定时,从 Tool Wrapper 开始——它最通用,也最符合「渐进式披露」的本意。

实战开发

五、实战:从零开发一个 Git 工作流 Skill

下面以 Git 工作流 Skill 为例完整走一遍开发流程,这套流程同样适用于 Claude Code、Codex、CodeBuddy 等环境。

  1. 明确场景与边界 先问清四个问题:触发条件(用户说什么话该激活?)、工作流步骤、依赖项(需要哪些知识/脚本/工具?)、验收标准(怎样算成功?)。
  2. 初始化目录结构 创建 git-workflow/ 目录,内含 SKILL.md、references/commit-spec.md、scripts/check_branch.sh。
  3. 编写 SKILL.md YAML Frontmatter 写清 name 与 description,正文写分支规范、提交规范、核心工作流与验收标准。
  4. 编写参考文档与脚本 详细规范放进 references/,确定性任务写成脚本——Token 更省、更可靠。
  5. 测试与迭代(最关键) 用 10–30 条用户意图测「选中准确率」与「执行正确率」,对照误选案例调整 description。
  6. 打包发布 用 skills-ref validate 校验后打包成 zip,分享给他人安装使用。

SKILL.md 完整示例

SKILL.md
---
name: git-workflow
description: 当需要进行 Git 操作(创建分支、提交代码、同步仓库、解决冲突、准备 PR)时使用。涉及关键词:"git"、"commit"、"branch"、"push"、"pull request"、"rebase"、"merge"。
---

## 1. 分支命名规范
- feat/  新功能
- fix/   修复 Bug
- docs/  文档变更
- refactor/  代码重构
- chore/ 构建或辅助工具变动

## 2. 提交规范
必须遵循 Conventional Commits 格式。提交前参考 references/commit-spec.md。
基本格式:<type>(<scope>): <description>

## 3. 核心工作流
1. 同步基准:开发前从 main 拉取并 rebase
2. 变更原子化:每个 Commit 保持单一目的
3. 前置校验:提交前运行 lint 或 test
4. 清理历史:推送前用 rebase -i 合并 WIP 提交

## 4. 冲突处理
1. 停止操作并列出冲突文件
2. 分析冲突原因
3. 向用户建议保留方案,确认后再继续

## 5. 成功验收标准
- [ ] 分支名符合前缀规范
- [ ] 所有提交信息通过 commitlint 校验
- [ ] 本地 Lint 和单元测试全部通过

脚本示例:check_branch.sh

bash
#!/usr/bin/env bash
# 校验当前分支名是否符合前缀规范
branch=$(git rev-parse --abbrev-ref HEAD)
if [[ ! "$branch" =~ ^(feat|fix|docs|refactor|chore)/ ]]; then
  echo "错误:分支名 '$branch' 不符合规范前缀"
  exit 1
fi
echo "分支名校验通过:$branch"

六、最佳实践与常见反模式

四个最佳实践:

反模式表现危害
百科全书型内容像 Wiki,未拆分为小文件上下文膨胀
全都要型适用于所有任务的「技能」那是规则,不是 Skill
暗号型描述太抽象Agent 从来不加载它
脆弱型硬编码细节过多仓库一变就失效

七、生态与展望

Agent Skills 生态正在快速成型,已形成一条清晰的知识链:规范标准(agentskills.io)→ 构建方法论(Anthropic skill-creator、Superpowers)→ 设计模式(Google ADK)→ 市场社区(skills.sh、skillsmp.com,以及收录 1000+ Skills 的 awesome-agent-skills)。

从「提示词工程」到「面向工作流编排」,Agent Skills 标志着大模型应用开发的一次范式跃迁。它让个人和团队第一次能把「专业经验」以可版本控制、可复用、可测试的方式沉淀下来。

八、Skill 再强,也离不开便宜的 Token

有一点必须提前说清楚:开发、调试 Agent Skill 的过程,本身就是一场 Token 消耗战。Claude Code、Codex、CodeBuddy 这些 Coding Agent 每执行一步都要调用模型——读文件、写代码、跑脚本、A/B 对比测试,一次 skill-creator 的评测可能就要几十上百次模型调用,Token 消耗比普通聊天高出一个量级。

怎么把成本打下来?通过向量云获取字节跳动火山方舟官方 API 和 Key,给你的 Coding Agent 接入模型,天然享受三样东西:

一把 Key 还能覆盖 Agent 的不同强度需求:深度推理用 DeepSeek V4 Pro(deepseek-v4-pro-ga-260813),日常快速任务用 DeepSeek V4 Flash(deepseek-v4-flash-ga-260731)。用好 Skill 沉淀专业能力,再用低成本官方 API 把每次调用压到最低,才是 Agent 玩家的省钱正道。

✅ 获取 API Key:打开 https://ark.tokenrize.cn/ 注册充值,创建 Key 后填入 Claude Code / Codex / CodeBuddy 的模型配置即可。

关于向量云
向量云(南京)科技有限公司

面向大模型应用落地的技术服务型企业,依托字节跳动火山方舟能力,为合作方提供低折扣模型 Token、可独立部署的运营支撑平台及全链路运营支持。

低折扣 Token 官方 API Key 运营支撑平台 充值开票服务 即用即扣 · 不设账期

写在最后

回顾全文,有三个认知值得带走:

  1. Skill 不是 Prompt,而是围绕任务、工具、流程和输出边界的结构化行为设计;
  2. 渐进式加载是灵魂,它解决了 Agent 系统的上下文膨胀问题——装 20 个 Skill,启动也只占一两千 Token;
  3. description 比正文更重要,写好触发条件,是决定你的 Skill「是资产还是废品」的关键。

现在,你可以动手了:从一个每天重复的小流程开始,建一个文件夹,写一个 SKILL.md。当 Agent 第一次在合适的时机自动加载你的 Skill 并漂亮地完成任务时,你会真正理解「给 AI 装技能」这件事的分量。

至于跑 Agent 烧掉的 Token 成本?交给向量云。你在用哪款 Agent 工具?有没有自己动手写过 Skill?欢迎在评论区聊聊。

常见问题(FAQ)

火山方舟官方 API 与官方 Key 直连 · 向量云 · 按量计费享 Token 折扣

Q1. Agent Skills 是什么?

A. Agent Skills 是 AI Agent 时代的「Dockerfile」:一个带 SKILL.md 的文件夹,把 Prompt、脚本与领域规范打包成可复用、可版本控制、可测试的数字资产。

Q2. 什么是渐进式披露(Progressive Disclosure)?

A. 按需加载:先只把 Skill 的名称与描述暴露给模型,命中后再加载完整指令与资源,从而控制上下文开销。

Q3. 一个 Skill 的目录结构与 SKILL.md 规范是什么?

A. 核心是 SKILL.md 的 Frontmatter:name 有严格的命名规则,description 决定模型能否在正确时机命中这个 Skill,是整个 Skill 的「命门」。

Q4. 怎么从零开发一个 Skill?

A. 文中以 Git 工作流 Skill 为例,从目录结构、SKILL.md 规范到五种设计模式,完整走了一遍开发流程。