Skills是什么
Skills的概念由Anthropic提出,其本質(zhì)是一個(gè)更高層次的模塊化能力包,用于擴(kuò)展 Claude的功能。每個(gè)Skill都打包了指令、元數(shù)據(jù)和可選資源(腳本、模板),Claude在執(zhí)行時(shí)會(huì)根據(jù)相關(guān)性自動(dòng)使用。
為什么要使用Skills?
Skills是可重用的、基于文件系統(tǒng)的資源,為 Claude 提供特定領(lǐng)域的專業(yè)知識(shí):工作流程、上下文和最佳實(shí)踐,將通用代理轉(zhuǎn)變?yōu)閷<掖?。與提示詞(用于一次性任務(wù)的對(duì)話級(jí)指令)不同,Skills 按需加載,無需在多個(gè)對(duì)話中重復(fù)提供相同的指導(dǎo)。
關(guān)鍵優(yōu)勢(shì):
- 專業(yè)化Claude:針對(duì)領(lǐng)域特定任務(wù)定制能力
- 減少重復(fù):一次創(chuàng)建,自動(dòng)使用
- 組合能力:通過Skills組合構(gòu)建復(fù)雜的工作流
Skills是如何生效的?
Skills 利用 Claude 的虛擬機(jī)環(huán)境,提供僅憑提示詞無法實(shí)現(xiàn)的能力。Claude 在具有文件系統(tǒng)訪問權(quán)限的虛擬機(jī)中運(yùn)行,這使得 Skills 可以作為包含指令、可執(zhí)行代碼和參考資料的目錄存在,其組織方式類似于項(xiàng)目的目錄結(jié)構(gòu),每個(gè)目錄結(jié)構(gòu)下有關(guān)于這個(gè)模塊簡(jiǎn)要的描述、詳細(xì)說明及資源和代碼。
Skills這種基于文件系統(tǒng)的架構(gòu)提供了其在調(diào)用LLM漸進(jìn)式展開的能力:Claude 根據(jù)需要分階段加載信息,而不是預(yù)先消耗上下文。
Anthropic使用三種類型的內(nèi)容對(duì)Skill做漸進(jìn)式展開,分別對(duì)應(yīng)三種加載級(jí)別。
Level 1: Metadata-元數(shù)據(jù) (始終加載)
Skill 的 YAML 前置元數(shù)據(jù)提供發(fā)現(xiàn)信息:
---
name: pdf處理
description: 從 PDF 文件中提取文本和表格,填寫表單,合并文檔。在處理 PDF 文件時(shí)使用,或當(dāng)用戶提到 PDF、表單或文檔提取時(shí)使用。
---
Claude 在啟動(dòng)時(shí)加載此元數(shù)據(jù)并將其包含在系統(tǒng)提示詞中。這種輕量級(jí)方法意味著你可以安裝許多 Skills 而不會(huì)產(chǎn)生上下文損耗;Claude 只知道每個(gè) Skill 的存在以及何時(shí)使用它。
Level 2: Instructions-詳細(xì)說明 (觸發(fā)時(shí)加載)
SKILL.md 的主要內(nèi)容包含程序性知識(shí):工作流程、最佳實(shí)踐和指導(dǎo):
# PDF處理
## Quick start
使用pdfplumber從PDF文件中提取文字
```python
import pdfplumber
with pdfplumber.open("document.pdf") as pdf:
text = pdf.pages[0].extract_text()
```
更多高級(jí)表格填寫指南, 請(qǐng)見[FORMS.md](FORMS.md).
當(dāng)你請(qǐng)求符合Skill描述的內(nèi)容時(shí),Claude會(huì)通過bash從文件系統(tǒng)讀取 SKILL.md。只有在這時(shí),這些內(nèi)容才會(huì)進(jìn)入上下文窗口。
Level 3: Resources and code-資源和代碼 (按需加載)
Skills可以額外捆綁的資料:說明、代碼和資源
pdf-skill/
├── SKILL.md (主要說明)
├── FORMS.md (表單填寫指南)
├── REFERENCE.md (詳細(xì)的API參考)
└── scripts/
└── fill_form.py (程序腳本)
- 說明:額外的md文件(FORMS.md、REFERENCE.md),包含專業(yè)指導(dǎo)和工作流程
- 代碼:Claude通過bash運(yùn)行的可執(zhí)行腳本(fill_form.py、validate.py);腳本提供確定性操作而不消耗上下文
- 資源:參考資料如數(shù)據(jù)庫(kù)模式、API文檔、模板或示例
文件系統(tǒng)模型意味著每種內(nèi)容類型都有不同的優(yōu)勢(shì):說明用于靈活指導(dǎo),代碼用于可靠性執(zhí)行,資源用于事實(shí)查詢。在調(diào)用時(shí)Claude會(huì)根據(jù)需要判斷是否需要加載對(duì)應(yīng)的文件。
通過以下表格說明三個(gè)加載級(jí)別的區(qū)別:
| Level | 何時(shí)加載 | Token消耗 | 內(nèi)容 |
|---|---|---|---|
| Level 1: Metadata | 總是加載(啟動(dòng)時(shí)) | ~100 tokens 每個(gè)Skill | ymal格式的名稱和描述信息 |
| Level 2: Instructions | Skill被觸發(fā)時(shí) | 低于 5k tokens | SKILL.md中包括說明和指南 |
| Level 3+: Resources | 需要時(shí)加載 | 理論上是無限的(取決于資源多少) | 捆綁的可執(zhí)行文件、文檔、模版等資源 |
以下是Skills架構(gòu)圖:

