[{"data":1,"prerenderedAt":260},["ShallowReactive",2],{"content-\u002Fcontents\u002Ftrustworthy-memory-search":3,"surroundPost-\u002Fcontents\u002Ftrustworthy-memory-search":251},{"id":4,"title":5,"body":6,"createdAt":235,"description":236,"draft":237,"extension":238,"meta":239,"navigation":240,"path":241,"seo":242,"stem":243,"tags":244,"thumbnail":249,"updatedAt":235,"__hash__":250},"contents\u002Fcontents\u002Ftrustworthy-memory-search.md","Beyond Similarity: Trustworthy Memory Search for Personal AI Agents",{"type":7,"value":8,"toc":208},"minimark",[9,13,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59,62,65,68,71,74,77,80,83,86,91,94,97,100,113,116,127,131,135,138,142,145,149,152,156,159,163,166,170,173,177,180,184,187,191,194,198,201,205],[10,11,12],"h2",{"id":12},"この論文の何がいいか",[14,15,16],"p",{},"個人AIアシスタントを育てると、記憶はすぐに便利な資産になる。一方で、記憶が増えるほど「この文脈にこの情報を入れていいのか」という問題が大きくなる。似ている記憶を取り出せることと、それを今の判断材料にしてよいことは別の問題だ。",[14,18,19],{},"この論文が良いのは、memory retrieval を精度改善の部品ではなく、安全境界として扱っているところ。検索品質だけでなく、漏洩、迎合、tool-call drift、memory-induced jailbreak という運用上の壊れ方をまとめて見られる。",[14,21,22],{},"agent memory、wiki、state、audit log、skill を持つアシスタントでは、記憶の保存設計だけでなく、読み出し時の gate が必要になる。この論文は、その gate をどこに置くか、どの脅威を見ればよいか、既存 memory framework にどう差し込むかを考える入口になる。",[10,24,25],{"id":25},"どんな論文か",[14,27,28],{},"この論文の中心問いは、personal AI agent が長期記憶を使う時、検索結果を similarity だけで LLM context に入れてよいのか、というものだ。長期記憶は便利だが、一度保存された情報は後の会話や tool use に持ち込まれるため、検索は単なる情報取得ではなく制御点になる。",[14,30,31],{},"既存の memory pipeline は、現在の query に意味的に近い記憶を vector search で取り出し、そのまま prompt に入れる設計が多い。しかし、意味的に近い記憶が現在の目的に適切とは限らない。別ドメインの個人情報が混ざる、ユーザーに迎合する、tool call が別方向へ逸れる、記憶を経由して jailbreak が起きる、といった危険がある。",[14,33,34],{},"論文はこの問題を memory search as a trust boundary として定式化する。代表的な memory framework である A-Mem、Mem0、MemOS と、persistent state と tool use を持つ real-world personal-agent environment の OpenClaw を評価対象にし、memory が durable control channel になることを示す。",[14,36,37],{},"提案は MemGate という軽量 plug-in である。候補記憶をすべて消すのではなく、query-conditioned neural gate により、現在の文脈に入れてよい記憶だけを通す。LLM 自体の改造、memory database の書き換え、推論時の LLM judge を必要としない点が実運用向きである。",[14,39,40],{},"Beyond Similarity は、personal AI agent の長期記憶検索を trustworthiness の観点から見直す論文である。対象は、A-Mem、Mem0、MemOS のような代表的 memory framework と、persistent state と tool use を持つ OpenClaw のような実環境である。",[14,42,43],{},"問題設定は明快で、semantic similarity は便利だが十分ではない。現在の query に近い記憶が、現在の目的、権限、ドメイン、会話文脈、tool use に対して適切とは限らない。論文はここに trustworthiness gap があると見る。",[10,45,46],{"id":46},"課題と貢献",[14,48,49],{},"第一の貢献は、memory search を trust boundary として定式化したこと。長期記憶は単なる参照情報ではなく、後続の推論や tool call を動かす durable control channel になり得る。",[14,51,52],{},"第二の貢献は、代表的 memory framework と real-world personal-agent environment を使って、similarity-driven memory retrieval がどのような threat を引き起こすかを評価したこと。",[14,54,55],{},"第三の貢献は、MemGate という軽量な query-conditioned neural gate を提案したこと。候補記憶が LLM context に入る前に admissibility を判定し、危険な記憶注入を減らす。",[10,57,58],{"id":58},"手法のしくみ",[14,60,61],{},"通常の memory pipeline では、ユーザー query や現在の task context が vector store に渡され、semantic similarity が高い記憶が取り出される。その候補がほぼそのまま LLM context に入るため、検索結果の適切性判断が弱い。",[14,63,64],{},"MemGate は、この retrieval と context injection の間に置かれる。まず従来どおり cosine similarity で候補記憶を取る。その後、現在の query embedding と候補 memory embedding を組にして、各候補を再スコアする。",[14,66,67],{},"具体的には、query embedding、memory embedding、両者の要素ごとの積を連結した特徴を MLP に入れ、0〜1 の連続マスクを出す。このマスクを memory embedding に掛けることで、現在の文脈では危ない次元や余計な次元を弱める。",[14,69,70],{},"最終スコアは、query embedding とマスク後の memory embedding の gated cosine similarity で計算する。つまり、MemGate は記憶全体を単純に捨てる binary classifier ではなく、記憶表現のどの部分を残すかを query ごとに変える representation-level filter である。",[14,72,73],{},"学習では、現在の query に対して使ってよい記憶と、意味的には近いが文脈的に危ない記憶の preference pair を使う。DPO で安全な記憶の選択確率を上げ、危ない記憶の選択確率を下げる一方、有用な記憶のマスクはなるべく崩さないよう preservation penalty を入れる。",[14,75,76],{},"重要なのは、MemGate が LLM 本体の改造を必要としない点である。memory database を書き換えず、推論時に別の LLM judge を毎回呼ぶ必要もない。既存 memory framework に plug-in として差し込みやすい。",[14,78,79],{},"この設計により、semantic search は候補生成として残しつつ、context injection の直前で trust decision を追加する。つまり、検索を二段階に分け、似ている記憶を探す段階と、今使ってよい記憶を選ぶ段階を分離する。",[10,81,82],{"id":82},"検証結果",[14,84,85],{},"論文は、memory-induced threat と long-term memory utility の両方を見る。単に記憶を減らせば安全になるが、それでは personalization の価値が落ちるため、utility を保ったまま threat を減らせるかが焦点になる。",[87,88,90],"h3",{"id":89},"評価対象にはa-memmem0memos-と-openclaw-が含まれる","評価対象には、A-Mem、Mem0、MemOS と OpenClaw が含まれる",[14,92,93],{},"これにより、単一実装だけでなく、複数の mainstream memory framework と real-world agent setting で同じ問題が出るかを見ている。",[14,95,96],{},"論文の主張では、MemGate は cross-domain leakage、sycophancy、tool-call drift、memory-induced jailbreak といった脅威を減らしつつ、長期記憶の効用を保つ。記憶検索を trust boundary として追加することが、性能と安全性の両立に効くという読みになる。",[10,98,99],{"id":99},"課題と議論",[101,102,103,107,110],"ul",{},[104,105,106],"li",{},"この論文の見方を実運用に移すなら、memory retrieval は recall 最大化だけで最適化してはいけない。個人情報、別プロジェクトの判断、過去の一時的な気分、古い運用ルールなどは、意味的に近くても現在の context へ入れない方がよい場合がある。",[104,108,109],{},"一方で、gate の方針は環境ごとに調整が必要になる。何を leakage と見なすか、どの tool call を drift と見るか、ユーザーの明示指示と過去記憶のどちらを優先するかは、agent の役割やデータ境界に依存する。",[104,111,112],{},"特に personal AI agent では、memory はユーザー体験そのものに関わる。安全のために何でも遮断すると人格や継続性が弱くなるが、何でも入れると文脈汚染が起きる。この論文は、その中間に gate を置く設計として読める。",[10,114,115],{"id":115},"次に読むなら",[101,117,118,121,124],{},[104,119,120],{},"次に読むなら、agent memory をシステム負荷として測る Agent Memory: Characterization and System Implications of Stateful Long-Horizon Workloads が近い。memory の write path、read path、freshness、storage を見る語彙が補える。",[104,122,123],{},"実装寄りに読むなら、Mem0、A-Mem、MemOS のような memory framework の retrieval pipeline と組み合わせて、どこに admissibility gate を置くかを見るとよい。",[104,125,126],{},"運用へ落とすなら、memory を保存する時の分類だけでなく、読み出す時の許可条件を作る。たとえば、プロジェクト境界、機密度、鮮度、ユーザーの明示指示、tool use への影響を gate の観点にできる。",[10,128,130],{"id":129},"読後qa","読後Q&A",[87,132,134],{"id":133},"この論文の中心問いは","この論文の中心問いは？",[14,136,137],{},"personal AI agent の長期記憶検索で、semantic similarity が高い記憶をそのまま LLM context に入れてよいのか、という問い。論文は、検索を trust boundary として扱うべきだと主張する。",[87,139,141],{"id":140},"similarity-search-の何が危ない","similarity search の何が危ない？",[14,143,144],{},"意味的に近い記憶が、現在の文脈に適切とは限らない。別ドメインの情報が混ざる、ユーザーに迎合する、tool call が逸れる、記憶経由で jailbreak が起きるといった問題がある。",[87,146,148],{"id":147},"memgate-は何をする","MemGate は何をする？",[14,150,151],{},"retrieval で得られた candidate memories が LLM context に入る前に、current query に対して通してよいかを判定する query-conditioned neural gate。",[87,153,155],{"id":154},"信頼ゲートでは具体的に何を計算している","信頼ゲートでは具体的に何を計算している？",[14,157,158],{},"query embedding、memory embedding、両者の要素ごとの積を MLP に入れ、memory embedding に掛ける 0〜1 の連続マスクを出す。そのマスク後の memory embedding と query embedding で gated cosine similarity を計算し、候補記憶を再ランキングする。",[87,160,162],{"id":161},"どうやって関連性が高いと判定している","どうやって関連性が高いと判定している？",[14,164,165],{},"最初の候補生成は通常の cosine similarity による semantic search。MemGate はその候補に対して、意味的に近いだけでなく現在の文脈で使ってよいかを反映した gated similarity を計算し、最終 top-k を選ぶ。",[87,167,169],{"id":168},"これは結局過去の対話履歴を検索して-context-に入れているだけ","これは結局、過去の対話履歴を検索して context に入れているだけ？",[14,171,172],{},"土台は memory retrieval なので近い。ただし論文の主張は、検索結果をそのまま入れるのではなく、context injection の直前で admissibility を判定する点にある。似ている記憶を探す段階と、今使ってよい記憶を選ぶ段階を分ける。",[87,174,176],{"id":175},"llm-本体を改造する必要はある","LLM 本体を改造する必要はある？",[14,178,179],{},"論文の設計では不要。MemGate は plug-in として retrieval と context injection の間に置かれ、LLM 改造、database rewrite、推論時 LLM judge を前提にしない。",[87,181,183],{"id":182},"評価対象は","評価対象は？",[14,185,186],{},"A-Mem、Mem0、MemOS といった代表的 memory framework と、persistent state と tool use を持つ OpenClaw が対象として挙げられている。",[87,188,190],{"id":189},"この論文の一番大事な見方は","この論文の一番大事な見方は？",[14,192,193],{},"記憶検索は、似ているものを探すだけではなく、今この文脈に入れてよいかを判断する入口だという見方。memory retrieval を trust boundary として扱う点が核になる。",[87,195,197],{"id":196},"個人aiアシスタント運用にどう効く","個人AIアシスタント運用にどう効く？",[14,199,200],{},"wiki、state、audit log、skill などを長期記憶として使う時、保存設計だけでなく読み出し時の許可条件が必要になる。プロジェクト境界、機密度、鮮度、tool use への影響を gate にできる。",[87,202,204],{"id":203},"安全に寄せすぎると何が起きる","安全に寄せすぎると何が起きる？",[14,206,207],{},"記憶を遮断しすぎると personalization や継続性が弱くなる。重要なのは、utility を保ちながら危険な memory injection を減らすこと。",{"title":209,"searchDepth":210,"depth":210,"links":211},"",2,[212,213,214,215,216,220,221,222],{"id":12,"depth":210,"text":12},{"id":25,"depth":210,"text":25},{"id":46,"depth":210,"text":46},{"id":58,"depth":210,"text":58},{"id":82,"depth":210,"text":82,"children":217},[218],{"id":89,"depth":219,"text":90},3,{"id":99,"depth":210,"text":99},{"id":115,"depth":210,"text":115},{"id":129,"depth":210,"text":130,"children":223},[224,225,226,227,228,229,230,231,232,233,234],{"id":133,"depth":219,"text":134},{"id":140,"depth":219,"text":141},{"id":147,"depth":219,"text":148},{"id":154,"depth":219,"text":155},{"id":161,"depth":219,"text":162},{"id":168,"depth":219,"text":169},{"id":175,"depth":219,"text":176},{"id":182,"depth":219,"text":183},{"id":189,"depth":219,"text":190},{"id":196,"depth":219,"text":197},{"id":203,"depth":219,"text":204},"2026-06-07","個人AIエージェントの長期記憶検索を、単なる類似度検索ではなく信頼境界として扱う論文。似ているが今の文脈に入れてはいけない記憶を、LLM context に入る前に軽量ゲートで止める。",false,"md",{},true,"\u002Fcontents\u002Ftrustworthy-memory-search",{"title":5,"description":236},"contents\u002Ftrustworthy-memory-search",[245,246,247,248],"論文まとめ","Agent Memory","Trustworthy AI","Personal AI Agents","\u002Farticle-pages\u002Fdocs\u002Fassets\u002Fgraphic-recordings\u002Ftrustworthy-memory-search.png","f7_kh83LnsL_SVvzqILL2wCevhpxfpoi6vJHov0CcBs",[252,256],{"title":253,"path":254,"stem":255,"children":-1},"TokenPilot: Cache-Efficient Context Management for LLM Agents","\u002Fcontents\u002Ftokenpilot-context-management","contents\u002Ftokenpilot-context-management",{"title":257,"path":258,"stem":259,"children":-1},"Pythonのエラーハンドリング：try...exceptのベストプラクティスを考える","\u002Fcontents\u002Ftry_exept","contents\u002Ftry_exept",1782055098746]