AKARI Tech Blog

燈株式会社のエンジニア・開発メンバーによる技術ブログです

「昨日の失敗」を覚えているAIの仕組みとは?: 自己進化するAIエージェントの記憶と忘却のしくみ

LLMのイメージする自己進化するAIエージェント

はじめに

皆さんこんにちは!
今週のAKARI Tech Blogは、DX Solution 事業本部 Dev Lyraの大迎が担当します!
今回は、「昨日の失敗」を覚えているAIの仕組みとは?: 自己進化するAIエージェントの記憶と忘却のしくみ、ということで、AIエージェントのメモリ管理に注目してみたいと思います。

自己進化するAIエージェントのメモリ管理に着目する背景として、個人的にはパラメータ更新をするLLM本体の学習にも非常に興味がある一方で、LLMの学習にはコストがかかります。そのため、今回はLLMの学習と比較するとコストの小さい、LLMのパラメータ更新なしに自己進化するAIエージェントと、その中でも特に重要だと考えるAIエージェントのメモリ管理を追ってみることにしました。

本記事のポイント

本記事で扱う『昨日の失敗を覚えているAI』とは、単に過去の対話を記録するだけでなく、経験から学び、記憶を動的に更新・取捨選択する「長期記憶」を備えたAIエージェントを指します。
その実現方法として、本記事では対照的な思想を持つ2つのアプローチ、MemoryBankとMem0を深掘りします。

  • MemoryBankは、エビングハウス忘却曲線のような人間の「忘れる」仕組みに着想を得て、重要な記憶を自然に残すアプローチを取っています。
  • Mem0は、会話から重要な情報を動的に抽出・整理し保存する長期記憶機構で、矛盾のない知識を維持するアプローチを取っています。

本記事で調べること

「2025年はAIエージェントの年」ということでAIエージェントが注目され、弊社AIエンジニアの許も触れているように、最近ではLLMのプロンプトエンジニアリングからAIエージェントのコンテキストエンジニアリングへ注目が移っているように思います。
tech.akariinc.co.jp


また、Hugging FaceのDaily Papersを見ていると、こちらも個人的な肌感覚ではありますが、強化学習を組み合わせて自己進化するAIエージェントの提案論文数が増えているように感じます。

自己進化するAIエージェント(Self-Evolving AI Agents)とは、[1]より、

Self-evolving AI agents are autonomous systems that continuously and systematically optimise their internal
components through interaction with environments, with the goal of adapting to changing tasks, contexts
and resources while preserving safety and enhancing performance.

と定義されています。概念としてはLLMのパラメータ更新も含む内容になっている印象ですが、今回はLLM自体のパラメータ更新を伴わない非パラメトリックな要素の最適化によって自己進化するAIエージェントに注目し、特にその基本となるAIエージェントのメモリ管理について調べてみたいと思います。

AIエージェントにおけるメモリ

LLMを用いたAIエージェントのメモリというと、[2]のサーベイ論文にならうと短期記憶(Short-term Memory)と長期記憶(Long-term Memory)の2つに分類されます。今回は過去の失敗の経験や知識を元に動作するAIエージェントに注目したいこと、また、[3]でAIエージェントの自己進化には長期記憶が重要と言及されているため、長期記憶の方に焦点を当ててみます。

A Comprehensive Survey of Self-Evolving AI Agents: A New Paradigm Bridging Foundation Models and Lifelong Agentic Systemsより

この図はAIエージェントの進化と最適化に関する技術を、3つの主要な方向性(単一エージェントの最適化、マルチエージェントの最適化、ドメイン特化の最適化)に大別し、2023年から2025年にかけての発展をツリー構造で示したもので、[1]のサーベイ論文から引用したものです。

ツリーの左側にある黄色い部分の真ん中にMemoryと書かれています。「昨日の失敗」から学ぶという意味では、Reflexionがより直接的な回答となりそうな手法ですが、ここでは、既に実用化されている手法がないか調べてみたいと思います。調べてみたところ、MemoryBankとMem0については事例がありそうです。MemoryBankはGoogle Cloud の Vertex AIへ採用、Mem0はMem0という名前でサービス展開されているようです。

MemoryBank

MemoryBank: Enhancing Large Language Models with Long-Term Memory より

