Claude Agent、Subagent、Skill 是什麼?用一個比喻搞懂 Claude Code 的三種設定檔

分享文章

Claude Code 裡的 Agent、Subagent 和 Skill,說穿了就是三種放在不同資料夾的文字檔。CLAUDE.md 是每次開工都會讀的公司手冊,Skill 是需要時才翻的 SOP,Subagent 是把一件事整包外派出去的專員。搞懂這三個檔案放哪裡、什麼時候被讀到,你就能決定公司的哪些流程該寫成哪一種。這篇文章用一個公司的比喻把三者講清楚,每一種都附上可以直接複製的最小範例,最後給你一張選擇表。

先用一個比喻:你請了一位能力很強的新同事

把 Claude Code 想成一位剛到職、能力很強但完全不了解你公司的同事。他會寫程式、會查資料、會整理文件,但他不知道你們的檔案放哪裡、報告要什麼格式、哪些事絕對不能做。你要讓他有生產力,大概會做三件事。

第一,給他一本公司手冊,寫明基本規則,每天上班都看得到。第二,把重複的工作寫成 SOP,例如「每週客戶報告怎麼做」,他需要時再翻,不用每天背。第三,碰到需要專注、或者不想干擾主要工作的任務,你會另外找一位專員,給他明確的職責和權限,做完回報結果就好。

這三件事在 Claude Code 裡分別對應 CLAUDE.md、Skill 和 Subagent。它們都是純文字的 Markdown 檔,不需要寫程式,差別在於放的位置和被讀取的時機。下面逐一說明。

主 Agent 與 CLAUDE.md:每次開工都會讀的公司手冊

你在終端機打開 Claude Code,跟它對話的那個對象,就是主 Agent。它負責理解你的需求、決定要讀哪些檔案、要跑哪些指令,必要時再把工作派給 Subagent 或翻出 Skill 來用。

CLAUDE.md 是主 Agent 的公司手冊。每一次開啟新對話,Claude Code 都會自動把它讀進來,所以放在裡面的東西會持續生效。它有幾個常見位置:

  • 專案根目錄的 CLAUDE.md:給整個團隊看,會進版本控制。適合放專案慣例、常用指令、資料夾結構。
  • 個人目錄的 ~/.claude/CLAUDE.md:只有你自己看得到,所有專案都適用。適合放個人偏好,例如回覆語言。
  • 專案裡的 CLAUDE.local.md:只有你自己,而且只在這個專案生效。適合放不想上傳的個人設定。

多個 CLAUDE.md 會疊加,不是互相覆蓋。一份專案的 CLAUDE.md 大概長這樣:

# 專案慣例

## 常用指令
- 測試:npm test
- 建置:npm run build

## 寫作規範
- 文件一律使用台灣繁體中文
- 不確定的數據要標示來源

## 資料夾
- 文章草稿放在 posts/
- 參考資料放在 references/

判斷一件事該不該進 CLAUDE.md,問自己:這條規則是不是每次對話都要遵守?是的話就放。不是的話,放進去只會占用每次對話的額度,而且規則一多,Claude 反而容易漏掉。官方建議控制在 200 行以內。你會發現「每週報告怎麼做」這類東西並不符合「每次都要」的條件,那就是 Skill 的工作了。

Skill:把重複的流程寫成 SOP,需要時才翻

Skill 是一個資料夾,裡面至少有一個叫 SKILL.md 的檔案。它的用途是把一套流程或一份專業知識打包起來,讓 Claude 在需要時載入,不需要時完全不占空間。

最小結構

.claude/skills/
└── weekly-report/
├── SKILL.md ← 必要
├── template.md ← 選用,報告範本
└── scripts/ ← 選用,固定要跑的腳本

SKILL.md 的開頭是一段用三個連字號包起來的設定,接著就是給 Claude 看的指令:

---
name: weekly-report
description: 產出每週客戶進度報告。當使用者提到週報、客戶進度、本週狀況整理時使用。
---

# 每週客戶報告流程

1. 讀取 reports/ 下本週的所有會議紀錄
2. 依 template.md 的格式整理成報告
3. 每一項進度都要標示負責人與日期
4. 完成後對照 template.md 檢查格式,不符合就修正再交

兩個欄位最重要。name 是這個 Skill 的名字,決定你可以用斜線指令呼叫它。description 是 Claude 用來判斷「現在該不該用這個 Skill」的依據,所以要寫清楚它做什麼和什麼情況該用。描述寫得模糊,Claude 就不會在對的時候想到它。

