本稿の要点
- 顧客ごとの履歴と全社ポリシーを分離できます。
- ポリシー改訂後に古い回答が再利用されにくくなります。
- 問い合わせ単位で参照根拠を確認できます。
症状:試作では便利なのに、本番で記憶が混ざる
公式ドキュメントでは、チェックポイントを使うとAgentの状態を実行単位ごとに保存し、失敗後の再開や履歴確認が可能と説明されています。(docs.langchain.com)
最短の解決策は、AI Agent Memory Architecture 2026を5層に分けることです。 短期コンテキスト、事実記憶、イベント記憶、タスク状態、監査記録に対して、書き込み、Memory Retrieval、期限、権限を個別に設定してください。1つのベクトルストアへすべてを保存する構成は、長期記憶システムとして不十分です。
この設計記事を読むべき人
複数ユーザー向けのAgent基盤を設計しているAIアーキテクトが対象です。長時間タスクの復旧を担当するプラットフォームエンジニア、個人情報の削除や監査証跡を管理する技術責任者にも役立ちます。
まず5層に分けると、保存先の判断が崩れません
Agent Memoryで最初に決めるべきなのは製品名ではなく、情報の役割です。次の表のように、検索速度よりも「誰が書けるか」「いつ消すか」「復旧に必要か」を先に定義します。
| 記憶層 | 保存する情報 | 主な検索方法 | 期限・削除の考え方 |
|---|---|---|---|
| 短期コンテキスト | 現在の会話、直近のツール結果 | セッションID・タスクID | セッション終了後に整理 |
| 事実記憶 | ユーザー設定、確認済み属性、プロジェクト規則 | 属性検索・意味検索 | 更新時に旧値を無効化 |
| イベント記憶 | 問い合わせ履歴、変更履歴、失敗した試行 | 時系列・条件検索 | 業務目的と保持方針で決定 |
| タスク状態 | 目標、完了手順、外部副作用、再開地点 | タスクID・チェックポイント | タスク終了後に保管または削除 |
| 監査記録 | 入力、参照元、ルール、出力、操作結果 | 追跡ID・時系列 | 削除対象との関係を別管理 |
この分離には、少なくとも3つの理由があります。第1に、会話の一時的な発言と、確認済みのユーザー属性は信頼度が異なります。第2に、タスクの再開状態は意味検索ではなく、正確な状態復元が必要です。第3に、監査記録はモデルへ再注入するための記憶ではなく、後から説明するための証跡です。
長期記憶へ保存する前に、情報を正規化し、出典、作成主体、信頼度、対象範囲、更新日時を付与してください。これがない記憶は、検索で上位に出ても採用すべき根拠にはなりません。
保存先は「1つに統合」せず、役割で選びます
Agent Memoryの保存先は、データベースの数を減らすことより、障害時の挙動を明確にすることが重要です。永続化ドキュメントでも、スレッドをまたぐ共有情報には状態チェックポイントとは別のストアが必要になると説明されています。(docs.langchain.com)
| 要件 | 向いている保存方式 | 避けたい使い方 |
|---|---|---|
| 厳密な属性、権限、削除対象 | リレーショナルデータベース | 類似度だけで権限を判断する |
| 文書や経験の意味検索 | ベクトル検索基盤 | 期限切れ情報を無期限で検索する |
| 実行途中の状態 | チェックポイント対応の永続ストア | 会話ログだけで再開しようとする |
| 変更履歴と監査 | 追記型ログ、監査用データベース | モデル向けメモリと同じ領域へ混在させる |
| 一時的な高速参照 | キャッシュ | 唯一の正本として扱う |
典型的には、事実と権限の正本をリレーショナル層に置き、意味検索用の埋め込みを別に持ち、タスク状態をチェックポイントへ保存します。埋め込みを削除しても元データが残る場合があるため、削除処理は「本文、分割片、埋め込み、キャッシュ、検索インデックス」を一連の依存関係として扱います。
| 方式 | 長所 | 短所 | 採用条件 |
|---|---|---|---|
| 固定構成 | 性能と費用を予測しやすい | 突発的な同時実行に弱い | 負荷が読みやすい社内業務 |
| 弾性構成 | 利用量の変動に対応しやすい | 課金と上限管理が複雑 | 多ユーザーの公開サービス |
| 混合構成 | 正本と検索層を分けやすい | 運用設計が難しい | 監査、検索、復旧を同時に求める環境 |
保存先を決めるときは、タスク周期、同時実行数、復旧目標、データ削除の厳密さを確認します。負荷が安定していて物理的な分離や専用接続が必要なら固定構成、変動が大きいなら弾性構成、監査対象と検索対象が異なるなら混合構成が現実的です。
シナリオ別に、書き込みと検索の境界を変えます
カスタマーサポートAgent:顧客の事実と企業知識を分離する
顧客の言語設定、契約状況、過去の問い合わせは、本人または権限を持つ担当範囲に限定した事実・イベント記憶へ保存します。一方、返品条件や製品ポリシーは、企業が管理する正本の知識源から毎回検索し、記憶へ固定しない設計にします。
回答の内部には、使用した顧客記憶、参照した知識文書、各情報の更新日時を残してください。顧客が過去に受けた誤案内を「企業ポリシー」として再利用する事故を防げます。
利点
- 顧客ごとの履歴と全社ポリシーを分離できます。
- ポリシー改訂後に古い回答が再利用されにくくなります。
- 問い合わせ単位で参照根拠を確認できます。
欠点
- 毎回の検索と出典記録に処理が増えます。
- 顧客情報の削除時に関連する埋め込みも追跡する必要があります。
コーディングAgent:規則、コード事実、経験を同じメモにしない
コーディングAgentでは、リポジトリの固定規則、現在のコード構造、タスク進捗、デバッグ経験を分けます。固定規則はプロジェクト管理下の正本、コード事実は現在のブランチやコミットから取得し、デバッグ経験は環境や依存関係の変更に応じて再検証できる状態で保存します。
一時的なエラーや、すでに廃止されたパスを共有記憶へ永続化すると、後続タスクが誤った修正を繰り返します。経験を保存する場合は、発生条件、解決策、検証結果、適用範囲を同じレコードへ持たせてください。
複数Agent:共有領域には書き込み審査を置きます
私有記憶はユーザー、案件、タスクの範囲に閉じ、共有記憶は全Agentが参照してよい情報だけに限定します。共有書き込みには、出典、信頼度、作成Agent、対象テナント、競合する既存記憶を必ず付加します。
例えば、調査Agentが「顧客は解約を希望している」と保存しても、契約管理Agentが確認していなければ確定事実として扱えません。競合時は新しい記憶で上書きするのではなく、状態を「未確認」「確認済み」「撤回」に分けると、推測が共有メモリを汚染しにくくなります。
注意:名前空間だけで安全とは限りません。検索処理の前に、ユーザー、組織、案件、Agentの権限を評価し、検索結果の各項目にも同じ条件を適用してください。
第一歩:復旧できるタスク状態を先に設計します
長時間タスクでは、会話履歴を保存するだけでは再開できません。外部操作が成功したかどうか、どこまで完了したか、再実行しても安全かを構造化して持つ必要があります。チェックポイント方式では、状態履歴の確認や過去地点からの再実行が可能ですが、外部API呼び出しが再度実行される可能性も公式に説明されています。(docs.langchain.com)
実装は次の順番で進めます。
- 目標と完了条件を分離する
「請求書を作る」と「請求書が発行済みである」を別フィールドにします。
- 各ステップの副作用を記録する
送信、作成、削除、決済など、不可逆操作には外部システムのIDと結果を保存します。
- 再実行の安全性を定義する
冪等キー、重複確認、実行済みフラグを設け、復旧時に外部状態を先に照合します。
- チェックポイントを妥当な境界へ置く
1つの処理へ多くの外部操作を詰め込まず、失敗時に再実行する範囲を小さくします。
- 復旧後の検索範囲を制限する
再開したタスクの私有状態と、共有Agent Memoryを自動的に混ぜないようにします。
- 障害演習を定期的に行う
ストレージ停止、検索層の遅延、権限変更、途中でのプロセス終了を再現します。
受け入れ前に確認する項目
本番投入では、回答精度だけでなく、記憶が増え続けたときの品質と削除後の挙動を確認してください。NISTのAIリスク管理資料も、設計後だけでなく、運用、測定、評価を継続的に行う考え方を示しています。(nist.gov)
- [ ] 各記憶層に、書き込み可能なAgentと担当者を定義した
- [ ] 事実、推測、イベント、タスク状態を別のデータ型で保存した
- [ ] 検索前にユーザー、組織、案件の権限を評価した
- [ ] 検索結果へ出典、信頼度、更新日時を付与した
- [ ] 期限切れ、撤回、ユーザー削除の処理を実行した
- [ ] 本文、埋め込み、キャッシュ、インデックスの削除結果を照合した
- [ ] 外部操作の実行済み状態を保存し、二重実行を検証した
- [ ] バックアップからタスク状態と監査記録を復元した
- [ ] ストレージ停止時に、誤った記憶で回答しない設計にした
- [ ] データ型やフレームワークの変更時に脅威モデルを再評価する手順を決めた
個人情報を含む場合は、保存期間を決めるだけでなく、目的がなくなったデータを消去または匿名化できる運用が必要です。消去対象と監査上必要な参照関係を同一視せず、個人データ本体を削除した後も、許容された監査情報だけが残る構造にしてください。(ico.org.uk)
設計レビューでは、データフロー図に「出典、権限、ライフサイクル」を追記します。そのうえで脅威モデリング、召回品質評価、バックアップ復旧、権限越境試験を行い、業務データの種類やフレームワークの能力が変わった時点で再レビューします。
FAQ:本番のAgent Memoryで迷いやすい判断
AI Agentの長期記憶は何層に分けるべきですか?
本番環境では、短期コンテキスト、事実記憶、イベント記憶、タスク状態、監査記録の5層に分ける設計が扱いやすいです。各層で書き込み条件、検索方法、保持期間、削除権限を分けると、誤った情報の固定化や監査不能を防げます。
Agent Memoryの保存先はどこを選ぶべきですか?
会話の途中状態はチェックポイント対応の永続データベース、意味検索が必要な情報はベクトル検索基盤、厳密な事実や権限は通常のリレーショナルデータベースが適しています。単一の保存先に統合せず、データの性質と復旧要件で選びます。
複数のAgentで記憶を共有するとき、汚染を防ぐにはどうしますか?
共有領域へ書き込めるAgentを限定し、記憶ごとに出典、作成者、信頼度、対象範囲、更新日時を持たせます。検索時にはユーザー、組織、案件、権限の名前空間を必ず適用し、私有記憶を共有検索へ混ぜないことが重要です。
長期記憶の期限と削除はどのように決めますか?
情報の種類ごとに保持目的を定義し、目的がなくなった時点、更新されなくなった時点、ユーザーから削除依頼を受けた時点を削除条件にします。元データ、埋め込み、キャッシュ、監査上の参照関係を同時に確認し、削除後の検索結果も検証します。
Agent Memoryを本番投入するために必要な構成要素は何ですか?
保存層だけでなく、書き込み判定、検索ランキング、権限評価、期限管理、監査ログ、バックアップ、復旧手順、品質評価が必要です。特に長時間タスクでは、外部操作の実行済み状態と再開地点を保存し、二重実行を防ぐ仕組みを別に用意します。
現在の構成から、Mac環境へ移す判断
ローカルPCだけで本番前検証を続けると、担当者の端末差、電源・スリープによる停止、共有権限の再現不足が問題になりやすくなります。一般的なクラウド環境へ寄せる場合も、ネットワーク経路の制約、専用ツールとの互換性、検証用環境の分離コストを先に確認しなければなりません。
そこで、長期リソースを確定する前に、隔離したMac環境でAgent Memoryの復旧、権限越境、データ増加を検証する方法が有効です。必要な期間だけkvmbootのヘルプセンターで接続条件を確認し、チームの運用に合う場合は米国東部リージョンのMac環境を検証用途として比較してください。
ただし、長期間にわたる安定した高負荷処理、物理インターフェースへの常時接続、厳格な専有要件がある場合は、Macレンタルが最適とは限りません。短期の本番前検証や、複数担当者で同じ復旧条件を確認する用途なら、購入前に隔離環境を使って失敗条件を洗い出すほうが、構成を固定する判断材料を得やすくなります。