Claude Code · Anatomy DOC—CC/ADK · five-layer-stack REV 2026·05·06 · a
— The Agent Development Kit · Five Layers —

Claude Code/五層架構

Compiled by 2026·05·06 STATUS · ANATOMY
AGENT DEV KIT 5 layers // 5 distinct problems LLMs alone can't solve // 4 of 5 have nothing to do with prompting
5
Layers
4 / 5
Non-Prompt
2
Wrappers
5
Hook Events
Plugins
figure 00 · thesis Five
layers.
Most
only open
one.

Claude Code 出貨的不是「一個 CLI」,是五層架構。多數工程師只開了第一層——把它當聊天視窗。但這個工具被設計成 Agent Development Kit:每一層在解一個 LLM 自己解不了 的問題,而且五層裡有四層跟提示詞無關

由內而外:CLAUDE.md(記憶)→ Skills(知識)→ Hooks(護欄)→ Subagents(委派)→ Plugins(散布)。再往外是 MCP Servers 與 Agent Teams 兩個包覆層。多數 production 失敗,都能追溯到某一層被跳過。

這份報告把五層各拆一個 stage,配一張 hero 解剖圖、一條一行式 stack flow 與 Hook 事件序列,看完問自己一句話:哪一層是我目前 setup 的缺口?

FIVE-LAYER STACK · INSIDE → OUTSIDE MCP SERVERS github · db · api · custom AGENT TEAMS parallel · message-passing · shared perms L1 · MEMORY CLAUDE.md Always loaded · 規則、命名、map · ~/.claude (global) + .claude (project) // constitution L2 · KNOWLEDGE Skills SKILL.md · runtime match by description · isolated subagent fork · on-demand // modular expertise L3 · GUARDRAIL Hooks deterministic shell · NOT AI · PreToolUse → PostToolUse → SessionStart → Stop // infra-level quality L4 · DELEGATION Subagents own context · own model · own tools · main delegates ↓ results return ↑ // hard boundaries L5 · DISTRIBUTION Plugins bundle skills + agents + hooks + commands · one install · whole team inherits // npm-for-behavior rules → expertise → quality → delegation → distribution CLAUDE.md → SKILLS → HOOKS → SUBAGENTS → PLUGINS
stack ↓ CLAUDE.md Skills Hooks Subagents Plugins
五個層級由內而外。左側 MCP Servers 把外部資源(GitHub / DB / API)接進來;右側 Agent Teams 把工作橫向擴散到多個 agent 平行執行。每層解一個 LLM 自己做不到的問題。
01/05
— Layer 01 · Memory
CLAUDE.md — agent 的 constitution
永遠載入、永遠 active 的最底層上下文。架構規則、命名慣例、測試期待、repo map 一次寫好——再也不需要在每次 session 前複製貼上。
// ALWAYS LOADED

多數人把 CLAUDE.md 當成「我這次 session 想叫 Claude 注意的事」。錯了——它是 agent 的 constitution,是永遠載入、永遠 active 的最底層 context。

正確內容:架構決策、命名慣例、測試期待、repo 結構地圖、避雷清單。寫一次,之後每次 session 自動套用——不再有「我又得提醒它」的循環。

兩個 scope 配合使用:~/.claude/CLAUDE.md 是個人或公司全域守則(語氣、語言、安全紅線),.claude/CLAUDE.md 是 repo 內專案守則(架構、慣例、術語)。專案那層放進 git,整隊共享同一份憲法。

▸ 01
解決的問題「上下文要重複輸入」「每次 session 又要重新對齊」——LLM 沒有持久記憶,這層補。
PERSISTENCE
▸ 02
兩個 scope~/.claude/CLAUDE.md = global · .claude/CLAUDE.md = project(進 git)。
DUAL SCOPE
▸ 03
該寫什麼架構規則、命名、測試標準、避雷、repo map、語氣語言偏好。
CONTENT
▸ 04
不該寫什麼一次性指令、目前 task 內容、具體 issue 編號——那是 prompt 的事。
AVOID
02/05
— Layer 02 · Knowledge
Skills — 用 description 動態 fork 出專家副本
每個 SKILL.md 都帶一行 description。Claude 在 runtime 對照當前任務,匹配的話就 fork 一個隔離 subagent 載入該 skill。on-demand、不擠主 context。
// ON-DEMAND

Skills 是「按需載入的領域知識包」。每份 SKILL.md 開頭有一行 description,描述「這份 skill 解決什麼問題、什麼情境該觸發」。

Runtime 時 Claude 會比對當前任務 vs. 所有 skill 的 description,匹配上才會 fork 一個隔離的 subagent 載入該 skill,不匹配的根本不進主 context。

結果:主 context 永遠瘦,但你可以擁有上百個高度專精的 skill 待命——做圖時用 frontend-design skill、寫文檔時用 doc-coauthoring skill、debug 時用 systematic-debugging skill。模組化由設計決定,不靠人記得。

