development·

Claude Code のコンテキスト圧縮とメモリ永続化|/compact・CLAUDE.md・MEMORY.md・claude-memを使い分ける

Claude Code を長時間セッションで使い倒すための「コンテキスト圧縮」と「メモリ永続化」を徹底解説。/compact コマンド、CLAUDE.md と MEMORY.md の使い分け、auto memory(v2.1.59以降)、claude-mem プラグインの4層モデルと運用ノウハウを整理します。

Claude Code のコンテキスト圧縮とメモリ永続化|/compact・CLAUDE.md・MEMORY.md・claude-memを使い分ける

Claude Code を数時間使っていると、コンテキストが膨らみ、会話の応答速度が落ち、ときに重要な前提を忘れ始めます。長期プロジェクトで複数日セッションを跨ぐと、「前回の議論を全部失って一から説明する」という非効率にも直面します。

これらを解決するのが、/compact による会話圧縮と、CLAUDE.md / MEMORY.md / claude-mem プラグインによるメモリ永続化です。本記事では、この 4 つを「4 層メモリモデル」として整理し、各層の使い分けと運用ノウハウをまとめます。CLAUDE.md の書き方はclaude.md 書き方ガイド、基本はClaude Code完全ガイドもご覧ください。

この記事を読むとわかること

  • /compact / CLAUDE.md / auto memory(MEMORY.md)/ claude-mem プラグインの 4 層メモリモデル
  • それぞれの適切な使い分けとテンプレート
  • /compact の実行タイミング(コミュニティベストプラクティス)
  • CLAUDE.md が長大化したときの分割パターン
  • auto memory が秘密情報を自動保存するリスクと対策
  • 長期プロジェクト・複数 worktree 並列開発での運用シナリオ

結論 ── コンテキスト管理は「圧縮 + 永続化」の 2 層構造

Claude Code のコンテキスト管理は、会話履歴を圧縮する /compact コマンドと、セッションを跨いで情報を持続させる「メモリ」の 2 層で構成されます。 CLAUDE.md はプロジェクト常駐の手動指示、MEMORY.md(auto memory)は Claude が自動で書き溜める学習ログ、claude-mem はサードパーティのベクトル DB 型永続化です。

これらを役割ごとに使い分けることで、長時間セッション・長期プロジェクト・並列 worktree など、Claude Code を「日常的な仕事道具」として成立させる基盤が整います。

4 層メモリモデルの全体像

ファイル / コマンド持続期間書き手主な用途
1. 現セッション/compact で圧縮セッション内のみClaude(自動)会話履歴を要約
2. プロジェクト常駐CLAUDE.mdプロジェクト寿命人間プロジェクト固有の永続指示
3. 自動学習メモリMEMORY.md(auto memory)人間が削除するまでClaude(自動)作業中に学んだコマンド・規約
4. 外部永続化claude-mem 等のプラグイン永続プラグイン(自動)過去セッションをベクトル検索

/compact コマンドの使いこなし

実行タイミング(60% ルール)

/compact は会話履歴をサマリーに圧縮するコマンドです。コンテキスト使用率 60% あたりで proactive に実行するのが、コミュニティで広く共有されているベストプラクティスです(MindStudio のガイドなど)。公式には閾値の明文化はありませんが、警告が出てから実行すると情報損失が大きくなります。

圧縮後に保持されるもの・失われるもの

保持失われる
CLAUDE.md(自動再読込)会話の細部・中間思考
Claude の高レベルな判断の履歴ツール呼び出しの生ログ
最近のファイル編集の要約長いファイル全文の記憶

Post-compaction hook の活用

/compact 後に自動で特定の処理(例: プロジェクト固有の文脈を再注入)を走らせたい場合、Hooks 機能が使えます。

{
  "hooks": {
    "PostCompaction": [
      { "hook": "cat .steering/specs/current-feature.md" }
    ]
  }
}

詳細はClaude Code Hooksで自動化する5つの実例を参照してください。

CLAUDE.md のベストプラクティス

200 行以内ルール

CLAUDE.md が長大化すると、コンテキストを圧迫して Claude の指示遵守率が下がる傾向があります。200 行を一つの目安としてコミュニティで運用されていますが、これは公式の閾値ではなく経験則です。

役割別ファイル分割

長大化する前に、役割別にファイルを分けて CLAUDE.md から include するのが現実的です。

CLAUDE.md                  # メイン(各ファイルへの参照と優先順位)
.claude/rules/
  code-quality.md          # コード品質ルール
  typescript-style.md      # TypeScript コーディング規約
  git-workflow.md          # Git ワークフロー
  review-quality.md        # コードレビュー基準

命令の優先順位

CLAUDE.md には、明示的な優先順位を書いておくと迷ったときに Claude が判断しやすくなります。

# 優先順位
1. セキュリティ(秘密情報を出力しない、権限を超えない)
2. 既存のコーディング規約
3. ユーザーの直近の指示
4. Claude の好み

Auto Memory(MEMORY.md)の運用

有効化の前提

Claude Code v2.1.59 以降で利用可能です。インストール済みなら特別な設定なく使えます(公式 memory ドキュメント参照)。

/memory コマンドでの閲覧

/memory コマンドで auto memory フォルダを開き、Claude が自動保存した内容を確認できます。ファイルは plain markdown で、人間が自由に編集・削除できます。

自動保存される情報の種類

