AIエージェントが過去の作業を覚えていれば、プロジェクト規則や好み、決定を毎回説明する必要はありません。しかし全会話とツール結果を毎回追加すると、遅延とコストが増え、古い情報が現在の判断を汚染します。
良いメモリは巨大な保存庫ではありません。正しい範囲で必要な情報だけを取り出し、誤りを訂正・削除できる状態管理システムです。本稿では特定のベクトルDBではなく、何をどこに保存し、いつ検索し、どう評価するかを整理します。

1. 五つの状態を分離する
OpenAIのConversation stateは以前の応答IDやConversationオブジェクトで会話を継続する方法を説明します。Google ADKは一つの会話のイベントと一時状態を扱うSessionと、複数会話から長期知識を検索するMemoryServiceを分けています。両方を単に「記憶」と呼ぶと保持期間、権限、正しさが混ざります。
| 層 | 保存対象 | 寿命 | 原則 |
|---|---|---|---|
| 現在の文脈 | 今の回答に必要な指示・根拠 | 1リクエスト | 小さく関連性を高く |
| セッション状態 | 工程、ID、一時的な選択 | 1作業・会話 | イベントと差分を保持 |
| コンパクション | 完了事項と次の行動の要約 | 長時間作業 | 真実ではなく継続性 |
| 長期記憶 | 検証済みの好み・決定・手順 | 複数セッション | 範囲・出典・期限・版 |
| 外部の正本 | 契約、CRM、DB、規程 | システム方針 | 最終確認元を維持 |
「利用者は表よりリストを好む」は長期的な好みになり得ます。一方、今日の会議時刻はカレンダーを正本とし、デプロイ失敗はセッション状態、検証済みの再発防止手順だけを長期記憶候補にします。
2. コンパクションは長期記憶ではない
長い作業ではツール結果、ファイル、途中経過が文脈を埋めます。OpenAIのCompactionは会話状態を圧縮して作業を続ける仕組みを説明します。Anthropicも文脈が大きくなると再現精度が低下し得るため、コンパクションや古いツール結果の選択的削除を案内しています。
圧縮後には現在の目標と完了条件、検証済みの結果、決定と制約、正確なファイル・レコードID、未解決事項と次の一手を残します。再生成できる出力や利用済みの長い検索結果は外せます。ただし要約は損失を伴うため、契約金額や同意記録の正本にはできません。
3. 長期記憶への書き込み契約を作る
AnthropicのMemory toolではモデルがファイル操作を要求し、実際の保存はアプリケーションが管理します。Google ADKは完了セッション、一部イベント、明示的なMemoryEntryを取り込めます。モデルが生成した全内容を自動承認する理由にはなりません。
memory_id, scope, type, content
source_uri_or_record_id, observed_at, effective_from, expires_at
confidence, sensitivity, version, supersedes
created_by, approved_by, allowed_readers
| 候補 | 基本処理 | 理由 |
|---|---|---|
| 明示された好み | 保存可 | 利用者範囲と変更時点を記録 |
| 承認済みの決定 | 保存推奨 | 根拠と承認者を接続 |
| 検証済み手順 | 保存推奨 | 適用条件と版を保持 |
| モデルの推測 | 保存禁止 | 後で事実として再利用される |
| パスワード・トークン | 保存禁止 | 秘密管理システムを使用 |
| 生のツール出力 | 原則保存しない | 大きく、古くなり、注入を含み得る |
| 価格・在庫・規程 | 短い期限か参照のみ | 最新の正本を再確認 |
次のセッションでも有用か、根拠があるか、誰が読めるか、いつ古くなるか、削除できるかを答えられない情報は昇格させません。
4. 全注入ではなく必要時に検索する
Anthropicはメモリ全体を先に入れず、作業中に必要なファイルだけ読むjust-in-time検索を説明します。Google ADKのMemoryServiceも長期保存から関連断片を検索します。
- 現在の作業から必要な種類と範囲を決める。
- 利用者・組織・プロジェクト権限で先に絞る。
- 未期限切れの候補を意味、キーワード、正確なIDで検索する。
- 少数候補の出典と時刻を確認する。
- 衝突時は最新の有効記録か外部正本を優先する。
- 利用したmemory_idをログに残す。

