Claude Code 三層架構:CLAUDE.md / Memory / Skills
我們如何整理 memory、skills 和專案指令,讓 token 消耗減少 35%,新成員加入不需要任何教學。
重點一覽
| 問題 | Memory 檔案無限成長、context window 浪費、無法與隊友共享 AI 設定 |
|---|---|
| 解法 | 三層架構:CLAUDE.md + 精簡 MEMORY.md + 按需載入的 Skills |
| 成果 | token 消耗減少約 35%、新成員零教學 onboarding、25 個以上可重用 skills |
| 適用範圍 | 主要針對 Claude Code,但概念適用於任何 AI coding agent |
| 模板 | 下載 .md 框架模板 |
想直接用在自己的專案裡?Fork 我們的 Starter Kit,開 Claude Code 就能開始。
Fork Starter Kit →背景:為什麼需要三層架構
我們建立了一支 12 個 AI agent 並行工作的團隊,兩天完成 5 門 AIA 建築師課程、7 篇文章、284 張投影片。但隨著 agent 數量增加,memory 檔案膨脹到 5,000+ tokens,每次對話有 80% 的 context 根本用不到——我們在為一堆無關資訊付費。
解法是把 context 分成三層:永遠載入的規則、精簡的索引指標、按需載入的完整手冊。以下是具體做法。
大幅降低 Token 使用的方法:三層架構
第二層:Memory(MEMORY.md) → 精簡索引,只放指標(約 200 tokens)。例如:「寫文章 → 用 /publish-article」,一行就夠
第三層:Skills(SKILL.md) → 完整手冊,只有被觸發時才載入
核心洞見:不是所有 context 都需要隨時載入。把「永遠相關」和「偶爾相關」分開,讓 AI 在需要時才按需載入後者。
第一層:CLAUDE.md(永遠載入)
這是 AI 的「入職指南」。任何人在專案目錄開啟 Claude Code,AI 都會自動讀取這個檔案。它是你的團隊與 AI 之間的約定。
CLAUDE.md 裡放的是最核心的兩件事:
- 意圖偵測表——AI 看到你說什麼話,就知道該用哪個 skill(下面會詳細講)
- 基本規則——語言設定、內容放哪裡、部署流程等,讓 AI 不用每次重新學
其他所有東西(詳細工作流程、參考資料、個人偏好)都不放這裡——放到 Skill 或 Memory 裡,需要時才載入。
Intent Detection Table——最關鍵的創新不要要求使用者背記 slash command,直接在 CLAUDE.md 裡寫一張「行為對應 skill」的對照表:
## Behavior Rules — Proactive Skill Suggestion
Do NOT wait for slash commands. Detect user intent:
- Clear intent → auto-use the skill
- Ambiguous intent → suggest the skill
| When the user... | Auto-suggest or use... |
|-------------------------------------|------------------------|
| Discusses writing an article | /publish-article |
| Mentions deploying or uploading | /upload |
| Says "done" or "finished editing" | /upload |
| Reviews content for accuracy | /content-review |
| Is about to git push | /security-check |
AI 讀了這張表,就會主動建議正確的 skill,不需要任何記憶。這個改變消除了大約 90% 的「我不知道有這個功能」的 onboarding 摩擦。
第二層:Memory(精簡索引)
目標:所有 memory 檔案加起來不超過 4,000 tokens。
Memory 只應該包含四種資訊:
- 行為規則——每條 3-5 行。AI 應該如何配合你工作。
- Skill 指標——每個一行。「遇到 X 情況,用 /skill-y」。
- 設計偏好——簡短。UI 風格、程式碼慣例。
- 專案索引——連結到詳細檔案,不是詳細內容本身。
# Memory Index
## Behavior Rules
- [feedback_workflow.md](feedback_workflow.md) — Plan before coding, never jump straight to implementation
- [feedback_delegate.md](feedback_delegate.md) — Use sub-agents for execution, don't code directly
## Skill Pointers
- Writing articles → /publish-article
- Deploying → /upload
- Security scan → /security-check (mandatory before every push)
## Preferences
- [feedback_ui_style.md](feedback_ui_style.md) — Large fonts (16-20px), spacious layout
## Active Projects
- [projects_active.md](projects_active.md) — Links to 3 currently active projects
skill/references/,只有該 skill 被觸發時才載入。
第三層:Skills(由 CLAUDE.md 觸發載入)
Skill 裡面放的是完整的工作流程——可以很長、很詳細,因為平常不會被載入。只有當 CLAUDE.md 的意圖偵測判斷「現在需要這個 skill」時,才會讀進來。
三層怎麼串在一起?
.claude/skills/
├── CATALOG.md ← All skills overview (human + AI readable)
├── publish-article/
│ ├── SKILL.md ← Trigger conditions + operation manual
│ └── references/ ← Detailed docs, loaded when needed
├── security-check/
│ └── SKILL.md
├── aia-rewrite/
│ ├── SKILL.md
│ └── references/
│ ├── writing-guide.md
│ └── aia-standards.md
每個 SKILL.md 的 frontmatter 告訴 AI 什麼時候要載入它:
---
name: publish-article
description: Generate blog articles for watersonusa.ai. Use when the user
says "write article", "generate content", "新文章", or discusses
creating content for the website.
---
我們用這套架構做到了什麼?
兩天完成。一個人操作。
延伸閱讀
本文聚焦在三層架構的設定。進階主題請參考:
- 用 OGSM 建立 AI Agent 團隊 — 多 agent 團隊的 Objective-Goal-Strategy-Measure 架構
- 多 AI 協作:Claude + Gemini + Codex — 怎麼把工作分配給不同 AI,省錢又高效
與業界最佳實踐的對照
我們的三層架構與 2025-2026 年最新的 AI agent memory 管理模式高度吻合。以下是我們做的事情對應到研究者和從業者使用的術語:
我們已經在做的
| 技術 | 業界術語 | 我們的實作 |
|---|---|---|
| 三層分離 | Memory Tiering | CLAUDE.md + MEMORY.md + Skills |
| 索引指標 | Pointer Index System | MEMORY.md 只放一行指標 |
| 按需載入 | Progressive Disclosure / Selective Re-injection | Skills 只有被觸發時才載入 |
| 子 agent 摘要 | Sub-agent Distillation | 12 個角色 agent 向 orchestrator 回報摘要 |
| 透過 repo 共享設定 | Shared Project Config | CLAUDE.md + Skills 放在 GitHub |
| 行為觸發 | Intent Detection | CLAUDE.md 的行為對應 skill 對照表 |
接下來可以加的
| 技術 | 做什麼 | 如何實作 |
|---|---|---|
| AutoCompact | context 使用到約 92% 時自動壓縮對話 | 在 CLAUDE.md 加上:「在長對話中,主動摘要已完成的任務」 |
| AutoDream | 背景 agent 自動整理 memory(合併重複、清除過時) | 建立一個 /memory-cleanup skill 定期執行 |
| Memory Decay | 舊 memory 自動過期 | 在 memory 檔案加上日期,超過 90 天就標記為待審查 |
| MCP Integration | 從 GitHub Issues、Slack、Jira 拉取 context | 我們已經用 Supabase 做 storyboard 同步——延伸這個模式 |
| Small Model Filter | 輕量模型預先過濾 memory 相關性 | 用 Haiku 在注入 context 前評分 memory 的相關程度 |
準備好組建你的 AI 團隊了嗎?Fork Starter Kit,今天就開始。
Fork Starter Kit →常見問題
這套方法只能用在 Claude Code 嗎?
CLAUDE.md 機制是 Claude Code 獨有的。但背後的原則——精簡的永遠載入 context、按需載入的詳細文件、基於 intent 的觸發——適用於任何 AI agent 系統。你可以用 Cursor 的 rules 檔案、GitHub Copilot workspace 設定,或是自訂 system prompt 實現同樣的結構。
怎麼判斷某個東西應該放在 skill 還是留在 memory?
用這個過濾條件:如果你會把它放在交給新員工第一天就看的文件裡,它就屬於 skill。如果你會在 10 秒的口頭交接裡說它,它就屬於 memory。步驟流程、參考資料、多步驟工作流程,以及任何超過五行的東西,幾乎都應該是 skill。
Skill 變得很大怎麼辦?
這很正常,也完全沒問題。Skills 可以有 references/ 子目錄,放任意多的檔案。Skill 的 SKILL.md 扮演目錄的角色——它指定在哪些子任務中要載入哪些參考檔案。一個複雜的發布工作流程 skill 可能有 10 個參考檔案加起來好幾千行,但只有你真的在發布的時候,這些重量才會出現在你的 context 裡。
多個專案共用的 skills 怎麼處理?
Claude Code 支援兩個 skills 位置:專案層級(repo 裡的 .claude/skills/,透過 git 共享)和使用者層級(你機器上的 ~/.claude/skills/,私人的)。通用工具型的 skills,例如安全掃描或 git 操作,放在使用者層級。專案特定的 skills,例如課程改寫或文章發布,放在專案層級。
想要可以直接用在自己專案裡的 .md 模板?
完整的框架模板——包含盤點清單、MEMORY.md 結構和 SKILL.md frontmatter 格式——以獨立的 markdown 檔案提供下載。
下載模板 →系列文章
- 本文:三層架構 — CLAUDE.md / Memory / Skills 分層設定
- 用 OGSM 建立 AI Agent 團隊
- 多 AI 協作:Claude + Gemini + Codex
更多歷史版本和 Factory 資料:OGSM 範例 · Factory 迭代紀錄