Auto Memoryとは何か
Claude Codeには2つの記憶システムがあります。Anthropicのドキュメントによると、「両方ともすべての会話の開始時に読み込まれます」。違いは、誰がそれを書くかです。
- CLAUDE.mdファイル: あなたが書きます。コーディング標準、ワークフロー、プロジェクトアーキテクチャなどの指示やルールを保持します。
- Auto Memory: Claudeが書きます。学習内容やパターンを保持します。「あなたの好み、Claudeに与えた修正、コードから派生できないプロジェクトのコンテキスト」などです。
どちらも設定(configuration)ではなく、コンテキスト(context)です。Anthropicは、Claudeはこれらを「強制的な設定としてではなく、コンテキストとして扱う」と述べています。何があっても強制する必要があるものについては、ドキュメントでは代わりにフック(hook)を使用することを推奨しています。
Claudeが保存するもの、スキップするもの
作業を進める中で、Claudeは4つの種類のノートを保存し、それぞれが記憶ファイル内のタイプフィールドとして記録されます。
- user: 「あなたの役割、専門知識、作業の好み」
- feedback: 「あなたがClaudeに与えた修正や、あなたが承認したアプローチ」
- project: 「進行中の作業、期限、およびコードやgit履歴からClaudeが派生できない決定事項」
- reference: 「イシュートラッカーやダッシュボードなど、プロジェクト外の情報を見つける場所」
また、意図的に除外するものもあります。「Claudeは、アーキテクチャ、ファイルパス、デバッグの修正など、コードベースから派生できるものはすべてスキップします。また、CLAUDE.mdファイルにすでに記載されている内容もスキップします。」
そして、毎セッション保存するわけではありません。「Claudeはすべてのセッションで何かを保存するわけではありません。その情報が将来の会話で役立つかどうかに基づいて、覚える価値があるものを判断します。」
直接依頼することもできます。Anthropicの例では、npmの代わりに常にpnpmを使用するなど、何かを覚えるようClaudeに頼むと、「ClaudeはそれをAuto Memoryに保存します」。代わりにCLAUDE.mdに指示を入れたい場合は、明示的にそう頼むか、自分でファイルを編集してください。
MEMORY.mdの保存場所
「各プロジェクトは、~/.claude/projects/<project>/memory/ に独自の記憶ディレクトリを持ちます。」プロジェクトのパスはgitリポジトリから取得されるため、「同じリポジトリ内のすべてのワークツリーとサブディレクトリは、1つのAuto Memoryディレクトリを共有します」。gitリポジトリ外では、プロジェクトのルートが使用されます。
ディレクトリ内では、MEMORY.mdがインデックスとして機能し、1つの記憶につき1行が割り当てられ、各記憶には独自のトピックファイルがあります。Anthropicは、MEMORY.mdを「記憶ディレクトリのインデックスとして機能する」と説明しています。
そのフォルダについて知っておくべき3つの特性があります:
- マシンローカルである: 「ファイルはマシン間やクラウド環境で共有されません。」Claude Codeが他のマシンですべてを忘れてしまう理由についてのガイドで、これが実際に何を意味するかを解説しています。
- ワークツリー間で共有される: 1つのリポジトリに対し1つの記憶フォルダがあり、開いているワークツリーの数に関係ありません。ワークツリーが記憶を共有するかどうかについてのガイドで、各ワークツリーセッションが何を読み込むかを解説しています。
- トランスクリプトと一緒にクリーンアップされない: Claude Codeは保持期間を過ぎた古いセッションのトランスクリプトを削除しますが、記憶ファイルは除外されます。「MEMORY.mdとトピックファイルは、あなたやClaudeが編集または削除するまで残ります。」
別の場所へ移動する
Auto Memoryを別の場所に保存するには、設定で autoMemoryDirectory を設定します。ドキュメントによると、値は「絶対パスであるか、~/ で始まる必要があります」。プロジェクトの設定ファイルで設定された場合、Claude Codeはフックに使用するのと同じワークスペース信頼ルールを適用します。
各セッションの開始時に読み込まれるもの
Auto Memoryのすべてが一度に読み込まれるわけではありません。「MEMORY.md の最初の200行、または最初の25KBのいずれか早い方が、すべての会話の開始時に読み込まれます。そのしきい値を超えるコンテンツは、セッション開始時には読み込まれません。」
トピックファイルは動作が異なります。「Claude Codeは、起動時に user_role.md や feedback_testing.md などのトピックファイルを読み込みません。Claudeは、情報が必要なときに標準のファイルツールを使用して、オンデマンドでそれらを読み取ります。」
インデックスを制限内に保つ
Claude Codeはインデックスのサイズを監視しています。ClaudeがMEMORY.mdに書き込んだ後、Claude Codeはそれを200行および25KBの制限と照らし合わせてチェックします。制限に近づくと、ファイルを短くするようにClaudeに促します。1エントリにつき1行にし、詳細はトピックファイルに移動し、古いエントリは統合または削除されます。制限を超えても書き込み自体は成功しますが、Claudeはインデックスを書き直すよう指示されます。「制限を超えたものはすべて次回の読み込み時に破棄されるため」です。
この制限はMEMORY.mdに特有のものです。Anthropicは、Claudeが起動時に読み込む各CLAUDE.mdファイルについては、最大4 MiBまで丸ごと取得することを指摘しています。サブディレクトリのCLAUDE.mdファイルとパススコープのルールには、独自のより小さな制限があります。サブディレクトリのCLAUDE.mdの制限に関するガイドで詳しく説明しています。
サブエージェントとフォーク
「メインの会話のAuto Memoryはサブエージェントには読み込まれません。例外はフォーク(fork)であり、親の会話とシステムプロンプトを継承します。」サブエージェントは、別のディレクトリにある独自のmemoryフィールドを有効にすることで、独自のAuto Memoryを持つことができます。
インターフェースの表示内容
Claudeが記憶を読み書きするとき、それが表示されます。Anthropicによると、「Saved 2 memories(2つの記憶を保存しました)」や「Recalled 2 memories(2つの記憶を呼び出しました)」といったインターフェースメッセージは、Claudeが記憶フォルダを「アクティブに更新または読み取っている」ことを意味します。フロントマターを持つ各記憶ファイルには更新タイムスタンプも付与され、これは「その事実がどれほど最新であるかを、あなたと、記憶を読み戻す際のClaudeの両方に示します」。
Auto Memoryをオン/オフにする方法
「Auto Memoryはローカルセッションではデフォルトでオンになっています。」セルフホスト環境のセッションは、Claude Tagセッションを除き、デフォルトでオフで実行されます。
オフにする方法は3つあります:
- /memory トグル: セッション内で
/memoryを開き、Auto Memoryのトグルを使用します。これにより、ユーザー設定にautoMemoryEnabledが保存されます。 - プロジェクトごと: そのプロジェクトの設定で
autoMemoryEnabledをfalseに設定します。 - 環境変数:
CLAUDE_CODE_DISABLE_AUTO_MEMORY=1を設定します。
トグルで再びオンにできない理由
知っておくべきケースが1つあります。トグルでAuto Memoryをオフにすることはできますが、バックグラウンドセッションや、別のClaude Codeセッションが開始したセッションでは、再びオンにすることはできません。そこでは、トグルに off · can't be turned on here; use a session started outside Claude Code(オフ ・ ここではオンにできません。Claude Codeの外で開始されたセッションを使用してください)と表示されます。再びオンにするには、ターミナルで直接Claude Codeを実行し、そこで /memory を使用してください。
保存された内容の確認と編集方法
「Auto Memoryファイルは、いつでも編集または削除できるプレーンなMarkdownです。」 /memory を実行して、それらを閲覧し開くことができます。CLAUDE.mdファイルと記憶の場所がリストされ、Auto Memoryの切り替えや、Auto Memoryフォルダを開くオプションが表示されます。
Auto Memoryに何が保存されたか確信が持てない場合、Anthropicのトラブルシューティングの回答は明快です。「/memory を実行し、Auto Memoryフォルダを選択して、Claudeが保存した内容を閲覧してください。」
VS Code拡張機能では、CustomizeメニューにMemoryエントリがあり、Auto Memoryのトグル、保存された記憶、および記憶フォルダが表示されます。
Auto Memory vs CLAUDE.md: それぞれの役割
Anthropicによる切り分けは有用なルールです。「Claudeの動作をガイドしたいときはCLAUDE.mdファイルを使用してください。Auto Memoryは、手動の労力なしにClaudeがあなたの修正から学習できるようにします。」
- チームのルールと標準: CLAUDE.mdに記述し、チェックインすることで、全員がそれを利用できるようにします。特定のファイルにのみ適用されるルールについては、Claude Codeのルールに関するガイドでパススコープの読み込みについて解説しています。
- あなたの好みと修正: あなたのマシン上のAuto Memoryに適しています。
- AGENTS.mdを使用するリポジトリ: 独自の読み込みルールに従います。Claude CodeとAGENTS.mdに関するガイドで、いつ読み取られるかを説明しています。
Auto Memoryが動作しないように見えるとき
このセッションでオフになっている: /memory を確認してください。バックグラウンドセッションや、別のClaude Codeセッションによって開始されたセッションでは、再びオンにすることはできません。
異なるリポジトリパスにいる: フォルダはリポジトリごとに作成されます。別の場所にある同じコードの別のクローンは、異なるフォルダを使用する可能性があります。
別のマシンにいる: Auto Memoryはマシン間やクラウド環境とは同期されません。
インデックスが制限を超えている: MEMORY.mdの最初の200行または25KBを超えたものは読み込まれません。
サブエージェント内にいる: サブエージェントは、フォークでない限り、メインの会話のAuto Memoryを読み込みません。
Claudeが保存する価値がないと判断した: すべてのセッションで保存されるわけではありません。明示的に覚えるように頼んでください。古いセッションで何を話したかを確認するには、Claude Codeのセッション履歴を見つけるガイドでトランスクリプトの場所を解説しています。
よくある間違い
MEMORY.mdをCLAUDE.mdのように編集する: 動作はしますが、MEMORY.mdはClaudeが維持するインデックスです。守ってほしいルールはCLAUDE.mdに記述すべきです。
インデックスを肥大化させる: 200行または25KBを超えると、残りはセッション開始時に読み込まれません。
2台目のマシンでも記憶があることを期待する: フォルダはマシンローカルです。
バックグラウンドセッションから再びオンにしようとする: そこではオンにできません。ターミナルから直接開始したセッションを使用してください。
トランスクリプトを削除すれば記憶も消えると思い込む: 記憶ファイルはトランスクリプトのクリーンアップ対象から除外されています。
解決策:Auto Memoryを小さく、最新に、適切な場所に保つ
ステップ1:内容を確認する
/memory を実行し、Auto Memoryフォルダを開いて、MEMORY.mdを読みます。各行がまだ正しいことを確認してください。古くなったものは削除します。ファイルはプレーンなMarkdownです。
ステップ2:ルールをCLAUDE.mdに移動する
プロジェクトの全員に適用すべきことや、毎回守る必要があることは、CLAUDE.mdに記述します。Claudeにそこに追加するよう頼むか、/memory を通じてファイルを編集してください。
ステップ3:持ち運ぶべきものを決める
Auto Memoryは1台のマシン、1つのリポジトリに留まります。マシン、リポジトリ、またはツールをまたいで必要な好みや決定事項については、このフォルダに紐付けられない場所にコピーを保管してください。
MemoryLakeでのセットアップ
Auto Memoryは、1台のマシンの1つのリポジトリ内ではうまく機能します。その制限は設計に由来します。フォルダはリポジトリごとであり、マシンから離れることはなく、インデックスの最初の部分のみが読み込まれます。どこでも必要となる好みや決定事項は、それと一緒に移動することはありません。
MemoryLakeは、それらを1つのリストとして維持し、Claude Codeや、ChatGPT、Codexなど接続した他のアシスタントから利用できるようにするための記憶レイヤーです。
エントリはあなた自身の言葉で自分で書き込みます。あなたのAuto Memoryフォルダ、MEMORY.md、CLAUDE.mdファイル、またはベンダーのストアから何かが読み取られたり、書き込まれたり、削除されたりすることはありません。Auto MemoryはAnthropicが説明する通りの動作を続けます。
ステップ1:APIキーを作成する
サインインして、ダッシュボードからキーを生成します。キーはあなたのMemoryLakeワークスペースに属し、Claudeアカウントとは別個のものです。

