ブログ

1つのプロジェクトでClaude Codeの自動メモリを無効にする方法

Markdown

単一プロジェクトでClaude Codeの自動メモリを無効にするには、.claude/settings.jsonにautoMemoryEnabled: falseという行を記述します。これは/memoryよりどう優れているのでしょうか。また、メモを整理するにはどうすればよいでしょうか。

記事の全文を読む

1つのプロジェクトだけでClaude Codeの自動メモリをオフにするには、そのプロジェクトの.claude/settings.jsonファイルに"autoMemoryEnabled": falseを追加します。/memoryコマンドの切り替え機能はこの用途には適していません。これは設定をグローバルファイルに書き込み、コンピューター上のすべてのプロジェクトでメモリをオフにするためです。

エージェントは、必要のない情報であっという間にごちゃごちゃになることがあります。ここで紹介するケースでは、Hermesはタスクについて2時間考えました。「トークンはいくつ使いましたか?」と尋ねると、「大まかな見積もりでは1億です」と答えました。タスクは解決できたのでしょうか。「いいえ、調査しました。」すべてのファイルを順番に確認し続け、混乱していました。

だからこそ、エージェントのメモリには、最も価値のある情報だけを入れるべきです。そして、ここでの評価では、Claude Codeの自動メモリはかなり弱く、非常に小さく、大幅に圧縮されています。Claudeに自分のルールだけに従って作業させたいなら、プロジェクト設定に1行追加するだけで十分です。

自動メモリとCLAUDE.mdの違い、無効にする方法、古いメモの扱いを見ていきましょう。始めましょう。

Ailootの参考ドキュメント:ailoot.ai/docs/。

重要なポイント

プロジェクトの.claude/settings.jsonファイルを開き、"autoMemoryEnabled": falseを追加します。ほかの人もプロジェクトで作業していて、自分だけメモリをオフにしたい場合は、同じキーを.claude/settings.local.jsonに記述してください。このキーはこのプロジェクトだけに適用され、ほかのプロジェクトではメモリが引き続き機能します。/memoryの切り替え機能はキーを~/.claude/settings.jsonに書き込み、すべてのプロジェクトでメモリをオフにします。メモリを無効にしても、古いメモはディスク上に残ります。/memoryから開いて、手動で整理できます。

自動メモリとCLAUDE.mdはどう違う?

CLAUDE.mdはメインの指示ファイルで、自分で書きます。新しいチャットのたびに、Claudeは実質的に「ここには何がある?私は誰?何をすればいい?」と尋ねています。すべてがCLAUDE.mdに明記されていれば、「なるほど、私は専門家なんですね。わかりました」と答えます。

自動メモリはClaude自身が書きます。「いつも私の希望する言語で返答することを覚えておいて」や「値をハードコードせず、必ずデータベースから取得して」と伝えると、Claudeはメモリフォルダーに「もう二度としない」といった内容のファイルを書きます。後のセッションで、Claudeはそれを思い出します。

もちろん、いつもそうとは限りません。エージェントは今でも忘れるので、こちらが見ていなければなりません。「ねえ、また忘れてるよ。前にも話したでしょう」と伝えると、「ああ、そうでした。覚えています。ファイルのここに見つけました」と返します。だからこそ、私たちは通常、メモリに頼るのではなく、重要なことはすべてCLAUDE.mdに記載します。

CLAUDE.mdに記載するルールの詳細は別の記事で、ClaudeチャットのMemoryとCLAUDE.mdの違いは別の記事で説明しています。

AIエージェントでプロジェクトを構築しているなら、使用するツールのドキュメントを手元に置いておきましょう。

Claudeが自分で書く内容

Claude Codeは4種類のメモを保存します。

  • user — あなたの役割、経験、希望する作業方法。
  • feedback — あなたからの修正と、あなたが確認したアプローチ。
  • project — 現在の作業、期限、コードからはわからない決定事項。
  • reference — タスクトラッカーなど、プロジェクト外の情報の場所。

これらはすべて~/.claude/projects/<project>/memory/に保存されます。ここでのメインファイルはMEMORY.mdで、各メモについて1行ずつ記載した目次です。各セッションの開始時に、Claudeは最初の200行または25 KBを読み、必要に応じてほかのファイルを開きます。メモリはあなたのコンピューターにのみ保存され、別のマシンやクラウドには移動しません。

ここで紹介する例では、ユーザーの名前と役割に加え、動的な値をハードコードしないというルールが含まれていて、合計でわずか5~7行です。これらはエージェント自身のルール、つまりエージェントがどのように作業すべきかを定めたものです。

エージェントがリンクを通じて読むファイル群で、プロジェクトの知識をセカンドブレインに保存できます。この方法では、「セカンドブレイン」スキルを定義し、Hermesのインストールコマンドを記載したPDFと、「タスクごとにどのモデルを使うか」をまとめた表をプロジェクトファイルと一緒に置いておくと便利です。

