如何撰寫 Claude Skills

當我們在桌面環境(例如 Claude Desktop 應用程式或終端機的 Claude Code)使用 AI 時,往往希望能讓它幫忙處理本機檔案、執行指令或自動化日常任務。

許多開發者誤以為要給 Claude 擴充能力,就必須去寫複雜的後端 API 與 JSON Schema。但事實上,在桌面環境中,我們有一套更直覺、完全基於 Markdown 的做法。這篇文章將帶你捨棄那些亂七八糟的底層 API 設定,專注於如何為本地端的 Claude 撰寫專屬的 Agent Skills。

Claude 本地技能的運作方式

在本地環境中,Claude 具備讀取特定資料夾的能力。我們不需要架設伺服器,只需要在專案中建立一個 .agents/skills/ 資料夾。

當你啟動 Claude 時,它會自動掃描這個資料夾底下的所有技能,並透過閱讀裡面的 SKILL.md 說明檔,學習到新的能力。當使用者的指令與某個技能描述相符時,Claude 就會自動讀取裡面的腳本或指令並開始執行。

建立你的第一個 Claude Skill

假設我們經常需要請 Claude 幫忙分析本機的伺服器 Log 檔案,我們可以為它專門打造一個叫做 analyze-logs 的技能。

第一步:建立資料夾結構

在你的專案根目錄下,建立以下資料夾與檔案:

.agents/
└── skills/
    └── analyze-logs/          # 技能名稱資料夾
        └── SKILL.md           # 核心技能定義檔

第二步:撰寫 SKILL.md

打開 SKILL.md,這個檔案是由兩部分組成的:用來觸發技能的「元資料」,以及告訴 Claude 該怎麼做的「執行指令」。

1. 設定觸發條件 (Front Matter)

在檔案的最頂端,我們使用 YAML 格式來定義這個技能的名字跟描述。這段描述非常重要,因為 Claude 就是看這段文字來決定什麼時候要使用這個技能。

---
name: analyze-logs
description: 分析本機的伺服器 log 檔案,找出錯誤或異常。當使用者要求「幫我看一下 log」、「為什麼伺服器出錯」或「分析日誌」時,請呼叫此技能。
---

2. 撰寫給 Claude 的執行指令 (Instructions)

在 YAML 區塊下方,直接用你平時跟 Claude 對話的自然語言,清楚寫下執行步驟。既然是在本地端,你可以直接教 Claude 去執行終端機指令(Terminal Commands)。

當你需要分析伺服器日誌時,請嚴格遵循以下步驟:

1. 首先,使用 `tail` 指令取得最新的 200 行系統日誌:

   ```bash
   tail -n 200 /var/log/system.log
   ```

2. 仔細閱讀輸出結果,找出包含 `ERROR`、`FATAL` 或 `Exception` 的行數。

3. 如果找到錯誤,請總結這些錯誤發生的時間點與可能的原因。
   如果日誌太長或找不到明顯錯誤,請使用 `grep` 指令進行更精確的搜尋:

   ```bash
   grep -i "error" /var/log/system.log
   ```

4. 最後,將分析結果以清晰的條列式重點回報給使用者。

實測與體驗

只要完成了上述的 SKILL.md,你的 Claude 就立刻學會了這項新技能!

現在,只要你在 Claude Code 介面中輸入:「幫我查一下伺服器為什麼剛剛掛掉了?

Claude 的思考流程會是:

  1. 發現這個問題符合 analyze-logsdescription
  2. 自動讀取該技能的指令。
  3. 在背景自動執行 tail -n 200 /var/log/system.log
  4. 閱讀終端機印出來的文字。
  5. 給出最終的錯誤分析報告。

透過這種方式,你完全不需要碰觸任何複雜的程式碼或 API 規格,只需要用 Markdown 寫下 SOP,就能無限擴充 Claude 在你電腦上的工作能力!