# 什么是 Skills？

URL: https://caijiao.org/agent-skills/what-are-skills
Source: docs/agent-skills/what-are-skills.md
Description: 智能体技能是一种轻量级、开放的格式，用于通过专业知识和工作流扩展 AI 智能体的能力。

从本质上讲，技能是一个包含 `SKILL.md` 文件的文件夹。该文件包含元数据（至少包含 `name` 和 `description`）以及告诉智能体如何执行特定任务的指令。技能还可以包含脚本、模板和参考材料。

```txt
my-skill/
├── SKILL.md          # 必需：指令 + 元数据
├── scripts/          # 可选：可执行代码
├── references/       # 可选：文档
└── assets/           # 可选：模板、资源
```

## 技能如何工作

技能使用**渐进式披露**来高效管理上下文：

1. **发现**：在启动时，智能体仅加载每个可用技能的名称和描述，这些信息足以让智能体知道何时可能相关。

2. **激活**：当任务与技能描述匹配时，智能体会将完整的 `SKILL.md` 指令读入上下文。

3. **执行**：智能体按照指令执行，根据需要加载引用的文件或执行捆绑的代码。

这种方法保持了智能体的速度，同时让它们能够根据需要访问更多上下文。

## SKILL.md 文件

每个技能都以包含 YAML 前置元数据和 Markdown 指令的 `SKILL.md` 文件开始：

```mdx
---
name: pdf-processing
description: 从 PDF 文件中提取文本和表格，填写表单，合并文档。
---

# PDF 处理

## 何时使用此技能

当用户需要处理 PDF 文件时使用此技能...

## 如何提取文本

1. 使用 pdfplumber 进行文本提取...

## 如何填写表单

...
```

`SKILL.md` 顶部需要以下前置元数据：

- `name`：简短标识符
- `description`：何时使用此技能

Markdown 正文包含实际指令，对结构或内容没有特定限制。

这种简单格式具有一些关键优势：

- **自我文档化**：技能作者或用户可以阅读 `SKILL.md` 并理解其功能，使技能易于审计和改进。

- **可扩展**：技能的复杂性可以从简单的文本指令到可执行代码、资产和模板不等。

- **可移植**：技能只是文件，因此易于编辑、版本控制和共享。

## 后续步骤

- [查看规范](./specification) 以了解完整格式。
- [为您的智能体添加技能支持](./integrate-skills) 以构建兼容的客户端。
- [在 GitHub 上查看示例技能](https://github.com/anthropics/skills)。
- [阅读编写最佳实践](https://platform.claude.com/docs/en/agents-and-tools/agent-skills/best-practices) 以编写有效的技能。
- [使用参考库](https://github.com/agentskills/agentskills/tree/main/skills-ref) 来验证技能并生成提示 XML。
