☕ NEW! 完成新手任務即可參加抽獎!LINE 星巴克禮券等你拿,名額有限!        🎉 推廣活動:邀請好友註冊 DevLearn,累積推薦抽 LINE 星巴克禮券! 活動詳情 →        🔥 活動期間 2026/4/1 - 5/31 |已有 0 人參加       
AI 應用 中級

CLAUDE.md 與 AI 記憶系統

為什麼 AI 每次對話都會「失憶」?

💡 比喻:金魚的記憶 每次你開一個新的 AI 對話,就像跟一條金魚說話—— 它完全不記得上次你們聊了什麼。 你上次花了 30 分鐘解釋專案架構,這次又要重新來一遍。

CLAUDE.md 就是給金魚裝了一個小抄本, 每次對話開始前,它會先讀小抄,瞬間回憶起所有重要的事。

AI 的記憶問題

對話 1:"我的專案用 .NET 8 + SQLite + EF Core"
對話 2:"我的專案是什麼技術棧?" → AI:"我不知道"
對話 3:"幫我加一個功能" → AI:"你的專案是什麼?用什麼框架?"

每次都要重新解釋 = 浪費時間 + 浪費 Token

解決方案就是 記憶系統。Claude Code 有三層記憶架構,讓 AI 越用越聰明。


第一層:CLAUDE.md(專案級永久記憶)

CLAUDE.md 是放在專案根目錄的檔案,每次開啟 Claude Code 時會自動載入

為什麼 CLAUDE.md 這麼重要?

沒有 CLAUDE.md:
每次對話都要重新解釋 → 浪費 Token、浪費時間

有 CLAUDE.md:
自動載入 → AI 馬上知道你的專案 → 直接開始工作
而且 CLAUDE.md 有快取機制,幾乎不花 Token!

CLAUDE.md 放什麼?

適合放穩定不常變動的資訊:

# GuitarSchool 專案

## 技術棧
- .NET 8 + ASP.NET Core MVC
- SQLite + Entity Framework Core
- Bootstrap 5 + 自訂 CSS
- 部署:Railway(Docker)

## 專案架構

GuitarSchool/ ├── Controllers/ # MVC Controller ├── Models/ # 資料模型 ├── Views/ # Razor View ├── Data/ # DbContext + Seed Data ├── wwwroot/css/ # 樣式表 └── Program.cs # 應用程式進入點


## CSS 變數(統一色系)
```css
:root {
  --bg-warm: #F5F1EB;      /* 暖米色背景 */
  --text-dark: #2C3E50;     /* 深色文字 */
  --accent: #E67E22;        /* 橘色強調 */
  --accent-hover: #D35400;  /* 橘色 hover */
}

部署指令

docker build -t guitarschool .
railway up

注意事項

  • View 裡的文字全部用繁體中文
  • 不用 Repository Pattern,直接用 DbContext
  • CSS 用 BEM-like 命名(.card-guitar, .btn-primary-warm)
  • 所有 action 用 async/await

### CLAUDE.md 的快取機制

第一次對話:載入 CLAUDE.md → 花少量 Token 讀取 第二次對話:CLAUDE.md 沒變 → 從快取讀取 → 幾乎 0 Token! 修改後: 偵測到變動 → 重新載入 → 更新快取

這就是為什麼 CLAUDE.md 是最省 Token 的記憶方式。


### CLAUDE.md 的位置

專案根目錄的 CLAUDE.md → 這個專案的所有對話都會載入 ~/.claude/CLAUDE.md → 全域設定,所有專案都會載入

建議:專案特定的放專案根目錄,通用偏好放全域


---

## 第二層:Auto Memory(動態自動記憶)

> 💡 **比喻:秘書的筆記本**
> 如果 CLAUDE.md 是「公司手冊」(正式、穩定),
> Auto Memory 就是「秘書的筆記本」(隨時記錄、動態更新)。
> AI 會自動判斷哪些資訊值得記住,存到筆記本裡。

### Auto Memory 怎麼運作?

位置:~/.claude/projects/<你的專案路徑>/memory/

結構: memory/ ├── MEMORY.md # 索引檔(列出所有記憶) ├── preference-001.md # 記憶:用戶喜歡用 tab 縮排 ├── workflow-002.md # 記憶:部署流程是 build → test → push └── context-003.md # 記憶:正在做購物車功能


### 什麼會被自動記住?

AI 會自動記住:

  • 你的偏好("我喜歡用 4 空格縮排")
  • 重複的指示("不要用 var,用明確型別")
  • 進行中的工作("我們正在做第三章的內容")
  • 常見的操作("每次改完 code 都要跑 dotnet build")

AI 不會記住:

  • 一次性的對話內容
  • 太瑣碎的細節
  • 跟專案無關的閒聊

### Auto Memory vs CLAUDE.md 的差別

特性 CLAUDE.md Auto Memory ────────────────────────────────────────────────── 維護方式 你手動寫 AI 自動存 載入時機 每次對話自動載入 按需讀取 Token 消耗 有快取,幾乎 0 讀取時花 Token 適合內容 穩定的專案資訊 動態的偏好和進度 位置 專案根目錄 ~/.claude/projects/.../memory/


---

## 第三層:Memory MCP(跨專案知識圖譜)

> 💡 **比喻:公司的知識庫**
> CLAUDE.md 是「部門手冊」(只給這個專案用),
> Auto Memory 是「個人筆記」(動態記錄),
> Memory MCP 就是「公司知識庫」(所有專案都能查、跨專案共享)。

### Memory MCP 怎麼運作?

Memory MCP 是一個 **知識圖譜(Knowledge Graph)**,用「實體」和「關係」來儲存知識。

實體(Entity):

  • 名稱:"GuitarSchool"
  • 類型:"Project"
  • 觀察:["用 .NET 8", "部署在 Railway", "暖米色系"]

關係(Relation):

  • GuitarSchool → uses → "SQLite"
  • GuitarSchool → deployed_on → "Railway"
  • User → prefers → "繁體中文"

### 設定 Memory MCP

在 `~/.claude/settings.local.json` 加上:

```json
{
  "mcpServers": {
    "memory": {
      "command": "cmd",
      "args": ["/c", "npx", "-y", "@anthropic-ai/memory-mcp"]
    }
  }
}