讓我們通過一個(gè)PDF處理的Skill來說明Skill是如何加載和使用的:

-
啟動(dòng): 在系統(tǒng)提示詞中包含 PDF處理的 Skill的描述- 從 PDF 文件中提取文本和表格,填寫表單,合并文檔。在處理 PDF 文件時(shí)使用,或當(dāng)用戶提到 PDF、表單或文檔提取時(shí)使用 -
用戶請(qǐng)求: 從PDF文件中提取文本信息并進(jìn)行匯總 -
Claude調(diào)用: bash: read pdf-skill/SKILL.md → 將詳細(xì)說明加載到上下文中 -
Claude決策: 不需要使用到表單填寫,所以不需要讀取 FORMS.md -
Claude執(zhí)行: 使用SKILL.md中的詳細(xì)說明完成用戶請(qǐng)求的任務(wù)
上述示例說明了:
- Skill的元數(shù)據(jù)信息被預(yù)加載到系統(tǒng)提示詞中
- Claude通過
bash工具讀取 SKILL.md 觸發(fā)Skill - Claude可以根據(jù)需要選擇性讀取額外的捆綁文件,比如 FORMS.md
- Claude完成任務(wù)
總體上,Skills的技術(shù)棧強(qiáng)調(diào)模塊化和按需加載,解決了傳統(tǒng)提示詞工程上下文大小的局限,并通過可執(zhí)行代碼注入程序性知識(shí)。
如何使用Skills
目前還只有Claude支持Skills,Claude預(yù)置了多種Skills例如:
- PowerPoint (pptx): ppt創(chuàng)建、編輯
- Excel (xlsx): excel創(chuàng)建及分析
- Word (docx): word文檔創(chuàng)建、編輯
- PDF (pdf): 生成pdf文件
除了預(yù)置的Skills外,Claude還提供了一系列RestFul接口創(chuàng)建、編輯、刪除自定義Skills


通過API可以按照如下方式使用Skills:
response = client.beta.messages.create(
model="claude-sonnet-4-5-20250929",
max_tokens=4096,
betas=["code-execution-2025-08-25", "skills-2025-10-02"],
container={
"skills": [
{
"type": "anthropic",
"skill_id": "xlsx",
"version": "latest"
}
]
},
messages=[{
"role": "user",
"content": "Create a quarterly sales tracking spreadsheet with sample data"
}],
tools=[{
"type": "code_execution_20250825",
"name": "code_execution"
}]
)
Skills與MCP的區(qū)別是什么?
Skills和MCP的目標(biāo)都是增強(qiáng)AI Agent的能力,但是它們?cè)谠O(shè)計(jì)理念、實(shí)現(xiàn)方式和應(yīng)用場(chǎng)景都存在顯著差異。MCP定義了一種Agent與外部服務(wù)器的通訊協(xié)議,它解決的是Agent與外部工具如何對(duì)話的問題;而Skills是一種能力封裝,它定義了一個(gè)Agent自身應(yīng)該具備哪些知識(shí)、工作流和內(nèi)部工具,它解決的是Agent如何思考和行動(dòng)的問題;兩者實(shí)際上是互補(bǔ)關(guān)系。
總體上,Skills更像是“即插即用”的本地插件,優(yōu)化了LLM的提示詞工程;MCP更像是“外部適配器”,拓展了大模型的能力邊界。Skills可以構(gòu)建在MCP上,例如在MCP檢索數(shù)據(jù)后,使用Skills腳本處理。
Skills為我們帶來了什么?
Ai Agent的實(shí)現(xiàn)一半靠LLM,另一半靠工程,Skills實(shí)際上又是從工程的角度對(duì)agent能力進(jìn)行增強(qiáng),關(guān)于Ai agent的開發(fā)范式目前來說開始在探索階段,而Skills是這一階段的又一產(chǎn)物,過去Anthropic Agent開發(fā)工程師們引入了MCP,現(xiàn)在引入了Skills,將來也許還是引入新的概念(比如Ability),對(duì)于普通的應(yīng)用開發(fā)者來說還是要理性看待沒有必要盲目跟風(fēng)應(yīng)用在實(shí)際項(xiàng)目中,更何況Anthropic對(duì)中國(guó)是完全封禁的,在項(xiàng)目中接入claude是不明智的選擇。
但是也不是說Skills對(duì)應(yīng)用開發(fā)者們沒有用處,其最大的價(jià)值是:Anthropic將他們的Agent能力管理設(shè)計(jì)模式開源了;我們完全可以將這個(gè)模式借鑒過來,用在自己的Agent內(nèi),而不用關(guān)注到底使用的是哪個(gè)大模型。
當(dāng)你的Agent能力越來越多時(shí),一個(gè)包含幾十個(gè)工具、幾十種應(yīng)用場(chǎng)景動(dòng)輒成百上千的System Prompt如何維護(hù)?如何調(diào)優(yōu)?而Skills的設(shè)計(jì)模式為我們提供了一種解耦、模塊化的解決方案。你的Agent不再是依賴一個(gè)巨大的、難以維護(hù)的system prompt,而是一個(gè)由幾十個(gè)標(biāo)準(zhǔn)化的Skill文件夾組成的能力庫(kù),每個(gè)Skill都可以單獨(dú)測(cè)試和迭代。