ベクトル類似度だけでは似た別顧客や過去の規程を排除できません。範囲、時刻、権限を意味順位より前に適用します。取得内容は命令ではなく未信頼データとして扱い、保存済みのプロンプトインジェクションが恒久的なツール命令にならないようにします。
5. 誤った経験は将来の失敗を増幅する
ACL 2026の査読論文は、取得した経験の入力が現在の作業に似るほどエージェントが過去の行動に従いやすいと報告しました。誤った実行が反復されるエラー伝播と、以前は成功しても新しい作業には合わない経験再生が確認されています。
保存直後だけでなく、その記憶を使った後続作業を評価します。失敗に結び付いた記憶は信頼度を下げるか隔離し、黙って上書きせず新バージョンとsupersedes関係を残します。
6. 訂正と削除を中心機能にする
長期記憶には作成だけでなく、閲覧、更新、廃止、監査が必要です。好みや規程が変わった後も古い値を返すエージェントは、記憶のないエージェントより危険です。
書込: 候補 → 出典 → 機密度・範囲 → 期限 → 承認
読出: 範囲 → 最新性 → 関連性 → 衝突解決 → 最小注入
訂正: 新版 → 旧記憶を接続 → キャッシュ無効化
削除: 保存・索引・バックアップ方針に従い削除 → 記録
AnthropicのMemory toolでは保存操作をアプリ側が実行します。利用者ごとの名前空間とパストラバーサル防止を強制します。個人データには目的と保持期間を定め、「自分の記憶を見る・訂正する・削除する」操作を用意するのが望ましい設計です。
7. 再現率だけで評価しない
同じ評価セットをメモリあり・なしで比較し、無関係な質問も含めて過剰検索を検出します。
| テスト | 合格条件 | 代表的失敗 |
|---|---|---|
| 正確な想起 | 正しい範囲・値・出典 | 別利用者の記憶が混入 |
| 時間的訂正 | 新値を優先し履歴保持 | 古い規程を再利用 |
| 矛盾処理 | 衝突を示し正本確認 | 勝手に一方を選択 |
| 削除保証 | 保存・キャッシュから復活しない | 索引に残存 |
| 無関係質問 | 記憶を取得しない | 文脈を汚染 |
| 攻撃入力 | 保存命令をデータとして隔離 | 注入が長期規則になる |
| 費用・遅延 | 効果が検索負荷を上回る | 遅く高価になる |
最終タスク成功率、誤記憶採用率、削除漏れ、P95遅延、追加トークンも記録します。記憶が助ける質問、妨げる質問、時間で正解が変わる質問を分けることが重要です。
実装の順序
- 一つの業務と一人の利用者範囲から始める。
- セッション状態と長期記憶を分離する。
- 決定、明示的な好み、検証済み手順だけを許可する。
- 出典、適用時点、期限、版を必須にする。
- 少数だけを取得し、使用memory_idを記録する。
- 自動保存拡大より先に訂正・削除・監査画面を作る。
- メモリなし基準線と同じセットで比較する。
- 品質向上を確認してから自動書き込みを拡張する。
結論:容量より制御が重要
AIエージェントはすべてを覚える必要はありません。現在の文脈は小さく、セッションは進行状態、コンパクションは継続性、長期記憶は検証済みの再利用情報に限定します。契約や顧客データは外部の正本で再確認します。
成功基準は保存量ではなく、必要時に正しい記憶を取得し、根拠をもって訂正し、要求時に完全削除できることです。
主要資料
- OpenAI: Conversation state
- OpenAI: Compaction
- Anthropic: Memory tool
- Anthropic: Context windows
- Anthropic: Context editing
- Google ADK: MemoryService
- Google ADK: Session
- ACL 2026: How Memory Management Impacts LLM Agents
API機能とデータ保持条件は変更されます。実装前に最新の公式文書、組織のプライバシーポリシー、適用法を確認してください。