Memory MCP 的用法

> 幫我記住:我所有的專案都用 4 空格縮排,不用 tab

AI 會自動呼叫 Memory MCP 存入:
Entity: "UserPreference_Indentation"
Type: "CodingPreference"
Observations: ["使用 4 空格縮排", "不使用 tab"]

以後在任何專案,AI 都會記得這個偏好。

三層記憶架構設計

┌─────────────────────────────────────────────────┐
│           CLAUDE.md(第一層)                      │
│     快取 ≈ 0 Token → 穩定資訊                     │
│     專案架構、部署指令、CSS 變數、技術棧             │
├─────────────────────────────────────────────────┤
│           Auto Memory(第二層)                    │
│     按需讀取 → 動態偏好                            │
│     用戶偏好、進行中的工作、常用操作                  │
├─────────────────────────────────────────────────┤
│           Memory MCP(第三層)                     │
│     查詢用 → 跨專案知識                            │
│     通用偏好、跨專案經驗、歷史決策                   │
└─────────────────────────────────────────────────┘

最省 Token 的設計原則

1. 穩定資訊放 CLAUDE.md(快取 ≈ 0 Token)
   → 技術棧、專案架構、部署指令

2. 動態偏好靠 Auto Memory(按需讀取)
   → AI 自動管理,不用手動維護

3. 跨專案知識用 Memory MCP(查詢才花 Token)
   → 通用偏好、經驗累積

實際範例:設計一個完整的 CLAUDE.md

以下是一個真實專案的 CLAUDE.md 範例:

# DotNetLearning 專案

## 專案概述
一個 .NET 學習平台,提供互動式教學內容和測驗。

## 技術棧
- .NET 8 + ASP.NET Core MVC
- SQLite + Entity Framework Core 8
- Bootstrap 5.3 + 自訂 CSS
- Markdig(Markdown 渲染)

## 架構
- Controllers/:MVC Controller(Home, Chapter, Question)
- Models/:Chapter, Question, UserProgress
- Views/:Razor View(_Layout 用 Bootstrap)
- Data/:ApplicationDbContext + SeedChapters_*.cs

## 開發指令
```bash
dotnet build                    # 編譯
dotnet run                      # 啟動(https://localhost:5001)
dotnet ef database update       # 更新資料庫
dotnet ef migrations add XXX    # 新增 migration

程式風格

  • async/await 所有資料庫操作
  • 不用 Repository Pattern
  • View 文字用繁體中文
  • 中文註解在每行 code

部署

  • 平台:Railway
  • Dockerfile 在根目錄
  • 環境變數:ASPNETCORE_ENVIRONMENT=Production

### 設計重點

✅ 簡潔:只放最重要的資訊 ✅ 結構化:用 Markdown 標題分類 ✅ 可執行:部署指令可以直接複製使用 ✅ 不超過 200 行:太長會被截斷

❌ 不要放:程式碼片段(太長) ❌ 不要放:對話歷史(不穩定) ❌ 不要放:暫時性的 TODO(用 Auto Memory)


---

## 🤔 常見錯誤

### 錯誤 1:把所有東西塞進 CLAUDE.md

❌ CLAUDE.md 塞了 500 行 → 超過 200 行可能被截斷 → 太多雜訊反而讓 AI 找不到重點

✅ 只放最穩定、最重要的資訊 → 技術棧(10 行) → 架構(15 行) → 指令(10 行) → 風格(10 行) → 總共不超過 100 行最佳


### 錯誤 2:記憶存重複資訊

❌ CLAUDE.md 寫了「用 .NET 8」 Auto Memory 也存了「用 .NET 8」 Memory MCP 又存了「用 .NET 8」 → 三個地方存同樣的東西,浪費又混亂

✅ 分層存放: CLAUDE.md → 專案用 .NET 8(穩定) Auto Memory → 最近在做 Chapter 5(動態) Memory MCP → 所有專案都用 4 空格縮排(跨專案)


### 錯誤 3:不維護 CLAUDE.md

❌ 專案已經從 .NET 7 升級到 .NET 8 但 CLAUDE.md 還是寫 .NET 7 → AI 會用錯誤的資訊工作

✅ 定期更新 CLAUDE.md → 技術棧升級時更新 → 架構變動時更新 → 部署方式改變時更新


---

## 本章重點整理

| 記憶層級 | 位置 | Token 消耗 | 適合內容 |
|----------|------|-----------|----------|
| CLAUDE.md | 專案根目錄 | 快取 ≈ 0 | 專案架構、技術棧 |
| Auto Memory | ~/.claude/projects/ | 按需讀取 | 偏好、進度 |
| Memory MCP | 知識圖譜 | 查詢時 | 跨專案知識 |

💡 大家的想法 · 0

載入中...
💬 即時聊天室 🟢 0 人在線
😀 😎 🤓 💻 🎮 🎸 🔥
➕ 新問題
📋 我的工單
💬 LINE 社群
🔒
需要註冊才能使用此功能
註冊帳號即可解鎖測驗、遊戲、簽到、筆記下載等所有功能,完全免費!
免費註冊