Mastra·Mem0 — エージェントが会話内容を「真に記憶」する方法

Mastra·Mem0 — 에이전트가 대화 내용을 ‘진짜 기억’하는 법

Mastra·Mem0 — エージェントが会話内容を「真に記憶」する方法

チャットボットと会話していて、少し前に話したことをすぐに忘れられてイライラしたことはありませんか?これまでは、過去の会話履歴をまるごとプロンプトに詰め込むという場当たり的な方法で凌いできましたが、この手法はあまりに低速でコストも高くつきます。今、AIエージェントは人間のように重要な記憶だけを要約・圧縮する「階層型メモリ」を備え、賢く進化しています。

ただ詰め込む時代は終わり — エージェントの記憶術が変わる理由

最近、AIが一度に読み込めるテキスト量が飛躍的に増えたことで、過去の会話履歴すべてをプロンプトに無差別に詰め込む手法が一時流行しました。しかし、これは友人と話すたびに、これまで交わした会話がびっしりと書かれた分厚いノートを最初から最後まで精読してから回答するようなものです。毎回読み込むのに時間がかかるだけでなく、膨大なAPI呼び出しコストも無視できません。

さらに、入力枠がいくら広がったとしても、AIがすべての情報を賢く記憶できるわけではありません。実際、BEAMやLongMemEval-V2といった最新のベンチマークでは、数百万トークンを超える極端な会話状況において、エージェントが核心となる文脈を維持できているかを厳密に評価し始めています。単に会話履歴をそのまま放り込むという乱暴な手法では、もはや賢いエージェントを作れないことが証明されたと言えるでしょう。

結局、私たちに必要なのは「無駄なディテールは忘れ、真に重要な事実だけを選んで長期記憶に移す」という人間のような技術です。エージェントが自ら情報を取捨選択し、記憶の階層を分けて管理しなければならない真の理由がここにあります。

MastraとMem0 — 観察するAIと関係を描くメモリ

今最も注目されている2つのフレームワーク「Mastra」と「Mem0」は、この重たい記憶力の問題を、それぞれ全く異なる魅力的な方法で解決しています。

まず、TypeScriptベースのエージェントフレームワークであるMastraは、「観察型メモリ」というユニークなシステムを導入しました。メインエージェントがユーザーと対話している間、背後でそれを見守る「観察者(Observer)」と「反省者(Reflector)」という補助エージェントがバックグラウンドで動作します。彼らは会話の中から些細な雑談を省き、重要な文脈だけをリアルタイムで圧縮して日誌形式に整理してくれます。おかげでメインエージェントは常に軽量かつ快適な状態で回答を準備でき、実際のLongMemEval評価でもGPT-5-miniベースで驚異的な効率を証明しました。

一方、Mem0は会話履歴を単なるテキストの羅列としてではなく、人物と概念の関係を密接に結びつけた「グラフ」形式で記憶します。まるで人間の脳の神経網のように、単語と概念の有機的な関係地図を描いておく手法です。これにより、膨大な会話記録を最初から最後まで読み込むことなく、必要な記憶だけをネットワークから素早く引き出せます。結果として、トークンコストを約90%削減し、回答までのレイテンシも91%短縮しました。

LangGraphとMemoriesDB — エージェントの記憶を保存するスマートな方法

代表的なエージェントフレームワークであるLangGraphは、賢明にも記憶を2つに分けます。現在の会話の流れを維持するための短期記憶である「チェックポインター」と、複数のチャット画面を横断して情報を共有する長期記憶である「ネームスペースストア」です。簡単に言えば、短期記憶が読んでいるページをマークする栞(しおり)なら、長期記憶は書斎に整理しておいたメモ帳のようなものです。

しかし、どれほど構造をうまく分けても、それを安定的に保存するデータベースが支えてくれなければ意味がありません。従来は、会話の時間や人物関係を記録する一般のデータベースと、AI検索用のベクトルデータベースを別々に運用する必要がありました。このため、2つのデータベース間でデータ同期が合わず、エージェントが的外れな記憶を呼び出すエラーが頻発していました。

最近、開発者の間で大きく注目されているMemoriesDBは、この複雑な問題をPostgreSQL一つでスマートに解決します。PostgreSQLにpgvector機能を組み合わせ、時間(いつの会話か)、意味(どのような内容か)、関係(誰に関連する情報か)を一つのデータベース内で統合管理するアーキテクチャを実現しました。

MemoriesDBが記憶データを構造化する方式は、おおよそ次のような直感的な形になります。

json
{
  "memory_id": "mem_01j3x4y5z",
  "timestamp": "2026-07-19T11:24:00.000Z",
  "content": "사용자는 TypeScript 기반 에이전트 개발에 관심이 많음",
  "embedding": [0.015, -0.082, 0.341],
  "relations": [
    { "target_id": "user_123", "type": "belongs_to" },
    { "target_id": "topic_typescript", "type": "interested_in" }
  ]
}

このように、時間・意味的ベクトルデータ・関係グラフを1つに集約して処理することで、エージェントが情報を探す際のパフォーマンス遅延やデータの不整合問題をきれいに解消できます。より小さく軽量でありながら、決してミスをしない完璧な長期記憶装置が完成するわけです。

もう忘れない、エージェントとの未来

数日、あるいは数ヶ月ぶりに訪れても「以前お話しされていたプロジェクトはどうなりましたか?」と自然に尋ねてくれるエージェント。想像するだけでも頼もしくありませんか?

単なる使い捨てのツールを超えて、ビジネスや日常で長く寄り添えるパートナーを作りたいなら、階層型メモリの導入を真剣に検討すべき時です。

今日見てきたMastra、Mem0、そしてLangGraphの試みは、エージェントが私たちを真に記憶するための重要な鍵となるでしょう。今すぐ大掛かりなシステムを構築しなくても、自分が作るエージェントに短期記憶と長期記憶を分けて保存するという小さな実験から始めてみてください。

まだコメントはありません。