Claude が「次回以降も役立ちそうだ」と判断した情報が自動で追記されます。典型例:

  • ビルドコマンド(pnpm test で型チェックまで走る等)
  • デバッグ時の気づき(このリポジトリの DB 接続は .envrc が必要 等)
  • アーキテクチャの要約
  • コードスタイルの好み
  • ワークフローの習慣

手動編集・削除の推奨タイミング

  • プロジェクトの前提が変わった(DB を PostgreSQL から MySQL に移行等)
  • 古いビルドコマンドが記録されている
  • 秘密情報が誤って書かれている(後述の Gotcha 参照)

claude-mem プラグインで一歩先へ

thedotmack 氏が開発する claude-mem は、Claude Code の会話を AI で圧縮し、ベクトルデータベースに保存して、新しいセッションで関連部分を自動注入するプラグインです。

3 層ワークフロー

  1. Capture: セッション中の会話・ツール呼び出しを収集
  2. Compress: Claude Agent SDK で圧縮・要約
  3. Retrieve: 新しいセッションの入力に対して、ベクトル検索で関連する過去文脈を注入

Vector DB 検索の仕組み

各要約に embedding を付けて保存し、新しい質問に対してコサイン類似度で関連文脈をトップ N 件返す、という標準的な RAG アプローチです。

導入判断基準

  • 向く: 数週間〜数ヶ月の長期プロジェクト、過去議論を頻繁に振り返る、会話の差分管理が重要
  • 向かない: 短期・使い捨てのタスク、1 日で終わる作業

実践運用シナリオ

シナリオ1: 1 週間の長期タスク

  • 日次で /compact を proactive に実行(60% あたり)
  • CLAUDE.md に前提をまとめ直す
  • claude-mem を有効化して過去 1 週間の文脈を呼び出し可能に

シナリオ2: 複数 worktree 並行開発

  • CLAUDE.md はプロジェクトルート(全 worktree 共通)
  • worktree 固有の前提は .steering/worktree/<branch>.md に書く
  • auto memory は worktree ごとに分離する運用を明示

シナリオ3: チーム横断プロジェクト

  • CLAUDE.md は Git で共有
  • auto memory は個人ごと(共有しない、秘密情報混入リスク)
  • ベクトル DB(claude-mem 相当)を持つならチーム共有 DB で役割別インデックスに分ける

Gotcha ── メモリ運用の落とし穴

CLAUDE.md に秘密情報を書かない

CLAUDE.md は Git で共有されるのが通常です。API キー・DB 接続文字列・個人情報を書くと即座に漏洩します。秘密情報は環境変数・シークレットマネージャで管理し、CLAUDE.md には「環境変数 XXX 経由」と抽象表現で書きます。

auto memory(MEMORY.md)にも秘密情報が自動記録される可能性

Claude が会話中に触れた DB パスワード・API キー・個人情報が、auto memory に自動で記録されることがあります。/memory コマンドで定期的に内容を確認し、秘密情報が含まれていたら削除してください。

claude-mem 等の外部プラグインのデータ保存先

プラグインによってはベクトル DB がローカルではなくクラウドに保存されることがあります。社外秘の情報を扱うプロジェクトでは、保存先と暗号化方式を事前に確認してください。

auto memory の陳腐化リスク

半年前の auto memory が今でも正しいとは限りません。「これは古い」と Claude が判断できないケースでは、人間が定期的に棚卸しする運用を組み込んでください。

/compact の情報損失を可視化する

圧縮前に、失いたくない情報を意図的にファイルとして書き出しておくと安全です。

# /compact 前に、重要な議論をファイルに保存
/save-context .steering/notes/decision-2026-04-18.md
/compact

よくある質問

よくある質問

まとめと次のステップ

Claude Code のコンテキスト管理は、「すべてを記憶させる」ではなく「適切な層に適切な情報を配置する」という発想で設計するのが効率的です。/compact はセッションの中の整理、CLAUDE.md はチームで共有する永続指示、MEMORY.md は個人の自動学習、claude-mem は長期プロジェクトのベクトル検索 ── 4 つの役割を理解し、使い分けてください。

まずは CLAUDE.md を 200 行以内で整理、次に /compact を 60% で実行する習慣、最後に必要に応じて claude-mem を試す、の順で導入するのが実用的です。

次のステップ:

関連記事

koromo からの提案

AIツールの導入判断は、突き詰めると「投資対効果が合うか」「リスクを管理できるか」「事業にどう効くか」の3点に帰着します。koromo では、この判断に必要な材料を整理するところからご支援しています。

以下のような状況にある方は、まず現状の整理だけでも前に進むきっかけになります。

  • AIで開発や業務を効率化したいが、自社に合う方法がわからない
  • 社内にエンジニアがいない / 少人数で、AI導入の進め方に見当がつかない
  • 外注先の開発会社にAI活用を提案したいが、何を求めればいいか整理できていない
  • 「AIを使えばコスト削減できるはず」と感じているが、具体的な試算ができていない

ツールを使った上で相談したい方はお問い合わせフォームから「AI活用の相談」とご記載ください。初回の壁打ち(30分)は無料で対応しています。

本記事の更新方針: 本記事は定期的に内容を見直しています。記事内の判断軸・運用パターンは執筆時点での koromo の実務的知見に基づくものであり、個別環境での効果を保証するものではありません。仕様の最新情報は必ず Claude Code Memory 公式ドキュメント をご確認ください。

Related Articles