兩種觸發方式

Skill 有兩種被啟動的方式。一種是你直接打 /weekly-report,Claude 一定會載入。另一種是 Claude 根據你的對話內容,比對每個 Skill 的描述後自己決定用。前者適合固定流程,後者適合「我希望它在某類任務出現時自動想起來」的知識。

如果某個 Skill 涉及寄信、刪除或付款這類有後果的動作,你可以在設定裡加上 disable-model-invocation: true,讓它只能由人手動呼叫,Claude 不能自己決定啟動。

為什麼說 Skill 不占空間

Claude Code 啟動時只會讀每個 Skill 的名字和描述,不會讀內容。等到確定要用某個 Skill,才載入整份 SKILL.md。SKILL.md 裡提到的其他檔案,則在用到那一步時才打開。這個設計讓你可以放幾十個 Skill 而不拖慢主要對話,也是為什麼 Skill 比 CLAUDE.md 更適合放長篇的流程說明。

Skill 不只在 Claude Code 能用

Skill 的格式是公開規格,同一個資料夾打包成 .skill 檔之後,可以上傳到 Claude 桌面版使用,API 也支援。差別在於能不能執行腳本:Claude Code 和桌面版的 Cowork 可以,網頁版對話主要是讀指令。如果你公司有同事不用終端機,把 Skill 做好後讓他們在桌面版上傳,是最低門檻的共用方式。

Subagent:需要分工時另外請的專員

Subagent 是一個獨立的 Claude 分身,有自己的職責說明、自己的工具權限、自己的對話空間。主 Agent 把一件任務整包交給它,它做完後只回傳結果,過程中讀的幾十個檔案都不會塞進主對話。

最小結構

Subagent 是單一個 Markdown 檔,放在專案的 .claude/agents/ 或個人的 ~/.claude/agents/ 底下:

---
name: doc-checker
description: 審閱文件是否符合公司格式規範,找出缺漏欄位與格式錯誤。使用者要求檢查、審閱、稽核文件時主動使用。
tools: Read, Grep, Glob
model: sonnet
---

你是一位文件稽核專員。收到檔案路徑後:
1. 讀取檔案與 docs/format-rules.md
2. 逐條比對規範,列出不符合之處與所在行數
3. 只回報問題清單,不要修改任何檔案

欄位的意思很直接。tools 限制它能用哪些工具,上面的例子只給讀取和搜尋,所以它不可能動到任何檔案。model 可以指定它用哪個模型,重複性高的任務用較快的模型就夠了。

怎麼呼叫

你可以用自然語言說「用 doc-checker 檢查這三份合約」,Claude 會依描述判斷該不該派給它。想確保一定派給它,可以用 @ 提及它的名字。在對話中輸入 /agents 可以看到目前有哪些 Subagent 可用,也可以在那裡建立新的。

三個要知道的特性

第一,它看不到你主對話的歷史。你要在交辦時把必要資訊說清楚,就像交辦外包專員一樣。第二,工具權限是真的限制,不是建議。給它唯讀工具,它就是改不了檔案,這對稽核類任務特別重要。第三,Subagent 不能再派 Subagent,分工只有一層,所以不要設計太複雜的層級。

三者怎麼選:一張選擇表

  • Claude 連續兩次犯同樣的錯:寫進 CLAUDE.md。這是每次都要遵守的規則。
  • 你第三次貼同一段多步驟指令:做成 Skill。可重複的流程,需要時才載入。
  • 某類任務需要讀很多檔案,把主對話塞爆:做成 Subagent。隔離空間,只回傳結果。
  • 某項任務必須限制權限,例如只能讀不能改:做成 Subagent 並限制 tools。權限限制在 Subagent 層才是強制的。
  • 想把一套流程分享給不用終端機的同事:做成 Skill 打包成 .skill。Skill 可以在桌面版上傳使用。
  • 希望某件事每次都自動執行,不靠 Claude 判斷:用 Hooks。Hooks 是固定觸發的指令,不是給 Claude 參考的文字。
  • 要連公司的資料庫、Slack、ERP:用 MCP。這是外部連線,不是流程說明。

一個常用的組合是「Skill 寫流程,Subagent 負責執行其中需要隔離的那一段」。例如文件稽核的 Skill 寫明整個流程,其中「逐份比對規範」這一步派給唯讀的 Subagent 去做,主對話只拿到問題清單。

什麼情況先不要設定

