
Claude Code Auto Memoryを徹底解説:セッションを超えてAIが学習する仕組み
はじめに
Claude Code v2.1.32で、セッション間の知識を自動管理するAuto Memory機能が導入されました。従来のCLAUDE.mdがユーザーが手動で書く「指示書」だったのに対し、Auto MemoryはClaudeが自分自身のために書くメモです。
プロジェクトのビルドコマンド、デバッグで発見したパターン、コードベースのアーキテクチャ上の特徴——これらをClaudeが自動的に記録し、次回のセッションで即座に活用します。この記事では、Auto Memoryの技術的な仕組みから実践的な活用方法まで詳しく解説します。
Auto Memoryの仕組み
ディレクトリ構造
Auto Memoryは、プロジェクトごとに独立したディレクトリに保存されます。
~/.claude/projects/<project>/memory/
├── MEMORY.md # インデックスファイル(毎セッション自動読み込み)
├── debugging.md # デバッグパターンの詳細メモ
├── api-conventions.md # API設計に関する知見
└── ... # Claudeが必要に応じて作成するトピックファイル
<project>パスはGitリポジトリのルートから生成されるため、同一リポジトリ内のサブディレクトリはすべて同じメモリディレクトリを共有します。Git worktreeを使っている場合は別ディレクトリが割り当てられ、Gitリポジトリ外ではカレントディレクトリがキーになります。
2層のローディング戦略
Auto Memoryの設計で特に注目すべきは、コンテキストウィンドウを無駄にしない2層のローディング戦略です。
- MEMORY.md(最初の200行): 毎セッション開始時にシステムプロンプトに自動注入される。プロジェクトの要約やトピックファイルへの参照を記載するインデックスとして機能する
- トピックファイル: 起動時には読み込まれない。Claudeが必要と判断したときに、標準のファイル読み取りツールでオンデマンドに参照する
この設計により、コアな知識の継続性を確保しつつ、貴重なコンテキストウィンドウのスペースを浪費しません。
Claudeが記録する情報
作業中にClaudeが自動的に記録する情報は、大きく4カテゴリに分類されます。
| カテゴリ | 記録例 |
|---|---|
| プロジェクトパターン | ビルドコマンド、テスト規約、コードスタイル |
| デバッグの知見 | トリッキーな問題の解決策、よくあるエラーの原因 |
| アーキテクチャノート | 重要なファイル、モジュール間の関係、主要な抽象化 |
| ユーザーの好み | コミュニケーションスタイル、ワークフローの習慣 |
CLAUDE.mdとの使い分け
Claude Codeのメモリシステム全体は、階層構造で6種類のメモリロケーションを提供しています。
| メモリタイプ | ロケーション | 管理者 | 共有範囲 |
|---|---|---|---|
| エンタープライズポリシー | /etc/claude-code/CLAUDE.md | IT/DevOps | 組織全体 |
| プロジェクトメモリ | ./CLAUDE.md | チーム | リポジトリ |
| プロジェクトルール | .claude/rules/*.md | チーム | リポジトリ |
| ユーザーメモリ | ~/.claude/CLAUDE.md | 個人 | 全プロジェクト |
| ローカルメモリ | ./CLAUDE.local.md | 個人 | 現プロジェクト |
| Auto Memory | ~/.claude/projects/<project>/memory/ | Claude | 現プロジェクト |
CLAUDE.mdは「ユーザーがClaudeに与える指示」、Auto Memoryは「Claudeが自分で書き留める学習ノート」です。両者は補完関係にあり、CLAUDE.mdで明示的なルールを定義し、Auto Memoryでプロジェクト固有の暗黙知を蓄積するのが理想的な運用です。
実践的な活用方法
/memoryコマンド
セッション中に/memoryを実行すると、ファイルセレクタが表示され、MEMORY.mdやCLAUDE.mdファイルをシステムエディタで直接編集できます。Auto Memoryのエントリポイントも選択肢に含まれます。
明示的な記憶指示
Claudeに特定の情報を記憶させたい場合は、直接指示できます。
「pnpmを使うことを覚えて」
「APIテストにはローカルのRedisインスタンスが必要なことをメモリに保存して」
「このプロジェクトではESMモジュール形式を使っていることを記憶して」
環境変数による制御
Auto Memoryは段階的にロールアウト中です。環境変数で明示的に制御できます。
# 強制的に有効化
export CLAUDE_CODE_DISABLE_AUTO_MEMORY=0
# 強制的に無効化
export CLAUDE_CODE_DISABLE_AUTO_MEMORY=1変数名が二重否定(DISABLE=0で「無効化しない」= 有効化)になっている点に注意してください。環境変数を設定しない場合は、段階的ロールアウトの対象かどうかで自動判定されます。
MEMORY.mdの運用ベストプラクティス
MEMORY.mdは200行以内に抑えるのが鉄則です。詳細な情報はトピックファイルに分離し、MEMORY.mdからリンクします。
# Project Memory
## ビルド・テスト
- ビルド: `pnpm build`、テスト: `pnpm test`
- 詳細 → debugging.md
## アーキテクチャ
- Next.js 15 App Router + Tailwind CSS
- 詳細 → architecture.md他のAIエージェントのメモリ機能との比較
「AIが自分でメモを書く」仕組みは、Claude Code だけのものではありません。2026年現在、主要な AI コーディングエージェントはそれぞれ独自のアプローチでセッション間メモリに取り組んでいます。
| ツール | 指示ファイル | AIが自動で書くメモ | 特徴 |
|---|---|---|---|
| Claude Code | CLAUDE.md | Auto Memory(memory/) | 2層ローディング、200行インデックス |
| Gemini CLI | GEMINI.md | save_memory(GEMINI.md内) | 指示ファイルの専用セクションに自動追記 |
| Codex CLI | AGENTS.md | 開発中 | 3階層の指示体系、.override.md対応 |
| Windsurf | ルール設定 | Memories | IDE統合型、ユーザー定義+自動メモリ |
| Cursor | .cursorrules | なし | Notepad機能でコンテキスト保持 |
| Cline | 外部連携 | なし | セッション内のみ、外部ツールで補完 |
Gemini CLI の save_memory
Gemini CLI は save_memory ツールで ~/.gemini/GEMINI.md の ## Gemini Added Memories セクションに自動的にファクトを追記します。Claude Code の Auto Memory と最も近いアプローチですが、メモリが指示ファイルと同居する点が異なります。Claude Code は memory/ ディレクトリとして分離し、トピックファイルによる構造化が可能です。
Codex CLI の AGENTS.md
OpenAI Codex CLI はグローバル・プロジェクト・サブディレクトリの3階層で AGENTS.md を管理します。指示体系としては最も洗練されていますが、現時点ではユーザーが手動で書く設計です。AI が自動で学習ノートを書く機能は Issue #8368 で議論中であり、正式実装はまだです。
Windsurf の Memories
Windsurf は IDE 統合型のメモリ機能を持ち、ユーザー定義メモリと自動メモリの両方に対応しています。プロジェクト詳細やリポジトリ固有のルールをセッション横断で記憶する点は Auto Memory と近いコンセプトです。
MCPメモリツールとの関係
Auto Memory 以前、セッション間の記憶を維持するためには MCP(Model Context Protocol)メモリサーバーを自分でセットアップする必要がありました。
| MCPメモリツール | 概要 |
|---|---|
Serena (write_memory/read_memory) | プロジェクト文脈・設計判断をメモリ名で保存・復元 |
| Basic Memory | ローカルMarkdownに知識ベースを構築、MCP経由で参照 |
| OpenMemory (Mem0) | ローカルファーストの共有メモリ層、複数ツール間で連携 |
| mcp-memory-service | ベクトル検索付きの永続メモリ |
これらはすべて「セッションが変わると AI が全部忘れる」という同じ問題を解決するために開発されたものです。
Auto Memory で不要になるケース
Auto Memory は、これらの MCP メモリツールの主要なユースケースをネイティブ機能として内蔵しています。
- プロジェクトパターンの記憶 → Auto Memory が自動記録
- デバッグ知見の蓄積 → トピックファイルに分類保存
- ユーザー好みの学習 → 自動反映
- セッション間の文脈維持 → MEMORY.md が毎回読み込み
MCP サーバーのインストール・設定・メンテナンスが一切不要で、同等の機能が箱から出してすぐ動きます。
それでも MCP メモリツールが必要な場面
Auto Memory は万能ではありません。以下のケースでは引き続き MCP メモリツールが有効です。
- 複数ツール間のメモリ共有: Auto Memory は Claude Code 専用。Cursor や Windsurf とメモリを共有したい場合は OpenMemory 等が必要
- ベクトル検索による意味的検索: Auto Memory はファイルベース。大量の知見から意味的に近いものを検索するなら mcp-memory-service が優位
- チーム間の知見共有: Auto Memory は個人用(
~/.claude/以下)。チームで暗黙知を共有するなら CLAUDE.md や外部ツールが必要
なお、Serena の場合はメモリ機能はあくまで付加機能であり、本体はセマンティックなコード操作(find_symbol、replace_symbol_body 等)です。Auto Memory によって Serena のメモリ部分は代替されますが、シンボル操作機能は引き続き独自の価値を提供します。
まとめ
Auto Memoryは、AIコーディングアシスタントのセッション間コンテキスト管理における大きな進歩です。200行のインデックス+オンデマンドのトピックファイルという2層設計は、コンテキストウィンドウの制約と知識の永続化を巧みにバランスしています。
他のエージェントも同様の課題に取り組んでおり、Gemini CLI の save_memory、Windsurf の Memories など、「AIが自ら学習ノートを書く」パラダイムは2026年のスタンダードになりつつあります。また、これまで MCP メモリサーバーでしか実現できなかったセッション間記憶が、ネイティブ機能として利用できるようになったことで、開発環境のセットアップコストも大幅に下がりました。
手動のCLAUDE.mdとAuto Memoryを適切に使い分けることで、プロジェクトの暗黙知がセッションごとに失われることなく蓄積され、開発体験が着実に向上していきます。ZenChAIneでも日々の開発にAuto Memoryを活用しており、特にマルチリポジトリ構成でのプロジェクト固有知識の管理に大きな効果を実感しています。