▸ 01
解決的問題所有專長塞主 context 會爆 → on-demand match 解套。
CONTEXT BLOAT
▸ 02
觸發機制SKILL.md 的 description 當 router;Claude runtime 自己決定要不要 invoke。
DESCRIPTION-MATCH
▸ 03
隔離方式每次 invoke 都 fork 出獨立 subagent,跑完回主執行緒回報結果。
FORK / ISOLATE
▸ 04
設計原則每張 skill 解一個明確問題,description 寫得越精準,runtime 命中率越高。
MODULAR
03/05
— Layer 03 · Guardrail
Hooks — deterministic shell, NOT AI
大家最常跳過、然後最早後悔的一層。Hooks 不是 AI——是事件驅動的 shell command。Event 觸發 → Matcher 比對 → Command 執行。品質從基礎建設層強制執行,而不是從提示詞層。
// EVENT-DRIVEN

Hooks 是最被低估的一層。它不是 AI——是 deterministic 的 event-driven shell command。每次特定事件發生(PreToolUse、PostToolUse、SessionStart、Stop、SubagentStop),harness 會跑一次比對,符合 matcher 的 hook 就執行。

典型用途:每次 Write 自動 lint硬擋 rm -rfStop 後丟一條 Slack 通知。這些品質約束跟 LLM 說了沒用——它記得就會做、不記得就不做。Hooks 把它下沉到基礎建設:不靠模型自律,靠 harness 強制。

跳過這層的代價:production 出意外的時候,你會發現「明明 prompt 裡寫了不要 X」根本擋不住——因為 prompt 是 soft constraint,hook 才是 hard。

▸ 01
本質deterministic event-driven shell command,不是 LLM 判斷。
NOT AI
▸ 02
執行流Event 觸發 → Matcher 比對 → Command 執行 → 失敗時可硬擋。
FIRE → MATCH → RUN
▸ 03
典型用途auto-lint、rm-rf 阻擋、Slack 通知、test on commit、secret scan。
EXAMPLES
▸ 04
為何重要把品質從 prompt-level 下沉到 infra-level——靠流程而非靠記得。
INFRA-LEVEL
// hook events · 5 lifecycle taps
PreToolUse PostToolUse SessionStart Stop SubagentStop
04/05
— Layer 04 · Delegation
Subagents — 委派下去,結果回上來
每個 subagent 有自己的 context window、model、tools、permissions。主 agent 委派下去,收回結果上來——subagent 不能再 spawn subagent,主 context 永遠乾淨。
// HARD BOUNDARIES

Subagents 解決的是「大任務拆小、平行跑、別污染主 context」。每次 spawn 一個 subagent,它得到自己的 context window、自己的 model(可以選不同等級)、自己的 tool set、自己的權限白名單。

架構規則只有兩條:主 agent 委派下去、subagent 回報上來。subagent 不能再 spawn subagent——硬擋無限遞迴,避免 fork bomb 式失控。

實務上這讓你能做:探索性 search 開一個、跑測試開一個、寫 PR description 開一個,三個平行跑,結果在主 agent 收斂。主 context 不會被中間搜尋雜訊塞滿,token 預算守得住。

▸ 01
獨立資源自己的 context · 自己的 model · 自己的 tools · 自己的 permissions。
ISOLATED
▸ 02
流向規則main → delegate ↓ · subagent → return ↑。沒有橫向通訊。
ONE-WAY
▸ 03
遞迴限制subagent 不能再 spawn subagent;硬擋無限樹狀爆炸。
NO RECURSION
▸ 04
主要好處主 context 保持乾淨、平行加速、可指派低成本 model 跑雜活。
CLEAN MAIN
05/05
— Layer 05 · Distribution
Plugins — 把整套行為一鍵裝給整個團隊
把 skills、agents、hooks、commands 整捆成一個 plugin。一次安裝,整隊立即繼承同一套行為。像 npm package——只是它管的不是函式,是「agent 該怎麼做事」。
// NPM-FOR-BEHAVIOR

前四層解決的是「個別工程師的 agent 變強」,Plugins 解決的是「整個團隊的 agent 同步變強」。

把你寫好的一組 skills + 自定 subagents + 一批 hooks + slash commands 捆成一個 plugin,再透過 marketplace 或私有 registry 散布。隊員 install 一次,所有規則、Skill、護欄、命令全部自動就位。

類比:npm package 散布函式,plugin 散布行為。新人進團隊不用再口傳 30 條規矩——`/install our-team-plugin` 一行,他的 agent 立刻變得跟資深成員一樣有紀律。

▸ 01
封裝內容skills + subagents + hooks + slash commands,一捆走。
BUNDLE
▸ 02
安裝模型類 npm — 一次 install,所有檔案各歸各位、立即生效。
ONE-INSTALL
▸ 03
團隊效益新人 onboarding 從「口傳 30 條」變成「裝一個 plugin」,行為一致。
TEAM SYNC
▸ 04
散布管道marketplace 公開 / 私有 registry / git repo 都能當分發管道。
DISTRIBUTE
— ANATOMY / TAKEAWAY —

規則·專家·護欄·委派·散布

五層各自解一個 LLM 自己解不了的問題——記不住、什麼都不能裝、靠提示守不住底線、context 會爆、行為散在每個人腦子裡。多數 production 失敗都能追溯到某一層被跳過:以為 CLAUDE.md 是「session 開頭貼的東西」、以為 hooks 是「以後再說的功能」、以為 subagents 是「進階用法」。一行 stack:CLAUDE.md 設規則 → Skills 提供專長 → Hooks 強制品質 → Subagents 委派工作 → Plugins 散布給團隊

— 哪一層是你目前 setup 的缺口?
Further Reading 延伸閱讀