Skip to main content

Agent Skill:技能封装与复用

Agent Skills 是一种轻量级的开放格式,用于将一整套 Agent 能力(prompt、工具脚本、知识文件等)封装为可复用的模块,从而实现低门槛分享与复用。

Agent Skill 的核心理念

从"重新发明轮子"到"站在巨人肩膀上"

之前:
每个人都要:
→ 写自己的代码评审 prompt
→ 写自己的数据分析脚本
→ 调试自己的工作流
大量重复劳动

有了 Agent Skills 之后:
一个专家写好:
→ 代码评审 Skill
社区所有人都可以直接用!

Agent Skill ≈ 子 Agent

一个 Skill 可以包含:

  • 📝 精心设计的 Prompt 模板
  • 🛠️ 自定义的工具和脚本
  • 📚 内置的知识库和参考资料
  • 📋 标准化的工作流程
  • ✅ 验证和测试用例

Anthropic Agent Skill 的运行机制

2024 年末 Anthropic 提出的 Agent Skill 规范,是当下最权威的 Skill 实现。它的核心设计与前文的通用范式有 3 个关键差异。

1. 本质就是一个文件夹

my-skill/
├── SKILL.md # 核心:存放名称、描述、行为指令
├── scripts/ # 可执行脚本
├── references/ # 引用文档(按需读取)
└── assets/ # 静态资源(图标、模板等)

SKILL.md 是灵魂——它存放的内容和系统提示词类似,规定了:

  • 这个 Skill 是什么、能做什么
  • 什么时候应该激活它
  • 怎么执行它的脚本
  • 什么时候需要读 references 下的文件
  • 什么时候需要用 assets 下的资源

2. 核心亮点:基于文件系统的渐进式加载

这是 Agent Skill 最有价值的设计——它解决了"提示词膨胀"问题:

传统提示词:
用户请求 → 一次性把全部提示词塞给模型 → 上下文爆炸

Agent Skill 渐进式加载:
用户请求 → 主脑只看到"所有 Skill 的名称 + 描述"
→ 匹配到某个 Skill → 才把它的 SKILL.md 全量加载
→ 任务中再按 SKILL.md 指引去读 references/、跑 scripts/

这个过程本质上是 Agent 帮你做 Tool Search——主脑不需要预先加载所有内容,而是按文件系统索引按需翻找。

3. 完整的运行流程

把整个生命周期串起来:

① 启动阶段
Coding Agent 扫描指定目录(如 .claude/skills/)
→ 拿到所有 Skill 的"名称 + 描述"
→ 全部塞进主脑模型的系统提示词

② 匹配阶段
用户发请求:"帮我做一次代码评审"
→ 主脑看自己的请求能否匹配上某个 Skill 的描述
→ 匹配上 code-review skill

③ 激活阶段
→ 把 code-review/SKILL.md 完整内容加载进主脑上下文
→ 主脑现在知道这个 Skill 怎么用

④ 执行阶段
→ 主脑按 SKILL.md 指引:
a. 读取 references/code-style.md(评审规范)
b. 执行 scripts/run-lint.py(运行 lint 工具)
c. 生成评审报告

⑤ 产出阶段
→ 输出最终结果给用户

关键的"两次加载"分离——启动时只加载轻量的 name + description,激活时才加载完整的 SKILL.md——是 Skill 能扩展到几十上百个而不爆上下文的根本原因。

4. 跨平台分发:微信发文件就能用

Agent Skill 的另一个杀手特性是分发简单到极致

  • 整个 Skill 就是一个普通文件夹,不依赖任何框架、不需要打包编译
  • 跨平台兼容:Claude Code / Cursor / 其他 coding agent 都能识别
  • 甚至能通过微信、邮件、网盘直接发送——不懂 AI 的同事解压文件夹就能用

这一点对非工程用户特别友好:之前要在低代码平台(扣子之类)手动搭建 agent、复制提示词、配置 MCP 工具;现在只要拿到一个 Skill 文件夹扔进对应目录就行。评价:这是 Skill 协议能做到的最重要的事——让整个 Agent 的可复用性变成"发文件"级别的简单


Skill 的典型结构

