Upgrade to Pro — share decks privately, control downloads, hide ads and more …

育つMemoryと残る汚染 - 家族エージェント3ヶ月で見えた責務の境界

育つMemoryと残る汚染 - 家族エージェント3ヶ月で見えた責務の境界

LINE × Bedrock AgentCore で作った家族向けエージェントを3ヶ月運用したところ、
SEMANTIC と USER_PREFERENCE の2戦略で266件の長期記憶が積み上がりました。

そして同じ運用の中で、agent 自身の誤回答が会話履歴経由で
Memory に「事実」として固定化される現象も見つかりました。
ユーザーが訂正しても、汚染されたレコードは残り続けます。

本セッションでは、CloudWatch ログと Memory レコードの実物を辿りながら、
長期記憶が「育つ」プロセスと「汚染が残る」プロセスを並べて見ていきます。
Memory に何を覚えさせ、何を覚えさせないか。
AgentCore Memory の責務の境界をお持ち帰りいただければと思います。

Avatar for Yusuke Shimizu

Yusuke Shimizu

May 28, 2026

More Decks by Yusuke Shimizu

Other Decks in Technology

Transcript

  1. 1‹#› 育つMemory と残る汚染 NRI ネットコム TECH AND DESIGN STUDY #100

    2026 年05 月28 ⽇ 志水 友輔 NRI ネットコム株式会社 ユースケのユースケース Case8 家族エージェント3 ヶ月で⾒えた責務の境界
  2. Copyright (C ) NRI Netcom, Ltd. All rights reserved. 志水

    友輔 ( しみず ゆうすけ) NRI ネットコム株式会社 / Cloud Architect PoC ・アーキテクト・技術広報 AWS Ambassador(2023-25) Amazon Bedrock AgentCore/CDK/ カメラ/ つけ麺 息子からのなぜなぜ攻撃で疲弊中 #nncstudy Blog: 3
  3. Copyright (C ) NRI Netcom, Ltd. All rights reserved. 何を作ったか

    ― 家族エージェントの構成 #nncstudy Runtime Memory LINE をインターフェースとした、家族向けの情報ハブエージェント プリントを撮って送り、持ち物や予定をLINE で聞く 記憶機構: AgentCore Memory を活用 独自機能: 画像分析機能(プリントやお知らせを OCR + 構造化) 5 Lambda Bedrock AgentCore Webhook
  4. Copyright (C ) NRI Netcom, Ltd. All rights reserved. AgentCore

    Memory :2 戦略で始めた理由 #nncstudy 6 戦略 抽出ターゲット 採用判断 Semantic 事実(Facts ) 採用:家族情報は「事実」が中心 User Preference 嗜好(Preferences ) 採用:好みの把握も有用 Summary 会話要約 見送り:セッション超えの要約は不要 Episodic イベント・教訓 見送り:タスク実行記録は不要
  5. Copyright (C ) NRI Netcom, Ltd. All rights reserved. 採用しなかった選択肢(Knowledge

    Base ) #nncstudy 7 構成 特徴(役割) 本構成での採用 AgentCore Memory 単独 対話からの個人化 (ユーザーとは誰か、過去に何があったか) ★ 採用(現状) Memory + KB 並走 個人化 + 原本ベースの事実知識 (信頼できるソースは何か) 見送り KB 単独 (RAG) 対話からの動的抽出を持たない、 静的なナレッジ検索 見送り 公式推奨は Memory と Knowledge Base の「並走」だが、今回は Memory 単独構成を選択
  6. Copyright (C ) NRI Netcom, Ltd. All rights reserved. Memory

    の動作モデル (Extraction Job) #nncstudy 8 Memory の抽出処理は LLM ベースで行われます。 「発話とレコードが1 対1 」 ではありません。 1 つのJob が読んだ会話セットから、抽出LLM が複数の事実を並列に⽣成 全て同じタイムスタンプ 会話セット USER + ASSISTANT 抽出LLM ・命令(指⽰書) ・データ 事実 N 件 (0 件もあり)
  7. Copyright (C ) NRI Netcom, Ltd. All rights reserved. 短期記憶(Events)

    と 長期記憶(Records) #nncstudy 9 Events ( 短期記憶) 1 発話 = 1 event 会話の生ログ。コンテキストウィン ドウに直接入る情報 90 日で期限切れ 例:user 「土曜の英会話教室B の持ち物 は?」   agent 「プリントとお茶と... 」 Memory Records ( 長期記憶) 1 事実 = 1 record Extraction Job の出力。構造化されベ クトル化された情報 明示的に削除されるまで永続 例: 「英会話教室B に通っている」    「英会話教室B では給食がある」 Events も Memory Extraction Job の入力になる
  8. Copyright (C ) NRI Netcom, Ltd. All rights reserved. 3

    ヶ月で266 件 ― Memory はちゃんと育つ 3 ヶ月で 266 件 の長期記憶が蓄積 5 actors / 50 sessions / 266 records メイン Actor (C998ff8d4...) に偏在:facts 196 件(76% ) Caffc Actor :39 件 preferences は少なめ(嗜好は事実より抽出されにくい) Memory は自動で育つ ― AgentCore の良いところ #nncstudy 10
  9. Copyright (C ) NRI Netcom, Ltd. All rights reserved. 5/2

    の会話タイムライン Step 0 (5/1 10:12 ) :幼稚園A 「春のえんそく」お知らせ画像分析(給食袋言 及あり) Step 1 (5/2 09:54:24 ) :user 「毎週土曜の 英会話教室B いくときの持ち物教 えて」← 給食には触れていない Step 2 (5/2 09:54:33 ) :agent 誤回答「給食がある日は追加で:コップ、ス プーン・フォーク入れ」 Step 3 (自動) :Memory Extraction Job が agent 出⼒を「事実」として保存 Step 4 (後刻) :次質問時、汚染レコードを参照して再び誤回答 Step 5 (10:18:17 ) :user 「英会話教室B には給食ない」と訂正 Step 6 (10:18:20 ) :agent 「完全に私の混乱でした」と謝罪 #nncstudy 12
  10. Copyright (C ) NRI Netcom, Ltd. All rights reserved. 自⼰汚染とは

    3 点突合(assistant 発話由来の立証) user 発話: 「毎週土曜の英会話教室B ⾏くときの持ち物教えて」 assistant 発話: 「給食がある日は追加で:コップ、スプーン・フォーク 入れ」 Memory レコード: 「英会話教室B では給食が提供される日がある」 「給食」は user 発話に存在せず、assistant 発話と Memory にのみ存在 訂正後(10:18 )も汚染レコードは残存 / 3 日経過 / 16 ⽇経過時点でも⽣存 定義:自⼰汚染 / self-contamination agent が混同して出した誤回答が、会話履歴経由で長期記憶に「事実」とし て固定化される現象 LLM の指示違反ではなく、データパイプライン仕様に起因する構造的現象 言い換え:ハルシネーションの永続化 #nncstudy 13
  11. Copyright (C ) NRI Netcom, Ltd. All rights reserved. 訂正しても残る

    訂正発話は既存を Update せず、別レコードとして 並列追加 される 既存の汚染レコードはそのまま残る → 訂正したのに、汚染①は消えない #nncstudy 14 時刻 内容 分類 5/2 09:54:33 英会話教室B に通っている 正常 5/2 09:54:33 英会話教室B では給食日あり 汚染① 5/2 10:18:20 英会話教室B がある日は給食がない 訂正(並列追加)
  12. Copyright (C ) NRI Netcom, Ltd. All rights reserved. 10

    日後、嘘は育っていた 5/12 に 合成汚染 が生成(5/2 汚染① + 幼稚園A コップ持参情報を合体) 16 日経過、4 レコード全て⽣存 冒頭の266 件、実は嘘も育っていた #nncstudy 15 時刻 内容 分類 5/2 09:54:33 英会話教室B に通っている 正常 5/2 09:54:33 英会話教室B では給食日あり 汚染① 5/2 10:18:20 英会話教室B がある日は給食がない 訂正(並列追加) 5/12 08:17:32 英会話教室B 給食日にコップ持参 拡大汚染
  13. Copyright (C ) NRI Netcom, Ltd. All rights reserved. 矛盾の並置

    ― Memory の仕様 vs 実機で起きたこと #nncstudy 16 Memory の仕様・公式の言い分 実機で起きていること Extract ONLY from user messages agent の誤回答が事実として保存された 学習して育つ 訂正しても並列で残った Prioritize recency 16 日後にむしろ強化された
  14. Copyright (C ) NRI Netcom, Ltd. All rights reserved. 戦略間対比

    ― facts 4 件 vs preferences 0 件 同じ Memory リソース・同じ Actor ・同じ会話を入力 汚染レコード:SEMANTIC (facts ) 4 件 / USER_PREFERENCE (preferences ) 0 件 「USER_PREFERENCE は安全」と短絡しない 両戦略の システムプロンプトは同じ:user 発話のみ抽出と命令 両戦略とも 公式の仕様説明は同じ:実装は USER と ASSISTANT 両方を 処理 構造的弱点は両戦略共通 差の正体 = 内容形式のミスマッチ SEMANTIC : 「事実」抽出 → 「給食日あり」は事実形でターゲット⼀致 USER_PREFERENCE : 「嗜好」抽出 → 事実形ではない #nncstudy 17
  15. Copyright (C ) NRI Netcom, Ltd. All rights reserved. なぜ起きるか①

    ― 発生のメカニズム 原因1 :発生(段階①)= 公式ドキュメント自体が⽭盾している LLM への命令: 「Extract ONLY from the user messages 」 公式の仕様説明: 「processes only USER and ASSISTANT role messages 」 LLM の入力データに ASSISTANT が混ざる以上、命令で完全には縛れな い 5/2 の汚染はバグではなく 仕様通りの挙動 #nncstudy 18
  16. Copyright (C ) NRI Netcom, Ltd. All rights reserved. なぜ起きるか②

    ― 残存のメカニズム + 結論 原因2 :残存(段階③)= SEMANTIC Consolidation は recency 優先ではな い 「Prioritizing recency 」は USER_PREFERENCE 文脈 SEMANTIC Consolidation : 「New fact contradicts existing → use AddMemory 」 訂正発話が来ても Update されず並列追加 → 5/12 のように 増えていく 結論:責務は Memory の外側に置くしかない DeleteMemoryRecord API はあるが、いつ消すかの判断は AgentCore の責務外 プロンプト / パイプライン両面で完全制御は不可能 訂正検知レイヤを自前で持つしかない #nncstudy 19
  17. Copyright (C ) NRI Netcom, Ltd. All rights reserved. 全戦略の構造的弱点(EPISODIC

    / SUMMARY 含む) 戦略によって汚染の形態が変わる SEMANTIC + USER_PREFERENCE は最も汚染が固定化しやすい組み合わせ #nncstudy 20 戦略 発生 残存 構造的特徴 SEMANTIC 高 高 5/2 観測ケース USER_PREFERENCE 中 高 推測 preference が残留 EPISODIC 高 高 reasoning / tool が抽出対象、誤教訓が永続化 SUMMARY 中 中 session スコープが防壁、誤要約は残る
  18. Copyright (C ) NRI Netcom, Ltd. All rights reserved. 軽度の歪み3

    つ(⾃⼰汚染との対比) ①〜③は「気づけば直る」軽度の歪み ④は構造的要因が別物(プロンプト命令で縛れない) #nncstudy 21 パターン 深刻度 直し方 ① 同一エンティティの呼称揺れ 中 気づけば修正可、検索精度低下 ② 同一スケジュールの重複・上書き不在 中 気づけば修正可、古い情報を返す ③ 時期相対表現の意味劣化 中 気づけば修正可、時系列誤判断 ④ 自⼰汚染 高 気づいても直らない / 時間とともに育つ
  19. Copyright (C ) NRI Netcom, Ltd. All rights reserved. 3

    層モデル(内側 / Events / 外側)+ Knowledge Base 並走 内側:AgentCore Memory (長期記憶、事実抽出、ベクトル検索) Events 層:短期記憶(生会話ログ、Extraction Job の入⼒) 外側:訂正検知 / 削除ロジック(顧客側で実装) KB 並走:内側を補完する別アーキテクチャ AgentCore Memory (個人化)+ Bedrock KB / RAG (原本ベースの事実知 識) 原本ベースの retrieval で誤情報の検出余地が増える 家族エージェントは現状未採用 → 対処策の選択肢として再評価 #nncstudy 23
  20. Copyright (C ) NRI Netcom, Ltd. All rights reserved. 対処策の全体像

    #nncstudy 24 対処策 レイヤ 効果 appendToPrompt 内側のプロンプト調整 △ デフォルトに同じ命令ありで効果 限定 Self-managed strategy 内側の抽出ロジック自前化 ◎ 完全制御可、ただし工数⼤ Knowledge Base 並走 内側を補完する別アーキ ◦ 原本ベースの retrieval で検出余地 訂正検知 Lambda 外側 ◦ user の「違う」を検知して該当レ コード削除 DeleteMemoryRecord 外側 ◦ 手動 or ⾃動で汚染レコード削除
  21. Copyright (C ) NRI Netcom, Ltd. All rights reserved. 家族=最小の組織

    ― 渡せた∕渡せなかった 渡せたこと(agent / システム側に委ねて良かった) お知らせプリントの画像分析・構造化 持ち物リストの整理・チェック 過去の質問・回答の参照(コンテキスト維持) インタフェース選択(LINE に置いた判断) 渡せなかったこと(人が責任を持つべきだった) 「給食日があるか」のような事実の確証 訂正の判断(user が「違う」と気づかなければ汚染は残り続けた) メモリの長期メンテナンス(古い汚染レコードの削除判断) #nncstudy 25
  22. Copyright (C ) NRI Netcom, Ltd. All rights reserved. #nncstudy

    Memory は何を覚えるべきか ― ではなく 何を覚えさせないか あなたのエージェント、答えを覚えていますか? それとも、嘘を覚えていますか? 26