初學Claude Skills/Agents/Plugins/hooks等高級功能
Anthropic 剛剛為 Claude 推出了 Skills 功能,這個新能力讓 Claude 能夠動態加載專門的指令、腳本和資源,從通用 AI 助手變身為各領域的專業助手。
https://docs.claude.com/zh-CN/docs/claude-code/skills
https://github.com/anthropics/claude-cookbooks/tree/main/skills
Skills
Skills 本質上是一個包含指令、腳本和資源的文件夾,Claude 可以在需要時動態發現并加載它們來完成特定任務。
Agent Skills 是擴展 Claude 功能的模塊化能力。每個 Skill 包含指令、元數據和可選資源(腳本、模板),Claude 在相關時會自動使用這些資源。

為什么使用 Skills
Skills 是可重用的、基于文件系統的資源,為 Claude 提供特定領域的專業知識:工作流、上下文和最佳實踐,將通用代理轉變為專家。與提示不同(提示是對話級別的一次性任務指令),Skills 按需加載,無需在多個對話中重復提供相同的指導。
Skills 的關鍵特點
- 可組合:Skills 能夠堆疊在一起,Claude 會自動識別需要哪些 Skills 并協調它們的使用。
- 可移植:使用相同的格式,一次構建,就能在 Claude 應用、Claude Code 和 API 中使用。
- 高效:只在需要時加載需要的內容。
- 強大:可以包含可執行代碼,用于那些傳統編程比 token 生成更可靠的任務。
Skills的結構
最簡單的 Skill 是一個包含 SKILL.md 文件的目錄。
這個文件必須以包含必需元數據的 YAML frontmatter 開頭:name 和 description。在啟動時,Agent 會將每個已安裝技能的名稱和描述預加載到系統提示中。
好的例子:簡潔(大約50個令牌)
## 提取 PDF 文本
使用 pdfplumber 進行文本提取:
“”“python
import pdfplumber
with pdfplumber.open("file.pdf") as pdf:
text = pdf.pages[0].extract_text()
”“”
不好的例子:過于冗長(大約 150 個令牌):
## 提取 PDF 文本
PDF(便攜式文檔格式)文件是一種常見的文件格式,包含
文本、圖像和其他內容。要從 PDF 中提取文本,您需要
使用一個庫。有許多庫可用于 PDF 處理,但我們
建議使用 pdfplumber,因為它易于使用且能處理大多數情況。
首先,您需要使用 pip 安裝它。然后您可以使用下面的代碼...
建立不同的 Skills
共享范圍
Skills 根據使用位置有不同的共享模型:
*Claude.ai:僅限個人用戶;每個團隊成員必須單獨上傳
*Claude API:工作區范圍;所有工作區成員可以訪問上傳的 Skills
*Claude Code:個人(~/.claude/skills/)或基于項目(.claude/skills/)
Claude.ai 目前不支持自定義 Skills 的集中管理員管理或組織范圍分發。
個人 Skills
個人 Skills 在您的所有項目中可用。將它們存儲在 ~/.claude/skills/ 中:
mkdir -p ~/.claude/skills/my-skill-name
使用個人 Skills 的場景:
- 您的個人工作流和偏好
- 您正在開發的實驗性 Skills
- 個人生產力工具
項目 Skills
項目 Skills 與您的團隊共享。將它們存儲在項目中的 .claude/skills/ 中:
mkdir -p .claude/skills/my-skill-name
使用項目 Skills 的場景:
團隊工作流和約定
項目特定的專業知識
共享的實用程序和腳本
項目 Skills 被檢入 git 并自動對團隊成員可用。
插件 Skills
Skills 也可以來自 Claude Code 插件。插件可能捆綁了在安裝插件時自動可用的 Skills。
這些 Skills 的工作方式與個人和項目 Skills 相同。
編寫 SKILL
創建SKILL.md 文件
創建一個包含 YAML 前置內容和 Markdown 內容的 SKILL.md 文件:
英文版:
---
name: your-skill-name
description: Brief description of what this Skill does and when to use it
---
# Your Skill Name
## Instructions
Provide clear, step-by-step guidance for Claude.
## Examples
Show concrete examples of using this Skill.
中文版:
Skill 結構
每個 Skill 都需要一個帶有 YAML 前置數據的 SKILL.md 文件:
---
name: your-skill-name
description: 簡要描述此 Skill 的功能以及何時使用它
---
# 您的 Skill 名稱
## 指令
[Claude 要遵循的清晰、分步指導]
## 示例
[使用此 Skill 的具體示例]
description:
description 應包括 Skill 的功能以及 Claude 何時應使用它。
字段要求:
*name:必須僅使用小寫字母、數字和連字符(最多 64 個字符)不能包含 XML 標簽, 不能包含保留字:「anthropic」、「claude」
*description:Skill 功能及其使用時機的簡要描述(必須非空,最多 1024 個字符,不能包含 XML)
description 字段對于 Claude 發現何時使用您的 Skill 至關重要。它應該包括 Skill 的功能和 Claude 應該何時使用它。 查看 最佳實踐指南 以獲取完整的創作指導,包括驗證規則。