1つのプロジェクトで自動メモリを無効にする方法

  1. プロジェクト設定に行を追加する

    プロジェクトのメインフォルダーには、隠しフォルダー.claudeがあり、その中にsettings.jsonファイルがあります。最も簡単なのは、Claude Code自体にこう頼むことです。「このプロジェクトの.claude/settings.jsonファイルに"autoMemoryEnabled": falseを追加し、ほかの設定には手を加えないでください。」手動で開いたときにファイルが存在しなければ、次の内容で作成します。

    {
      "autoMemoryEnabled": false
    }
    

    ファイルにすでに設定がある場合は、ほかの設定をそのままにして、同じ場所にキーを追加してください。autoMemoryEnabledがfalseの場合、Claudeはメモリフォルダーを読み込まず、そこに何も書き込みません。

  2. 設定の適用対象を選ぶ

    .claude/settings.jsonは共有プロジェクトファイルで、プロジェクトで作業する全員に適用されます。自分だけメモリをオフにしたい場合は、同じキーを.claude/settings.local.jsonに記述してください。これは、このプロジェクト用の個人設定ファイルです。

    プロジェクト設定はグローバル設定より優先されます。~/.claude/settings.jsonでメモリが有効になっていても、このプロジェクトではfalseが優先されます。

  3. Claude Codeを再起動する

    セッションを終了し、プロジェクトフォルダー内で再度claudeを実行します。/statusと入力してください。プロジェクトファイルがSetting sourcesの行に表示されていれば、Claudeはその設定を読み込んでいます。隣接する別のプロジェクトでは、メモリが引き続き有効です。

ほかに2つの方法がありますが、それぞれ用途が異なります。

  • CLAUDE_CODE_DISABLE_AUTO_MEMORY=1環境変数。 CLAUDE_CODE_DISABLE_AUTO_MEMORY=1 claudeを実行すると、その実行中だけメモリが無効になり、設定ファイルのキーより優先されます。ただし、毎回入力する必要があります。
  • /memoryの切り替え機能。 autoMemoryEnabledをコンピューター上のすべてのプロジェクトに適用されるグローバルファイル、~/.claude/settings.jsonに書き込みます。1つのプロジェクトで使うと、すべてのプロジェクトでメモリがオフになります。

もう1つ注意点があります。バックグラウンドセッションでは、切り替え機能でメモリをオフにすることはできますが、再度オンにはできません。有効にするには、ターミナルで自分がclaudeを実行して開始した通常のセッションを使ってください。

警告

メモリを無効にしても、Claudeがすでに書き込んだ内容は何も削除されません。自分で整理するまで、memoryフォルダーはディスク上に残ります。

古いメモの扱い方

/memoryコマンドを使うと、メモリファイルの一覧を表示し、そのうちのどれでも開くことができます。これらは普通のテキストファイルなので、編集や削除が可能です。

やみくもに削除せず、まず中身を確認してください。ここで紹介するルールフォルダーの整理事例では、エージェントが自己反省の一環として、ユーザーに関する不要な情報を記録していました。古くなったルールでいっぱいの整理されていないルールも、古くなったルールで埋め尽くされたCLAUDE.mdと同じくらい有害です。エージェントはそれらを使い続け、幻覚を起こし、より質の低いコンテキストを返します。

エージェントに整理を頼むこともできます。週に1回、業務用フォルダーに対して次のようなタスクを渡せます。メモリフォルダーにも同じ方法が使えます。

古くなった、または不要になったものを見つけ、それが本当に古くなっていることを証明してください。まだ削除してはいけません。見つけたものを私に提示してください。

エージェントは根拠とともに一覧を提示するので、何を削除するかはあなたが決めます。メモから最も価値のある情報だけをCLAUDE.mdに移してください。Claudeが指示に従うよう、指示を短く保つ方法は別の記事で説明しています。また、フォルダーとルールを使ってプロジェクトメモリ全体を整理する方法は、セカンドブレインの記事で取り上げています。

自動メモリを有効にしたままにしていますか、それともオフにしましたか?Claudeがあなたについて何を覚えているか確認してみてください。Ailootはailoot.aiから引き続きご覧いただけます。

出典

詳細を見る

1つのプロジェクトでClaude Codeの自動メモリを無効にする方法:よくある質問

1つのプロジェクトで、自分だけメモリを無効にする設定ファイルは?

そのプロジェクトの.claude/settings.local.jsonに"autoMemoryEnabled": falseを設定します。チームで共有する設定には.claude/settings.jsonを使います。/memoryの切り替えはグローバル設定を変えるので、他のプロジェクトのメモリを有効のままにしたい場合には向きません。

自動メモリを無効にすると、以前のメモも消えますか?

いいえ。メモリのフォルダーはディスクに残ります。削除する前に内容を確認し、必要な判断記録は別の場所へ保管してください。プロジェクト設定の変更後はClaude Codeを再起動し、/statusで設定の読み込み元を確認しましょう。

すべての記事