ステップ2:最初の記憶をアップロードする
解決策のステップ3で特定したもの、つまり1つのリポジトリを超えて必要な好みや決定事項から始めてください。1エントリにつき1項目、日付を付けて、いつの時点で最新だったかを明確にします。

ステップ3:AIとエージェントを接続する
Claude Codeや、使用している他のアシスタントを接続します。同じ事実が、別のマシン、別のリポジトリ、または別のツールでも利用可能になります。

実践で何が変わるか
第一の違いは、Auto Memoryがブラックボックスではなくなることです。それがどこにあり、何を保存し、どれくらいが読み込まれるのかを把握できます。
第二に、誤作動したときに修正できるようになります。ほとんどの問題は、トグル、リポジトリパス、マシン、インデックス制限、またはサブエージェントに集約されます。
第三に、各種類のコンテキストが最も効果的に機能する場所に配置されます。ルールはCLAUDE.mdに、個人の修正はAuto Memoryに、そして持ち運ぶ必要があるものはそれ専用の場所に保管されます。
Claude Code Auto Memoryのベストプラクティス
時々MEMORY.mdを読む: プレーンなMarkdownであり、古くなった行はコンテキストを浪費します。
インデックスを短く保つ: 最初の200行または25KBのみが読み込まれます。
チームのルールはCLAUDE.mdに入れる: Auto Memoryはマシンごと、ユーザーごとです。
Claudeに明示的に覚えるよう頼む: すべてのセッションで保存されるわけではありません。
1つのリポジトリパスを使用する: 記憶はgitリポジトリに関連付けられています。
直接セッションから再びオンにする: バックグラウンドセッションではオフにすることしかできません。
他のマシンのことを考慮する: Auto Memoryは同期されません。
結論
Claude CodeのAuto Memoryは、Claudeが自分自身のために書き留めるノートのセットです。あなたの好み、修正、プロジェクトのコンテキスト、およびリファレンスが含まれます。それはマシンのリポジトリごとのフォルダに保存され、MEMORY.mdがインデックスとして機能します。そのインデックスの最初の200行または25KBがすべての会話の開始時に読み込まれ、トピックファイルは必要に応じて読み取られます。
ローカルセッションではデフォルトでオンになっており、/memory、プロジェクト設定、または環境変数でオフにできます。動作しないように見える場合は、トグル、リポジトリ、マシン、インデックスサイズ、およびサブエージェント内にいるかどうかを確認してください。ルールはCLAUDE.mdに記述し、インデックスは短く保ちましょう。