文件组织

my-skill/
├── skill.yaml # Skill 元数据与配置
├── README.md # 使用说明
├── prompts/ # Prompt 模板
│ ├── system.md
│ └── code-review.md
├── tools/ # 自定义工具脚本
│ ├── git-diff.py
│ └── lint-check.py
├── knowledge/ # 知识库
│ ├── best-practices.md
│ └── style-guide.md
└── examples/ # 使用示例
└── example-1.md

Skill 元数据

# skill.yaml
name: code-review-skill
version: 1.0.0
description: "专业的代码评审技能,支持多种编程语言"
author: "Your Name"

# 激活触发条件
activation:
keywords: ["review code", "代码评审", "CR"]
files: ["*.py", "*.js", "*.ts"]

# Prompt 模板
prompts:
system: prompts/system.md
code_review: prompts/code-review.md

# 可用工具
tools:
- name: git_diff
script: tools/git-diff.py
description: "获取 Git 变更内容"

# 内置知识库
knowledge:
- knowledge/best-practices.md
- knowledge/style-guide.md

Skill 的激活机制

1. 关键词触发

用户:"帮我做一下代码评审"

匹配关键词:"代码评审"

自动激活 Code Review Skill

2. 文件类型触发

用户打开了一个 .py 文件

匹配文件类型:Python

激活 Python 开发相关 Skill

3. 显式调用

用户:"/use code-review-skill"

直接激活指定 Skill

4. 渐进式披露

Skill 不是一次性把所有东西都加载:

阶段 1:只加载 Skill 的基本信息和核心 Prompt
阶段 2:需要时动态加载知识库内容
阶段 3:用户确认后才执行工具脚本

SOP 的沉淀与复用

什么是 SOP?

SOP(Standard Operating Procedure,标准作业程序)是把专家的经验沉淀下来,变成可复用的流程。

例子:代码评审 SOP

专家的做法(在脑子里)

1. 先看整体架构有没有问题
2. 检查是否有安全漏洞
3. 检查代码规范和风格
4. 检查性能问题
5. 检查测试覆盖率
6. 给出具体的修改建议

变成 Skill 之后(所有人都可以用)

# 代码评审 SOP

## 步骤 1:架构审查
检查整体设计是否合理...

## 步骤 2:安全审查
检查 OWASP Top 10 安全问题...

## 步骤 3:代码规范
检查是否符合团队风格指南...

## 检查清单
- [ ] 输入验证是否完整
- [ ] 错误处理是否到位
- [ ] 是否有性能问题

Skill 让经验可以传承

老工程师离职

他的经验变成了 Skill

新人来直接用这个 Skill

团队能力不会断层!

社区生态的力量

Skill 市场

📦 通用技能
- 代码评审
- 文档写作
- 数据分析

📦 垂直领域
- 金融分析
- 医疗诊断
- 法律文书

📦 团队定制
- 公司内部流程
- 团队规范
- 项目模板

开源协作模式

类似开源软件:
1. 某人写了一个 Skill
2. 分享到社区
3. 其他人使用、反馈问题
4. 社区一起改进优化
5. 越来越好的 Skill 生态

Skill vs 其他复用方式

方式粒度可复用性能力封装
Prompt 片段最小只有文本
自定义指令只有 Prompt
Agent SkillPrompt + 工具 + 知识 + 流程
完整 Agent最大整个系统

编写高质量 Skill 的要点

1. 单一职责

好的 Skill:专注做一件事,做到最好 ❌ 不好的 Skill:什么都能做,但什么都做不好

2. 清晰的文档

使用者不需要看源码就能上手:

  • 这个 Skill 是做什么的?
  • 什么时候用?
  • 怎么用?
  • 有什么限制?

3. 内置的最佳实践

把专家经验"编码"到 Skill 中:

  • 检查清单
  • 常见误区
  • 推荐做法
  • 反模式警示

4. 安全第一

  • 工具脚本需要用户确认才能执行
  • 敏感操作要有明确提示
  • 不做破坏性操作

Agent Skill 本质上是"经验的容器"。它让最好的实践可以被复制、分享、积累,最终让每个人都能站在专家的肩膀上。