Claudeの記憶の仕組み — コンテキストウィンドウとメモリ機能・学習の違い
「Claudeは会話を覚えている」という理解は半分だけ正しい表現です。コンテキストウィンドウ・メモリ機能・学習という3つの層を区別し、compactや新セッションで忘れる理由と、混同が生む誤設計を構造から説明します。
Claudeの記憶は、寿命の違う3つの層でできています。会話の間だけ生きるコンテキストウィンドウ、ファイルとして永続するメモリ機能、そしてモデルの重みに焼き込まれた学習です。「Claudeは覚えている」「Claudeは忘れた」という体験談のほとんどは、この3層のどれかを別の層と取り違えたときに生まれます。この記事では各層の実体と寿命を確定させ、「compactしたら消えた」「別セッションで忘れている」という頻出のつまずきを構造から説明します。
Claudeの「記憶」は3つの層でできている
| 層 | 実体 | 寿命 | ユーザーが直接編集できるか |
|---|---|---|---|
| コンテキストウィンドウ | 実体いまの会話に読み込まれたテキスト | 寿命セッションの間だけ | ユーザーが直接編集できるかできない(消すか要約するかのみ) |
| メモリ機能 | 実体ディスク上のファイル・保存されたエントリ | 寿命明示的に消すまで | ユーザーが直接編集できるかできる |
| 学習 | 実体モデルの重み | 寿命モデルの世代ごとに固定 | ユーザーが直接編集できるかできない |
コンテキストウィンドウとは、Claudeがそのセッションについて知っているすべて — あなたの指示、読んだファイル、Claude自身の応答 — を保持する作業領域です。メモリ機能はその外側にあり、セッションをまたいで知識を運ぶ唯一の仕組みです。学習はさらに外側で、会話の内容がここに届くことは、この後見るように原則ありません。
コンテキストウィンドウ — 覚えているのではなく毎回読み直している
会話が続いているとき、Claudeが過去の発言を「覚えている」ように見えるのは、モデルが状態を保持しているからではありません。リクエストのたびに、それまでの会話全体がコンテキストウィンドウとしてモデルに渡し直されているからです。Claude Codeの文脈では、CLAUDE.mdや自動メモリ、MCPのツール名がセッション開始時に読み込まれ、以降のすべてのリクエストに載り続けます。
だからコンテキストウィンドウは記憶というより「机の上」に近い実体です。広さには上限があり、載っている量が増えるほど圧迫されます。大規模コードベースでの圧迫対策はClaude Codeのコンテキスト管理で扱っていますが、本質はどの対策も同じで、机に載せる量を減らすか、机を片付けるかの二択です。
なぜcompactすると忘れるのか
コンテキストウィンドウが満杯に近づくと、Claude Codeは会話履歴を要約して圧縮します(コンパクション)。ここで「覚えていたことを忘れた」体験が生まれますが、実際に起きているのは記憶の喪失ではなく、原文から要約への置き換えです。要約に採用されなかった細部は、次のリクエストからモデルに渡らなくなります。
重要なのは、何が残るかは読み込まれ方で決まるという点です。プロジェクト直下のCLAUDE.mdと自動メモリはディスクから再注入されるため実質的に無傷で、会話の中でだけ伝えた指示は要約に潰される可能性があります。サブディレクトリのCLAUDE.mdやパス指定ルールも、該当ファイルを再び読むまで消えたままです。発火条件と要約に残る情報の詳細はcompactの発火条件と要約後に残る情報にまとめています。
なぜ新しいセッションでは忘れるのか
Claude Codeのセッションは、毎回まっさらなコンテキストウィンドウから始まります。前のセッションの会話は、翌日のセッションのコンテキストには存在しません。「昨日あれだけ説明したのに」という感覚は人間の記憶モデルの投影で、Claudeの側には昨日がそもそも届いていないのです。
セッションをまたいで残るのは、ファイルに書かれたものだけです。これが次の層、メモリ機能の役割になります。
メモリ機能 — ファイルに書かれたものだけが残る
Claude Codeには、セッションをまたいで知識を運ぶ仕組みが2系統あります。あなたが書くCLAUDE.mdと、Claudeが自分で書き溜める自動メモリです。自動メモリはリポジトリごとに~/.claude/projects/<project>/memory/へ保存され、索引のMEMORY.mdは先頭200行または25KBまでが毎セッション読み込まれます。詳細な使い分けはClaude Code memoryの三層構造を参照してください。
claude.ai側にも独立したメモリ機能があります。無料・Pro・Maxプランで利用でき、Claudeが会話からメモリエントリをカテゴリー別に生成し、リアルタイムで読み書きします。プロジェクトごとに独立したメモリ空間を持ち、設定画面から個々のエントリの確認・修正・削除ができます。シークレットチャット(ゴーストアイコン)での会話はメモリに保存されません。
2系統に共通する性質が2つあります。第一に、実体はどちらも読める形のデータで、ユーザーが監査・編集できます。第二に、メモリは次のセッションのコンテキストウィンドウに注入される「入力」であって、Claudeの動作を保証する設定ではありません。公式ドキュメントもメモリを「コンテキストであって強制される構成ではない」と明記しており、確実に実行させたい制約はhooksのような仕組みの側に置く設計になっています。
学習 — 会話してもモデルは賢くならない
3層目の学習は、最も誤解が多い層です。あなたがどれだけ丁寧に訂正しても、いま会話しているモデルの重みはその場では一切変わりません。次のターンで振る舞いが直るのは、訂正がコンテキストウィンドウに載ったからであって、モデルが学習したからではありません。
会話データが学習に使われるかどうかは、契約と設定の問題です。無料・Pro・Maxプランでは、データをモデル改善に使うことを許可するかを設定で選べます。許可した場合でも、使われる先は将来のClaudeモデルの訓練であり、いま応答しているモデルに反映されるわけではありません。Team・Enterprise・API経由の商用利用では、明示的にオプトインしない限りコードもプロンプトも生成モデルの訓練に使われないと定められています。「学習される」不安と「学習してくれる」期待は、どちらもこの層では起こらないことへの反応です。
混同が生む5つの誤設計
3層の取り違えは、体感の混乱だけでなく運用の設計ミスに直結します。よくある型は次の5つです。
- 重要な決定を会話の中にだけ置く — コンテキスト層を永続層と誤認した形です。コンパクションで要約に潰れるか、セッション終了で消えます。残したい決定はCLAUDE.mdかメモリへ書き出します
- 前のセッションの説明を前提に指示する — セッションは毎回まっさらです。「昨日の方針で」が通じるのは、その方針がファイルに残っている場合だけです
- 1つの会話に無関係な作業を詰め込む — 古い会話は次の作業に必要なファイルの居場所を奪い、しかも毎リクエストのトークンコストとして課金され続けます。作業の切れ目での
/clearが公式の推奨です - 訂正すれば今後は直ると期待する — 学習層は会話では動きません。同じ訂正を毎セッション繰り返しているなら、それはCLAUDE.mdに書く1行です
- メモリに書けば強制されると考える — メモリは入力であって制約ではありません。「絶対にやらない」を保証したい操作は、指示ではなくhooksや権限ルールで止めます
どの誤設計も、直し方は同じ原則に収束します。残したい情報は、残る層に置く。これだけです。
よくある質問
コンテキストウィンドウが大きいモデルなら忘れなくなりますか
圧迫が起きにくくなるだけで、層の性質は変わりません。Fable 5やSonnet 5などは100万トークンのコンテキストウィンドウに対応しますが、セッションが終われば消える点は同じです。大容量の実務的な使いどころはClaude 1Mコンテキストの実務活用で扱っています。
claude.aiのメモリを一度リセットできますか
できます。設定のメモリ画面でトグルを切ると「一時停止」と「リセット」を選べ、リセットはプロジェクトメモリを含む全メモリを完全削除します。この操作は取り消せません。個別エントリだけの削除も同じ画面から可能です。
会話を学習に使わせない設定はどこにありますか
無料・Pro・Maxプランではclaude.aiの設定にあるデータプライバシー管理から変更できます。この設定はデータ保持期間にも影響し、モデル改善への利用を許可すると5年、許可しない場合は30日と公式に定められています。
削除した会話から作られたメモリはどうなりますか
claude.aiでは、会話を削除しても、そこから生成済みのメモリエントリは自動では消えません。エントリ自体をメモリ画面から個別に削除する必要があります。
Claude Codeの自動メモリはどこまで信用できますか
自動メモリはClaudeが「将来の会話で役立つ」と判断した内容だけを保存する仕組みで、毎セッション何かを保存するわけではありません。保存内容はプレーンなMarkdownなので、/memoryから開いて事実誤認を直したり不要な項目を消したりする前提で使うものです。
まとめ
Claudeの記憶は、セッション限りのコンテキストウィンドウ、ファイルとして永続するメモリ機能、会話では変化しない学習の3層に分かれます。compactで消えるのはコンテキスト層の原文、新セッションで消えるのはコンテキスト層そのもので、どちらもメモリ層に書かれた内容には及びません。そして学習層は、期待する方向にも不安な方向にも、会話中には動きません。「覚えていてほしいことはファイルに、強制したいことはルールに、モデルへの期待はコンテキストの設計に」— 3層の区別は、そのままClaudeを安定運用するための配置図になります。