Claude Skills是什么?為什么要引入Skills?

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)圖:


skills架構(gòu)圖.png

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


使用pdf Skill.png
  1. 啟動(dòng): 在系統(tǒng)提示詞中包含 PDF處理的 Skill的描述- 從 PDF 文件中提取文本和表格,填寫表單,合并文檔。在處理 PDF 文件時(shí)使用,或當(dāng)用戶提到 PDF、表單或文檔提取時(shí)使用
  2. 用戶請(qǐng)求: 從PDF文件中提取文本信息并進(jìn)行匯總
  3. Claude調(diào)用: bash: read pdf-skill/SKILL.md → 將詳細(xì)說明加載到上下文中
  4. Claude決策: 不需要使用到表單填寫,所以不需要讀取 FORMS.md
  5. Claude執(zhí)行: 使用SKILL.md中的詳細(xì)說明完成用戶請(qǐng)求的任務(wù)

上述示例說明了:

  1. Skill的元數(shù)據(jù)信息被預(yù)加載到系統(tǒng)提示詞中
  2. Claude通過bash工具讀取 SKILL.md 觸發(fā)Skill
  3. Claude可以根據(jù)需要選擇性讀取額外的捆綁文件,比如 FORMS.md
  4. 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


restful api.png

創(chuàng)建skill.png

通過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è)試和迭代。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容