エビングハウス忘却曲線にインスパイアされたメモリ更新機構を持ち、記憶と忘却の両機能を備えたメモリ管理方式です。

対話ターンの中でいつどのようにメモリが更新されているか?を、[6]の中で言及されている「SiliconFriend」というチャットボットの例からまとめると以下のようになりそうです。

1. ユーザーからの入力を受け取る
2. メモリ検索
現在の会話内容をコンテキスト c とし、 cエンコードしたものをクエリとして、FAISSを使って関連メモリを取り出す
3. 取り出したメモリを含めたプロンプトで LLMが応答を生成
4. メモリのストレージへの格納処理
会話内容は時系列で詳細ログとして保存。出来事の要約やユーザーの性格などの要約データも生成して保存。
5. メモリの更新 or 忘却:エビングハウス忘却曲線に基づいた重要度を計算

重要度計算について、エビングハウス忘却曲線の指数関数的減衰モデルは以下のように表現されます。

 R=e^{-\dfrac{t }{S } }
R : 記憶保持率
S : 記憶力
t : 情報を学習してからの経過時間


Memory Bankでは、S を離散値としてモデル化し、会話で最初に言及したときに1で初期化し、会話中に言及されるとSを1増やし、t を0にリセットするので、忘れる確率が低くなるため、

  • 重要なメモリなど、何度も高頻度で参照されるメモリほど記憶が定着
  • 参照されないメモリは時間経過とともに重要度が低下し、忘却されていく

ようなモデルとなっています。

ここまでを見てみると、1~3までの処理はRAGとほとんど同じ処理に見えますね。一方で、4と5の処理が自己進化のための長期記憶として重要なものだと考えられます。

Mem0

Mem0: Building Production-Ready AI Agents with Scalable Long-Term Memory より

Mem0 は会話から重要な情報を動的に抽出・整理し保存する長期記憶機構で、Mem0g はエンティティと関係をノードとエッジで構造化したグラフ形式の仕組みを持ち、関係性の理解に強みを持ちます。

前節と同じように、対話ターンの中でいつどのようにメモリが更新されているか?を、[7]の中で言及されている Mem0 の例からまとめると以下のようになりそうです。


1. ユーザーからの入力を受け取る
チャットボットは直前のユーザーとボット間のメッセージペアを、メモリ操作用のコンテキストとして使用します。Mem0ではこのメッセージペアがメモリ操作のトリガーとなります。
2. メモリ抽出(Extraction Phase)
Mem0は以下の3種類のコンテキストをまとめてLLMに渡し、これらの情報をもとに、「ユーザーはお好み焼きが好き」など、記憶すべき内容の候補をLLMが抽出します

  • 現在のユーザー質問と直前のボット応答のペア
  • 直近 m 件のメッセージ
  • 現在の会話の主題を理解するための会話全体の要約 S

3. メモリ更新(Update Phase)
先程抽出された候補それぞれについて、類似する既存メモリ上位 s 件をベクトル埋め込みを使ってDBから類似度検索し、検索された候補に類似する既存メモリそれぞれに対してLLMが判定した結果に応じて、次の4つの操作のいずれかが実行されます。この判断により、メモリは冗長性なく、かつ整合性が取れた状態に維持されるようになっています。

  • ADD:新規事実として候補をDBに追加
  • UPDATE:既存のメモリを補完・更新
  • DELETE:重複や矛盾する既存メモリを削除
  • NOOP:変更不要

4. LLMが利用可能な記憶と直近のユーザー質問を踏まえて応答を作成し、ユーザーに返す。
現在のユーザーメッセージや意図に基づいて関連性の高い記憶を検索し、検索された記憶は、プロンプトに含めるなどしてLLMに提供され、回答の一貫性やパーソナライズ性を支えるコンテキストとして利用されると考えられます。


Mem0は、フルコンテキスト方式と比べてp95/レイテンシー91%削減、トークンコストも90%以上の節約などの強みがあるようです。

MemoryBank vs. Mem0

ここまで、MemoryBankとMem0という2つの長期記憶メカニズムを見てきました。両者のアプローチを比較してみましょう。

