← フック エージェント →

06 メモリ — セッションを超えた記憶


メモリとは

Claude Codeはセッションを超えて記憶を保持する仕組みを持つ。新しいセッションを開始しても、前回の文脈の一部を引き継げる。


graph TD subgraph "🧠 メモリシステム" AUTO["Auto Memory
~/.claude/projects/"] USER["User Memory
~/.claude/CLAUDE.md"] PROJ["Project Memory
repo/CLAUDE.md"] IDX["MEMORY.md
インデックス"] end AUTO --> T1["user: 役割・目標"] AUTO --> T2["feedback: 指導"] AUTO --> T3["project: 決定事項"] AUTO --> T4["reference: 外部参照"] IDX --> AUTO

メモリの種類

Auto Memory(自動メモリ)

Claude Codeが自動的に保存するプロジェクト単位の記憶。

記録される内容の例:

User Memory(ユーザーメモリ)

~/.claude/CLAUDE.md に記述されたルール。

Project Memory(プロジェクトメモリ)

各リポジトリの CLAUDE.md に記述されたルール。

MEMORY.md(インデックス)

Auto Memoryの目次ファイル


メモリの4つのタイプ

Auto Memoryには4つのタイプがある。

タイプ 説明 保存タイミング
user ユーザーの役割・目標・知識レベル ユーザー情報を学んだ時
feedback ユーザーからの指導(「こうして」「これはやめて」) 指摘・確認を受けた時
project プロジェクトの状況・決定事項 重要な決定をした時
reference 外部システムへのポインタ 外部リソースを知った時

メモリのライフサイクル

セッション開始
  │
  ├─ MEMORY.md を読み込み(インデックス)
  ├─ 関連するメモリファイルを読み込み
  │
  ▼
セッション中
  │
  ├─ 新しい情報を学ぶ → メモリに保存すべきか判断
  ├─ ユーザーからフィードバック → feedback メモリに保存
  ├─ プロジェクトの決定 → project メモリに保存
  │
  ▼
セッション終了
  │
  └─ 保存されたメモリは次回セッションで利用可能

メモリの管理

確認

保存

削除

注意点


CLAUDE.mdの3層構造(Instruction Memory)

CLAUDE.md(User/Project Memory)は3層構造で運用すると、肥大化と「読むか怪しい間接リンク」のジレンマを解決できる(Z.AIベストプラクティス準拠)。

場所 読み込み 役割
層1 常時展開 CLAUDE.md + rules/_shared/ セッション起動時に全プロジェクトで自動 核心ルール・共通ルール原本
層2 パススコープ rules/*.md(frontmatter globs 該当ファイル操作時に自動 言語/作業別ルール
層3 スキル/参照 skills/ + 参照資料 トリガー/強指示 スキル・詳細参照

層1の一元管理(@import)

共通ルール(セキュリティ・コーディング原則・記録・LLMルーティング)は rules/_shared/ に1箇所まとめ、グローバルCLAUDE.mdから @import で取り込む。

層2のパススコープ(globs)

rules/*.md のfrontmatterに globs: ["**/*.py"] のように指定すると、該当拡張子のファイル操作時にだけ読み込まれる。Python・Dart・TypeScript等、言語別ルールを必要な時だけ自動ロードできる。

設計原則

  1. 200行以下 — メインCLAUDE.mdは核心のみ(展開後も維持)
  2. 具体命令化 — 「詳細: 〇〇.md参照」より @import常時展開が確実
  3. パス指定ロード — 言語別ルールは層2(必要時だけ)
  4. Instruction vs Learning分離 — CLAUDE.md(人間が書く)と memory/(AI蓄積)を混在させない

💡 やさしい補足(初心者向け)