Claude Codeメモリ機能の使い方|AIに永続的な文脈を記憶させる5つの実践例

🌐 Read this article in English

🧠
忘れないAI。
「前にこう言ったよね」が通じる相棒。

Claude Codeの公式情報はAnthropic公式ドキュメントを参照。MCPの仕様はModel Context Protocol公式サイトで確認できる。

普通のAIチャットは、会話が終わったら全部忘れてしまう。しかし、Claude Codeのメモリシステムを使えば、会話をまたいで文脈を持ち越せる。つまり、「前にこう言ったよね」が通じるAIアシスタントを実現できる。

この記事では、Claude Code memoryの仕組みから具体的な設定方法、そして実際に運用しているメモリの内容まで詳しく解説する。

目次

Claude Code memoryの仕組み

Claude Code memoryシステムの概念図
会話をまたいで文脈を記憶するClaude Codeのメモリシステム

Claude Code memoryはファイルベースのシンプルな仕組みだ。特別なデータベースや外部サービスは不要で、Markdownファイルとして保存される。

.claude/projects/<project-dir>/memory/
├── MEMORY.md          # インデックス(目次)
├── user_profile.md    # ユーザー情報
├── feedback_*.md      # フィードバック記録
├── project_*.md       # プロジェクト情報
└── reference_*.md     # 外部リソース参照

MEMORY.mdは全メモリファイルへのリンクを集約したインデックスだ。Claude Codeは毎回の会話開始時にこのインデックスを自動で読み込み、必要に応じて個別のメモリファイルを参照する。したがって、すべての会話でユーザーの好みやプロジェクト情報が反映される。

📊 メモリ読み込みフロー

graph TD Start[会話開始] ==> Load[MEMORY.md 読み込み] Load ==> Scan[関連メモリ判定] Scan ==> U[user] Scan ==> F[feedback] Scan ==> P[project] Scan ==> R[reference] U ==> Apply[会話に反映] F ==> Apply P ==> Apply R ==> Apply Apply ==> Conv[最適化された応答] Conv ==>|新しい学び| Save[メモリ保存] Save ==> Load style Start fill:#4a90d9,stroke:#fff,color:#fff style Apply fill:#27ae60,stroke:#fff,color:#fff
👤
user
あなた自身の情報。役割・好み・基本情報
📝
feedback
行動指針。一度言えば二度と繰り返さなくていい
📋
project
進行中の作業コンテキスト。コードから読めない文脈

4つのメモリタイプ

Claude Code memoryには4つのタイプがあり、それぞれ異なる用途に使われる。

1. user — ユーザー情報

AIに覚えておいてほしい自分自身の情報を保存する。たとえば、役割、スキルレベル、作業の好みなどが含まれる。

  • 使う言語はPython優先
  • レストランは口コミ重視で選ぶ
  • 予約に必要な基本情報(名前、生年月日、住所)

このメモリがあることで、AIの提案内容が自分に最適化される。その結果、毎回同じ説明を繰り返す必要がなくなる。

2. feedback — 行動指針とフィードバック

「こうしろ」「こうするな」というAIへの明確なフィードバックを記録する。一度言えば二度と繰り返す必要がないのが最大のメリットだ。

自分が実際にClaude Code memoryに保存しているフィードバック例:

  • 推測で答えるな、まず調べてから答えろ
  • ブラウザ自動化はk-chrome MCPを最優先で使え
  • LINE送信は必ず送信前に確認を取れ
  • 一時ファイルは作業後に必ず削除しろ
  • ポーリング中は「止めましょうか?」と聞くな、止めろと言われるまで続けろ
  • トークン節約を意識しろ(サブエージェント委任、部分読みなど)

各フィードバックにはWhy(理由)How to apply(適用方法)を併記する。理由がわかっていれば、AIはエッジケースでも適切に判断できる。たとえば「ポーリングを止めるな」というルールの理由に「過去に自動停止したせいで重要な返信を見逃した」と書いておけば、AIはその重要性を理解して厳密に守ってくれる。

3. project — プロジェクト情報

進行中の作業や案件の文脈情報を保存する。コードやgit履歴からは読み取れない情報をここに記録する。

  • 家計管理アプリの目標と現在の進捗状況
  • 進行中の問い合わせ案件のステータスと経緯
  • 予約済みの旅行の詳細情報

プロジェクトメモリは変化が早いため、定期的な更新が重要だ。古い情報が残っていると、AIが誤った前提で作業してしまう可能性がある。

4. reference — 外部リソースの参照先

外部システムやドキュメントの参照先を記録する。たとえば、特定の設定手順が記載されたドキュメントの場所や、サポート窓口の連絡先などだ。

メモリファイルの書き方

各メモリファイルはYAML frontmatter付きのMarkdown形式で記述する:

---
name: feedback_browser_automation
description: ブラウザ自動化MCPの使い分けルール
type: feedback
---

k-chrome MCPを最優先で使用する。

**Why:** 既存Chromeプロファイルのログイン状態を維持できるため
**How to apply:** ブラウザ操作が必要な場面では、まずk-chromeを試す

frontmatterのname・description・typeフィールドは、Claude Codeがメモリの関連性を判断する際に使用される。したがって、descriptionは具体的かつ簡潔に書くことが重要だ。

MEMORY.md(インデックス)の管理方法

MEMORY.mdはメモリファイルの一覧を管理するインデックスだ。各エントリは1行、150文字以内に収める:

# Memory Index

## ユーザー情報
- [user_profile.md](user_profile.md) — 予約用基本情報

## フィードバック
- [feedback_browser_automation.md](...) — MCP使い分けルール
- [feedback_line_messaging.md](...) — LINE送信は確認必須
- [feedback_performance.md](...) — トークン節約5原則

セマンティックにカテゴリ分けして、全体を200行以内に収めるのがベストプラクティスだ。これを超えるとClaude Codeの読み込み時にトークンを無駄に消費してしまう。

💡 メモリに保存すべきもの vs すべきでないもの

✅ 保存すべき:

  • ユーザーの好み・作業スタイル(「Python優先」「口コミ重視」)
  • 明示的なフィードバック(「推測するな」「ポーリング止めるな」)
  • コードから読み取れないプロジェクト背景(「法務要件で認証方式変更中」)
  • 外部リソースの場所(「バグはLinearのINGESTプロジェクトで管理」)

❌ 保存すべきでない:

  • コードから導出できる情報(アーキテクチャ、ファイルパス)
  • git履歴から分かること(誰が何を変更したか)
  • 一時的な作業状態(今のデバッグ内容)
  • CLAUDE.mdに既に書いてあること

メモリの棚卸し — 定期的なメンテナンス

Claude Code memoryは増える一方だと品質が劣化する。そのため、定期的な棚卸しが不可欠だ。具体的には、古くなったメモリ、重複する内容、コードやgit履歴から導出できる情報を削除する。

自分の場合、一度32ファイルあったメモリを17ファイルに整理したことがある。半分近くが不要だった。この経験から、月に一度はメモリの棚卸しを行うようにしている。

メモリの棚卸し基準は以下のとおり:

  • 削除対象 — コードから導出可能な情報、完了済みプロジェクト、古い日付のメモリ
  • 統合対象 — 同じテーマの複数メモリ、重複する内容
  • 更新対象 — 状況が変化したプロジェクトメモリ

次回予告

次回はスケジュール実行編。cronのように定期実行されるタスクの設定方法と、実際に自動化している定期ジョブの詳細を紹介する。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次