項目 MemoryBank Mem0
思想 エビングハウス忘却曲線をモデルに、重要度と経過時間でメモリを強化・忘却 会話から情報を抽出・統合し、効率よく記憶管理するスケーラブルな構造
メモリ更新 時間経過と参照頻度でスコアを更新し、閾値以下を忘却 新しい情報に基づき、既存メモリを追加・更新・削除
強み 人間の記憶のように、重要度に応じた自然な忘却ができる 実運用に強く冗長・矛盾のない整合性の取れた知識ベースを維持できる
適した用途 パーソナルな対話コンシェルジュなど、文脈や関係性の変化が重要なタスク カスタマーサポートや専門知識QAなど、正確な情報の積み重ねが重要なタスク

どちらも「昨日の失敗」を覚えるための強力な手法ですが、その記憶の仕方に哲学の違いが見て取れるのは非常に興味深い点です。

「昨日の失敗」を覚えているAIはどのように実現できるのか?

さて、本題である「『昨日の失敗』を覚えているAI」は、ここまで調べてきた技術でどのように実現できるのでしょうか。
例えば、AIエージェントがユーザーに間違った情報を提供したとします。

  • MemoryBankでは、ユーザーが間違いを指摘した対話は、重要度の高い記憶として保存されます。次に似た質問が来た際、この「失敗の記憶」が検索されやすくなり、「以前はこう間違えましたが、正しくは…」といった、失敗を踏まえた応答が可能になると考えられます。
  • Mem0では、ユーザーからの指摘を元に、Mem0のUpdate Phaseが働きます。間違っていた古いメモリはDELETEされ、正しい情報がADDまたはUPDATEされます。これによりAIの知識ベースそのものが修正され、同じ間違いを繰り返しにくくなります。

このように、単に過去の対話を記録するだけでなく、記憶を動的に評価し、更新・忘却する仕組みで「昨日の失敗」を覚えているAIは実現できそうです。

最後に

今回は、「昨日の失敗」を覚えているAIの裏側、特に長期記憶を管理するMemoryBankとMem0という技術に焦点を当てて解説しました。
AIエージェントが注目される中で、その性能を左右するのがコンテキスト、すなわち「記憶」の扱いです。単なる情報検索システムから、経験を通じて成長するパートナーへとAIが進化していく上で、今回ご紹介したような記憶と忘却のメカニズムがますます重要になっていくはずです。
今後も、AIエージェントの進化を支える技術に注目していきたいと思います。

参考

[1] Fang, J., Peng, Y., Zhang, X., Wang, Y., Yi, X., Zhang, G., Xu, Y., Wu, B., Liu, S., Li, Z., Ren, Z., Aletras, N., Wang, X., Zhou, H., & Meng, Z. (2025, August 10). A comprehensive survey of self‑evolving AI agents: A new paradigm bridging foundation models and lifelong agentic systems. arXiv. https://arxiv.org/abs/2508.07407
[2] Zhang, Z., Bo, X., Ma, C., et al. (2024, April 21). A survey on the memory mechanism of large language model‑based agents. ACM Transactions on Information Systems. https://doi.org/10.1145/3748302
[3] Jiang, X., Li, F., Zhao, H., Wang, J., Shao, J., Xu, S., Zhang, S., Chen, W., Tang, X., Chen, Y., Wu, M., Ma, W., Wang, M., & Chen, T. (2024, October 21). Long term memory: The foundation of AI self‑evolution. arXiv. https://arxiv.org/abs/2410.15665
[4] https://cloud.google.com/vertex-ai/generative-ai/docs/agent-engine/memory-bank/overview?hl=ja
[5] Mem0, https://mem0.ai/
[6] Zhong, W., Guo, L., Gao, Q., Ye, H., & Wang, Y. (2023, May 17). MemoryBank: Enhancing large language models with long‑term memory. In Proceedings of the AAAI Conference on Artificial Intelligence. https://arxiv.org/abs/2305.10250
[7] Chhikara, P., Khant, D., Aryan, S., Singh, T., & Yadav, D. (2025, April 28). Mem0: Building production‑ready AI agents with scalable long‑term memory. arXiv. https://arxiv.org/abs/2504.19413

github.com
github.com


We’re Hiring!

燈では、LLMと対話するのが好きなAIエンジニアを募集しています!
興味がある方は、ぜひカジュアル面談でお話しましょう!


akariinc.co.jp