自動メモリとは、Claude Code において、ユーザーが何も書かなくても Claude がセッションをまたいで知識を蓄積できるようにする仕組みである。作業を進めながら、Claude はユーザーの訂正や好みに基づいて自分自身のためのノートをプロジェクト用のメモリディレクトリに保存し、それらのノートのインデックスが毎回の会話の開始時に読み込まれる。Anthropic のドキュメントはこれを、CLAUDE.md と並ぶ相補的な二つのメモリシステムの一つとして提示している。CLAUDE.md ファイルはユーザーが書き、指示やルールを保持するのに対し、自動メモリは Claude が書き、学んだことやパターンを保持する。どちらも強制される設定ではなく、コンテキストとして扱われる。

用法

ドキュメントはノートを四種類に分けており、それぞれのメモリファイルのフロントマターの type フィールドに記録される。user(ユーザーの役割、専門知識、作業上の好み)、feedback(ユーザーが与える訂正や、ユーザーが確認したアプローチ)、project(コードや git 履歴からは導き出せない、進行中の作業、締め切り、決定事項)、reference(イシュートラッカーやダッシュボードなど、プロジェクト外の情報がどこにあるか)の四つである。Claude は、アーキテクチャ、ファイルパス、デバッグでの修正など、コードベースから導き出せるものや、CLAUDE.md ファイルにすでに書かれているものは保存しない。また、毎セッション何かを保存するわけではなく、その情報が将来の会話で役に立つかどうかで判断する。

各プロジェクトには ~/.claude/projects/<project>/memory/ に専用のディレクトリが与えられる。<project> のパスは git リポジトリから導かれるため、一つのリポジトリのすべてのワークツリーとサブディレクトリが単一のメモリディレクトリを共有する。このディレクトリは autoMemoryDirectory 設定で別の場所に移すことができる。ディレクトリには、メモリ一件につき一行の MEMORY.md インデックスと、メモリ一件につき一つのトピックファイルが置かれる。セッション開始時に読み込まれるのは MEMORY.md の先頭 200 行または 25KB のうち先に達した方までであり、どちらかの上限に近づくと Claude Code は Claude にインデックスを短くするよう促す。上限を超えた内容は次回の読み込みで切り捨てられるためである。トピックファイルは起動時には読み込まれず、Claude の通常のファイルツールで必要に応じて読まれる。自動メモリはマシンローカルであり、マシン間やクラウド環境間では共有されない。また、そのファイルは古いセッションのトランスクリプトを削除する保持期間の整理処理の対象外となっている。デフォルトで有効になっており、/memory コマンドまたは autoMemoryEnabled 設定で切り替えられ、環境変数で無効化することもできる。ファイルはユーザーが読み、編集し、削除できるプレーンな Markdown である。

同じ仕組みは、Claude Code が実装する サブエージェントアーキテクチャ にも及ぶ。メイン会話の自動メモリはサブエージェントには読み込まれない(親の会話を引き継ぐフォークは例外である)が、memory フィールドを通じて、サブエージェントに独自の永続メモリを別のディレクトリに持たせることができる。ユーザーが Claude に、特定のパッケージマネージャーを常に使うといったことを覚えておくよう頼んだ場合、ドキュメントによれば Claude はそれを自動メモリに保存する。代わりに CLAUDE.md に追加させるには、明示的にそう頼むか、ファイルを自分で編集する必要がある。

関連用語