Skills 如何工作
Skills 利用 Claude 的虛擬機環境提供超越僅使用提示可能實現的功能。Claude 在具有文件系統訪問權限的虛擬機中運行,允許 Skills 作為包含指令、可執行代碼和參考資料的目錄存在,組織方式就像您為新團隊成員創建的入職指南。 這種基于文件系統的架構支持漸進式披露:Claude 按需分階段加載信息,而不是預先消耗上下文。
Claude API
Claude API 支持預構建的 Agent Skills 和自定義 Skills。兩者的工作方式相同:在 container 參數中指定相關的 skill_id 以及代碼執行工具。
三種 Skill 內容類型,三個加載級別
Skills 可以包含三種類型的內容,每種在不同時間加載:
?
第 1 級:元數據(始終加載)
內容類型:指令。Skill 的 YAML 前置數據提供發現信息:
---
name: pdf-processing
description: 從 PDF 文件中提取文本和表格、填充表單、合并文檔。在處理 PDF 文件或用戶提及 PDF、表單或文檔提取時使用。
---
Claude 在啟動時加載此元數據并將其包含在系統提示中。這種輕量級方法意味著您可以安裝許多 Skills 而不會產生上下文成本;Claude 只知道每個 Skill 的存在以及何時使用它。
?
第 2 級:指令(觸發時加載)
內容類型:指令。SKILL.md 的主體包含程序知識:工作流、最佳實踐和指導:
# PDF 處理
## 快速入門
使用 pdfplumber 從 PDF 中提取文本:
```python
import pdfplumber
with pdfplumber.open("document.pdf") as pdf:
text = pdf.pages[0].extract_text()
有關高級表單填充,請參閱 FORMS.md。
當您請求與 Skill 描述匹配的內容時,Claude 通過 bash 從文件系統讀取 SKILL.md。只有這樣,此內容才會進入上下文窗口。
?
第 3 級:資源和代碼(按需加載)
內容類型:指令、代碼和資源。Skills 可以捆綁其他材料:
pdf-skill/
├── SKILL.md (主要指令)
├── FORMS.md (表單填充指南)
├── REFERENCE.md (詳細 API 參考)
└── scripts/
└── fill_form.py (實用腳本)
指令:包含專業指導和工作流的其他 markdown 文件(FORMS.md、REFERENCE.md) 代碼:Claude 通過 bash 運行的可執行腳本(fill_form.py、validate.py);腳本提供確定性操作而不消耗上下文 資源:參考資料,如數據庫架構、API 文檔、模板或示例 Claude 僅在引用時訪問這些文件。文件系統模型意味著每種內容類型都有不同的優勢:指令用于靈活指導,代碼用于可靠性,資源用于事實查詢。
級別 加載時間 令牌成本 內容
第 1 級:元數據 始終(啟動時) 每個 Skill 約 100 個令牌 YAML 前置數據中的 name 和 description
第 2 級:指令 觸發 Skill 時 不到 5k 個令牌 包含指令和指導的 SKILL.md 主體
第 3 級+:資源 按需 實際上無限制 通過 bash 執行的捆綁文件,不將內容加載到上下文中
漸進式披露確保任何給定時間只有相關內容占據上下文窗口。
## 添加支持文件
在 SKILL.md 旁邊創建其他文件:
my-skill/
├── SKILL.md (required)
├── reference.md (optional documentation)
├── examples.md (optional examples)
├── scripts/
│ └── helper.py (optional utility)
└── templates/
└── template.txt (optional template)
從 SKILL.md 引用這些文件:
For advanced usage, see reference.md.
Run the helper script:
python scripts/helper.py input.txt
Claude 僅在需要時讀取這些文件,使用漸進式披露來有效管理上下文。
## Skills 如何被調用
Skills 是模型調用的, Claude 根據您的請求和 Skill 的描述自主決定何時使用它們。
這與斜杠命令不同,斜杠命令是用戶調用的(您顯式輸入 /command 來觸發它們)。
優勢:
*為您的特定工作流擴展 Claude 的功能
*通過 git 在團隊中共享專業知識
*減少重復提示
*為復雜任務組合多個 Skills
Skills 如何工作
Skills 利用 Claude 的虛擬機環境提供超越僅使用提示可能實現的功能。Claude 在具有文件系統訪問權限的虛擬機中運行,允許 Skills 作為包含指令、可執行代碼和參考資料的目錄存在,組織方式就像您為新團隊成員創建的入職指南。 這種基于文件系統的架構支持漸進式披露:Claude 按需分階段加載信息,而不是預先消耗上下文。
?
三種 Skill 內容類型,三個加載級別
Skills 可以包含三種類型的內容,每種在不同時間加載:
?
第 1 級:元數據(始終加載)
內容類型:指令。Skill 的 YAML 前置數據提供發現信息:
Copy
---
name: pdf-processing
description: 從 PDF 文件中提取文本和表格、填充表單、合并文檔。在處理 PDF 文件或用戶提及 PDF、表單或文檔提取時使用。
---
Claude 在啟動時加載此元數據并將其包含在系統提示中。這種輕量級方法意味著您可以安裝許多 Skills 而不會產生上下文成本;Claude 只知道每個 Skill 的存在以及何時使用它。
?
第 2 級:指令(觸發時加載)
內容類型:指令。SKILL.md 的主體包含程序知識:工作流、最佳實踐和指導:
Copy
# PDF 處理
## 快速入門
使用 pdfplumber 從 PDF 中提取文本:
```python
import pdfplumber
with pdfplumber.open("document.pdf") as pdf:
text = pdf.pages[0].extract_text()
有關高級表單填充,請參閱 FORMS.md。
當您請求與 Skill 描述匹配的內容時,Claude 通過 bash 從文件系統讀取 SKILL.md。只有這樣,此內容才會進入上下文窗口。
?
第 3 級:資源和代碼(按需加載)
內容類型:指令、代碼和資源。Skills 可以捆綁其他材料:
Copy
pdf-skill/
├── SKILL.md (主要指令)
├── FORMS.md (表單填充指南)
├── REFERENCE.md (詳細 API 參考)
└── scripts/
└── fill_form.py (實用腳本)
指令:包含專業指導和工作流的其他 markdown 文件(FORMS.md、REFERENCE.md) 代碼:Claude 通過 bash 運行的可執行腳本(fill_form.py、validate.py);腳本提供確定性操作而不消耗上下文 資源:參考資料,如數據庫架構、API 文檔、模板或示例 Claude 僅在引用時訪問這些文件。文件系統模型意味著每種內容類型都有不同的優勢:指令用于靈活指導,代碼用于可靠性,資源用于事實查詢。
級別 加載時間 令牌成本 內容
第 1 級:元數據 始終(啟動時) 每個 Skill 約 100 個令牌 YAML 前置數據中的 name 和 description
第 2 級:指令 觸發 Skill 時 不到 5k 個令牌 包含指令和指導的 SKILL.md 主體
第 3 級+:資源 按需 實際上無限制 通過 bash 執行的捆綁文件,不將內容加載到上下文中
漸進式披露確保任何給定時間只有相關內容占據上下文窗口。
Claude 如何訪問 Skill 內容: 觸發 Skill 時,Claude 使用 bash 從文件系統讀取 SKILL.md,將其指令帶入上下文窗口。如果這些指令引用其他文件(如 FORMS.md 或數據庫架構),Claude 也會使用其他 bash 命令讀取這些文件。當指令提及可執行腳本時,Claude 通過 bash 運行它們并僅接收輸出(腳本代碼本身永遠不會進入上下文)。
學習網址
官方:https://docs.claude.com/zh-CN/docs/claude-code/skills
Anthropic 工程博客: https://www.anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skills
Skills 公告: https://www.anthropic.com/news/skills
文檔: https://docs.claude.com/en/docs/agents-and-tools/agent-skills/overview
Cookbook: https://github.com/anthropics/claude-cookbooks/tree/main/skills
示例 Skills: https://github.com/anthropics/skills
高級應用:https://docs.claude.com/zh-CN/docs/agents-and-tools/agent-skills/best-practices
Skills的python應用:三個課程:
https://github.com/anthropics/claude-cookbooks/blob/main/skills/notebooks/01_skills_introduction.ipynb
https://github.com/anthropics/claude-cookbooks/blob/main/skills/notebooks/02_skills_financial_applications.ipynb
https://github.com/anthropics/claude-cookbooks/blob/main/skills/notebooks/03_skills_custom_development.ipynb
Agents
Claude agents配置位置:/root/.claude/agents/
Plugins
【Cluade Code:使用plugins打造專屬助手-嗶哩嗶哩】 https://b23.tv/t2jiXTZ
Hooks (鉤子)
https://dev.to/bredmond1019/mastering-claude-hooks-building-observable-ai-systems-part-2-2ic4
鉤子是在 Claude 生命周期中的特定點觸發的事件驅動腳本。將它們視為您的 AI 助手的中間件 - 攔截、監控和增強每次交互。
五個鉤子事件可讓您完全控制:
- PreToolUse - 您的安全守護者
- PostToolUse - 觀察者
- 通知 - 互動時刻
- 停止 - 會話完成
- SubagentStop - 并行處理
浙公網安備 33010602011771號