# 讓 Claude Code 變成專家:Skills 自訂技能教學 > 這篇文章教你怎麼建立 Claude Code 的 Skills(自訂技能),讓它從通用助手變成你的領域專家。你可以把這篇文章(或下方的快速建立指引)直接貼給你的 Claude Code,它就能幫你建立屬於你自己的 Skill。 ## Skills 是什麼? 簡單說,Skills 就是一份「教學手冊」,讓 Claude Code 在特定情境下自動載入,變成那個領域的專家。 **舉例:** - 你常常要搜尋公司知識庫 → 建一個「知識庫搜尋」Skill,告訴它搜尋的步驟和技巧 - 你常常寫 React 元件 → 建一個「React 元件」Skill,告訴它你的命名規範和偏好 - 你常常處理 PDF → 建一個「PDF 處理」Skill,附上你常用的 Python 腳本 **效果:** 下次你說「幫我在知識庫找 XXX」,Claude Code 會自動載入對應的 Skill,按照你定義的流程來做,不需要你每次重複解釋。 ## 怎麼建立? ### 方法一:直接貼給 Claude Code(最簡單) 把下面這段貼給你的 Claude Code: --- **給 Claude Code 的指令:** > 幫我建立一個 Skill。 > > **名稱:** [你想要的技能名稱,例如:知識庫搜尋] > **用途:** [什麼時候觸發,例如:當我說「幫我找」「搜一下」的時候] > **步驟:** > 1. [第一步做什麼] > 2. [第二步做什麼] > 3. [第三步做什麼] > > 請建立在 `~/.claude/skills/[技能名稱]/SKILL.md` --- Claude Code 就會幫你建好整個 Skill 結構。 ### 方法二:自己手動建立 Skill 其實就是一個資料夾 + 一個 Markdown 文件: ``` ~/.claude/skills/ └── 你的技能名稱/ └── SKILL.md ``` `SKILL.md` 的格式: ```markdown --- name: 技能顯示名稱 description: This skill should be used when the user asks to "觸發詞1", "觸發詞2", "觸發詞3". --- # 技能名稱 ## 什麼時候用 這個技能在 [情境描述] 時使用。 ## 執行步驟 ### 第一步:XXX [具體做法,越詳細越好] ### 第二步:XXX [具體做法] ### 常見問題 | 問題 | 解法 | |------|------| | ... | ... | ``` ## 重點技巧 ### 1. 觸發詞要具體 description 裡的觸發詞決定了 Claude Code 什麼時候會載入這個 Skill。寫得越具體,觸發越精準。 ```yaml # 不好 — 太模糊 description: This skill helps with searching. # 好 — 列出使用者實際會說的話 description: This skill should be used when the user asks to "在知識庫找", "幫我查", "搜一下之前的紀錄", or "find in knowledge base". ``` ### 2. 步驟要寫「怎麼做」而不是「做什麼」 ```markdown # 不好 — 只說做什麼 搜尋知識庫中的相關資料。 # 好 — 寫出具體怎麼做 用以下 Python 腳本查詢 Qdrant 向量資料庫: (附上完整的程式碼) ``` ### 3. 可以附帶腳本和參考資料 ``` 你的技能名稱/ ├── SKILL.md ← 主要說明(會自動載入) ├── scripts/ ← 工具腳本(需要時才載入) │ └── search.py └── references/ ← 參考文件(需要時才載入) └── api-guide.md ``` 在 SKILL.md 裡引用它們: ```markdown ## 可用工具 - `scripts/search.py` — 知識庫搜尋腳本 - `references/api-guide.md` — API 完整文件 ``` 這樣 Claude Code 會在需要時才讀取,不會浪費 token。 ### 4. 記錄踩過的坑 Skill 最有價值的部分是你的**經驗**,那些 Claude Code 自己不會知道的東西: ```markdown ## 注意事項 - 搜尋 Notion 子頁面時,父頁面的 content 可能是空的,需要展開子頁面 - Windows 的 VBS 腳本必須用 Big5 編碼,不能用 UTF-8 - 這個 API 的 v2 已經棄用 search(),要改用 query_points() ``` ## 實際範例:知識庫搜尋 Skill 以下是我實際在用的「知識庫搜尋」Skill 的精簡版。我有一套本地 RAG 系統(Notion 同步 + Qdrant 向量搜尋 + SQLite),這個 Skill 教 Claude Code 怎麼按優先順序搜尋: ```markdown --- name: 知識庫搜尋 description: This skill should be used when the user asks to "在知識庫找", "幫我查知識庫", "找一下我之前記的", or mentions searching their knowledge base. --- # 知識庫搜尋策略 ## 搜尋優先順序 ### 第一層:Qdrant 語意搜尋 用 sentence-transformers 把查詢向量化,在 Qdrant 裡找最相似的頁面。 (附上 Python 腳本) ### 第二層:SQLite 屬性篩選 按日期、分類、資料庫名稱等結構化欄位精準查找。 (附上 SQL 範例) ### 第三層:全文關鍵字搜尋 直接搜 pages.json 的標題和內容。 (附上 Python 腳本) ### 最後手段:Notion API 只有以上都找不到時才用。 ``` 每次搜尋遇到問題,我就更新這個 Skill,讓它越來越聰明。 ## 快速開始 直接把以下內容貼給你的 Claude Code 開始建立第一個 Skill: --- **複製貼上這段:** ``` 幫我建立一個 Claude Code Skill。 存放位置:~/.claude/skills/[你取的名字]/SKILL.md 我想要的功能: [描述你希望 Claude Code 在什麼情境自動做什麼事] 觸發詞(我通常會怎麼說): - [例如:「幫我查」] - [例如:「在知識庫找」] 具體步驟: 1. [第一步] 2. [第二步] 3. [第三步] 踩過的坑(如果有的話): - [你之前遇過的問題和解法] ``` --- Claude Code 會幫你生成完整的 SKILL.md,之後每次新對話都會自動生效。 ## 進階用法 - **全域 Skill**(所有專案都能用):放在 `~/.claude/skills/` - **專案 Skill**(只有特定專案用):放在 `專案根目錄/.claude/skills/`(需透過 Plugin 機制) - **持續優化**:每次 Skill 表現不好就更新它,就像訓練一個專屬助手 --- > 這套 Skills 系統是 Claude Code 的內建功能,不需要額外安裝任何東西。只要建好 SKILL.md,它就會自動在對話中生效。