Memory

エージェントメモリの自動蓄積と活用

概要

エージェントメモリは、セッション終了時に会話内容からナレッジを自動抽出し、 次回以降のセッションに注入する仕組みです。 ユーザーの好み、フィードバック、プロジェクトの文脈、学習パターンなどが 会話を重ねるごとに蓄積されていきます。

メモリの種類

タイプ説明
userユーザーの役割・専門性・好みに関する情報
feedbackユーザーからの修正指示や作業方針のフィードバック
projectプロジェクトの意思決定やコンテキスト
reference外部リソースやシステムへのポインター
learnedエージェントが学習したパターンや知識

ストレージ設定

モード保存先用途
shared.claude/agents/{name}.memory/プロジェクト内に保存。Gitで共有可能
private~/.claude/agent-memory/{project-slug}/ローカルのみ。個人的なフィードバックなどに

エージェントの frontmatter で memory: shared または memory: private で設定します。memory: false でメモリを無効化できます。

自動抽出の仕組み

  1. セッション終了時、Claude Codeが出力するJSONLトランスクリプト(~/.claude/projects/ 配下)を読み取ります
  2. 前回抽出済みの位置(オフセット)以降の新しいメッセージを取得します。 オフセットは .extraction_offsets.json で管理されます
  3. 会話内容をClaude(Sonnetモデル)に渡し、メモリとして保存すべき知識を抽出します
  4. 抽出されたメモリは個別の .md ファイルとして保存され、MEMORY.md インデックスが更新されます

JSONLが利用できない場合は、シェルの出力テキストからフォールバック抽出が行われます (ANSI エスケープシーケンスを除去後、最低500文字以上必要)。

メモリファイルの形式

---
name: feedback_testing_approach
description: テスト時にモックDBを使わない方針
type: feedback
createdAt: 2025-03-15T10:30:00Z
updatedAt: 2025-03-15T10:30:00Z
pinned: true
---

統合テストでは実データベースを使用し、モックは使わない。
理由: モックとプロダクションの乖離でバグを見逃した過去がある。

セッションへの注入

セッション起動時、メモリは --append-system-prompt フラグで注入されます。 注入ルール:

  • ピン留めメモリは常に注入されます
  • 残りのスロットは updatedAt が新しい順に埋められます
  • 注入上限はエージェントの memoryLimit で制御(デフォルト: 20件)
  • 注入されたメモリは <agent-memory> タグで囲まれます

手動管理

メモリカードUI
タイプバッジ、ピン留め、ストレージ切替、注入上限の設定
メモリ編集シート
名前・タイプ・説明・内容の編集フォーム

インスペクターのメモリセクションでは以下の操作が可能です:

  • ON/OFFトグル — メモリ機能の有効/無効切り替え
  • ストレージ切り替え — shared / private の選択(プロジェクトスコープのエージェントのみ)
  • 注入上限の設定 — 1〜100件で調整
  • ピン留め — 重要なメモリをピン留めして常に注入
  • 編集 — メモリをクリックして名前・タイプ・説明・内容を編集
  • 削除 — 不要なメモリをファイルごと削除

メモリ一覧はピン留め → 更新日時順で表示され、初期表示は5件です。「もっと見る」ボタンで全件を展開できます。