不是每個人一開始就該建這三種檔案。以下情況建議先用純對話,等需求出現再加:

  • 你還在摸索 Claude Code 能做什麼。前兩週直接對話就好。你會自然發現哪些話一直在重講,那些才值得寫成檔案。
  • 流程本身還沒定型。把一個每週都在改的流程寫成 Skill,等於每週都要維護兩份東西。流程穩定了再寫。
  • 只有你一個人用,而且任務都很小。Subagent 的價值在隔離和分工,單人處理小任務時,多一層交辦反而慢。

反過來說,一旦流程會交給同事、會碰到公司文件或有後果的動作,就該開始用 CLAUDE.md 定規則、用 Skill 固定流程、用 Subagent 限制權限。

從零開始的建議順序

如果你被指派「研究一下公司怎麼用 Claude」,建議這樣排:

  1. 第一週:只建 CLAUDE.md。寫三到五條你最在意的規則,例如回覆語言、檔案放哪、哪些資料夾不能動。觀察 Claude 有沒有照做。
  2. 第二週:挑一個最常重複的流程做成 Skill。從低風險的開始,例如整理會議紀錄、產出固定格式的報告。描述欄位多花點時間寫。
  3. 第三週起:遇到權限或空間問題再加 Subagent。典型的訊號是「這個任務要讀很多檔案」或「我不希望它有改檔案的能力」。
  4. 每做一個檔案,記下同事用起來的問題。這些回饋就是下一版要改的地方。

我們自己怎麼用

這篇文章本身就是用我們內部的一個 Skill 產出的。那個 Skill 負責帶著撰稿者從選題、客群、關鍵字一路走到產出與 SEO 收尾,流程說明放在 SKILL.md,品牌立場、客群描述、SEO 檢查清單各自拆成參考檔,需要哪個階段才讀哪一份。整個 Skill 打包成一個 .skill 檔,同事在 Claude 桌面版上傳就能用,不需要碰終端機。

這個做法的好處是流程會累積。每寫完一篇,我們會留一筆回饋紀錄,記下這次哪些選擇被改掉,累積幾篇後再回頭修 Skill 的規則。缺點也很明確:流程還在調整的頭幾篇,維護 Skill 的時間比直接寫文章多。這跟上一節的建議是一致的,流程穩了再寫成檔案。

常見問題

不會寫程式也能設定這三種檔案嗎?

可以。CLAUDE.md、SKILL.md 和 Subagent 檔案都是純文字 Markdown,用記事本就能編輯。唯一要習慣的是檔案開頭那段用三個連字號包起來的設定格式,照範例改名字和描述即可。

Skill 和 Subagent 到底差在哪?常常搞混。

Skill 是「一份指令」,載入到目前的對話裡,由主 Agent 自己執行。Subagent 是「另一個執行者」,有自己的對話空間和權限,做完才回報。要限制權限或隔離大量檔案時用 Subagent,單純要重複一套做法時用 Skill。

CLAUDE.md 可以寫很長嗎?

技術上可以,但不建議。它每次對話都會載入,寫太長會占用額度,規則一多 Claude 也容易漏掉。官方建議在 200 行內。長篇的流程說明請拆成 Skill。

公司的機密文件可以讓 Subagent 讀嗎?

Subagent 和主 Agent 用的是同一個 Claude 服務,資料安全的規則是一樣的,不會因為用了 Subagent 就比較安全或比較不安全。Subagent 的 tools 限制能防止它改檔案,但不是資安邊界。機密文件的處理方式要回到公司對 AI 服務的整體政策來看。

下一步

如果你今天只做一件事,建議在你最常用的專案裡建一個 CLAUDE.md,寫下三條你已經跟 Claude 重複講過的規則。這五分鐘的動作會讓你立刻感受到「設定檔」和「每次重講」的差別,之後要不要做 Skill 和 Subagent,自然就有判斷依據。Skill 建好之後,可以再看Skill 寫好之後的 8 點檢查方式。

如果你正在替公司評估怎麼把現有流程交給 Claude,或已經建了幾個 Skill 但同事用起來總是卡住,歡迎跟我們聊聊。我們會先看你的流程,再判斷哪些該進 CLAUDE.md、哪些該做成 Skill、哪些需要隔離成 Subagent。

預約一次流程諮詢

參考資料:Claude Code 官方文件 Subagents、Skills、Memory(CLAUDE.md)、Features overview。檔案位置與欄位名稱以 2026 年 10 月的官方文件為準,日後可能調整。

相關文章