Waterson / AI & 工程部落格
Read in English

Claude Code 三層架構:CLAUDE.md / Memory / Skills

我們如何整理 memory、skills 和專案指令,讓 token 消耗減少 35%,新成員加入不需要任何教學。

作者:Waterson AI Team  ·  2026 年 4 月 9 日  ·  閱讀約 8 分鐘

重點一覽

問題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 使用的方法:三層架構

第一層:CLAUDE.md → 每次對話都讀取(約 800 tokens)
第二層:Memory(MEMORY.md) → 精簡索引,只放指標(約 200 tokens)。例如:「寫文章 → 用 /publish-article」,一行就夠
第三層:Skills(SKILL.md) → 完整手冊,只有被觸發時才載入

核心洞見:不是所有 context 都需要隨時載入。把「永遠相關」和「偶爾相關」分開,讓 AI 在需要時才按需載入後者。

第一層:CLAUDE.md(永遠載入)

這是 AI 的「入職指南」。任何人在專案目錄開啟 Claude Code,AI 都會自動讀取這個檔案。它是你的團隊與 AI 之間的約定。

CLAUDE.md 裡放的是最核心的兩件事

其他所有東西(詳細工作流程、參考資料、個人偏好)都不放這裡——放到 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 只應該包含四種資訊:

  1. 行為規則——每條 3-5 行。AI 應該如何配合你工作。
  2. Skill 指標——每個一行。「遇到 X 情況,用 /skill-y」。
  3. 設計偏好——簡短。UI 風格、程式碼慣例。
  4. 專案索引——連結到詳細檔案,不是詳細內容本身。
# 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
最常見的錯誤:把完整的 API 文件、步驟流程或參考資料直接放進 memory 檔案。這些東西應該放在 skill/references/,只有該 skill 被觸發時才載入。

第三層:Skills(由 CLAUDE.md 觸發載入)

Skill 裡面放的是完整的工作流程——可以很長、很詳細,因為平常不會被載入。只有當 CLAUDE.md 的意圖偵測判斷「現在需要這個 skill」時,才會讀進來。

三層怎麼串在一起?

💬
你說了一句話
「幫我寫一篇文章」
📄
CLAUDE.md 比對
意圖偵測表判斷
📋
Memory 查指標
「寫文章 → /publish」
Skill 載入
12 角色分工啟動
🚀
團隊開工
你只說了一句話
.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.
---

我們用這套架構做到了什麼?

5 門AIA 建築師課程
284 張投影片
7 篇Blog 文章
42 個AI Agent 並行工作

兩天完成。一個人操作。

延伸閱讀

本文聚焦在三層架構的設定。進階主題請參考:

與業界最佳實踐的對照

我們的三層架構與 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 檔案提供下載。

下載模板 →
關於本文:由 Waterson USA AI 團隊根據實際使用經驗整理,涵蓋使用 Claude Code 管理 5 門 AIA CEU 課程、20 篇以上部落格文章、跨多個專案 25 個以上 skills 的第一手經驗。本文描述的框架目前正在 watersonusa.ai 的正式環境中運行。

系列文章

更多歷史版本和 Factory 資料:OGSM 範例 · Factory 迭代紀錄