この記事では、お客様と当社が協力して取り組んだ「検索拡張生成(RAG)」から得られた主要な学びをまとめています。RAG とは、情報検索を生成モデル、AI エージェント、エージェントアプリケーションと組み合わせた AI アプローチであり、特に AI エージェントにおける信頼性、信憑性、能力という根本的な課題に対処するものです。
目次
この記事では、お客様と当社が協力して取り組んだ「検索拡張生成(RAG)」から得られた主要な学びをまとめています。RAG とは、情報検索を生成モデル、AI エージェント、エージェントアプリケーションと組み合わせた AI アプローチであり、特に AI エージェントにおける信頼性、信憑性、能力という根本的な課題に対処するものです。
目次
重要なポイント:
AIスタックにおける私たちの探求と独自の立場を通じて、メモリ、あるいはより広くは、AI エージェントが情報を保持・想起・再利用する能力が、エージェントを真に価値ある、かつ運用的に効果的なものにするための重要な道筋を提供していることを発見しました。
エージェントメモリ(およびメモリマネジメント) は、AI エージェントの計算論的外脳(外部皮質) です。これは動的で体系的なプロセスであり、エージェントの LLM メモリ(コンテキストウィンドウとパラメトリック重み)を永続メモリマネジメントシステム と統合して、体験をエンコード、保存、検索、統合します。人間の認知的記憶に触発され、エージェントが知識を蓄積し、対話とタスクの継続性を維持し、履歴に基づいて動作を適応させることを可能にし、その結果、より信頼性が高く、信憑性が高く、有能になります。
顧客エンゲージメントにおいて、エージェントは個別のやり取りでは優れた機能を実証できるものの、その長期的な有用性は、関連するコンテキストを維持し、過去の経験から学び、蓄積された知識に基づいて行動を適応させる能力に決定的に依存することが一貫して明らかになっています。この洞察により、メモリマネジメントシステムは、受動的なエージェントを、持続的な価値を創造できるインテリジェントで適応性の高いエージェントに変える AI インフラストラクチャの重要なコンポーネントであるという理解が形成されました。
定義、パイプライン、エンジニアリング、実用的な洞察について説明します。具体的には、以下のことを行います。
この研究は、AI 開発者とエンジニアにエージェントメモリシステムの基礎的な洞察を提供し、メモリエンジニアリング、コンテキストエンジニアリング、マネジメントアプローチへの理解を深めると同時に、「AI エージェントの信頼性、信憑性、機能を最大化するためにどのようにメモリをモデル化すべきか」という重要な問いに対する包括的な答えに近づくことを目的としています。
人工知能(AI)がアプリケーション開発の最前線に立つ中、ソフトウェア開発は著しい変革を遂げました。埋め込み LLM で構築されたシステムは単にデータを処理するわけではありません。その機能とパフォーマンスは、コンテキスト情報、モデルの推論能力、パラメトリックな知識に大きく依存しています。
狭義で反応型のアーキテクチャから、マルチモーダル入力を処理し、複雑な推論を示し、目標指向の動作を行う高度な AI システムへの進化が見られます。アプリケーションには現在、高度な自然言語理解、複雑な問題解決ワークフロー、そしてわずか数年前には不可能だった複数ステップのタスク実行が組み込まれています。
これらの高度な機能にもかかわらず、アプリケーションは基本的にステートレスのままです。インタラクションをまたいで持続するメモリがないため、前のエンゲージメントから知識を蓄積できず、各リクエストを分離して加工する必要があります。
エージェントのメモリがない場合、いくつかの重大な制限があります。
研究はこの制限を裏付けています。Microsoft と Salesforce の調査「LLMs Get Lost in Multi-Turn Conversation」では、LLM は拡張された会話でパフォーマンスが大幅に低下することがわかりました。これは主に、LLM が早い段階で時期尚早な仮定を行い、それらの仮定が誤りであることが判明したときに修正できないためです。これは、先に述べた会話の継続性の問題を直接的に示しています。
この研究は、LLM が特に「複数ターンに分散した情報」に苦戦することを示しており、コンテキスト情報を効果的に統合、整理、抽出できるメモリシステムが不可欠であることを直接裏付けています。LLM が文脈を見失った場合に新しい会話を開始する、または再試行前に情報を手動で統合するといった本論文で提案された回避策は、適切に設計されたメモリシステムによって解消されるべき、まさにその種の信頼性の問題を表しています。この研究は、高度なメモリアーキテクチャが本番環境の AI エージェントにとって重要である理由を明らかにしています。解決策は、これらの制約のそれぞれに直接対処する包括的なエージェント型メモリシステムを実装することにあります。
さまざまなフォームファクタでよりパーソナライズされた AI システムを構築するにつれて、エージェント型メモリが重要になります。ユーザーの記憶を維持する能力により、以前の各対話を通じて適応型学習が可能になり、エージェントは個々の嗜好、コミュニケーションスタイル、行動パターンを理解できるようになります。過去の会話から得られるデータへのアクセスがなければ、どんなに高度なエージェントでも、ユーザーが AI システムに期待するパーソナライズされた体験を提供できません。
データ取得はエージェントメモリのアーキテクチャにおける基本的な要素ですが、その実装は単純なデータベースクエリをはるかに超えます。効果的なデータ取得システムは、膨大なユーザーメモリと過去のデータの保存場所から、関連するコンテキストをインテリジェントに抽出する必要があります。これには、前の会話のどの要素が現在のインタラクションに最も関連するコンテキストを提供するかを特定できる高度なアルゴリズムが必要です。これにより、時間の経過とともに蓄積される真の適応型学習が可能になります。
これらの高度なシステムに必要なのは、従来の意味でのデータだけではなく、人間の認知プロセスを模倣する、より高度な情報の検索、組織化、保持の形態、すなわち現在ではエージェントメモリとして認識されているものです。これは、ステートレスアプリケーションから、各インタラクションを通じて学習、適応、進化できる真にインテリジェントなエージェントへの根本的な転換を表しています。
AI アプリケーション開発、特にエージェントエンジニアリングでは、「データ」と「メモリ」が同じ意味で使用されることがよくあります。しかし、AI エージェントを効果的に構築するには、両者の概念的な違いを理解することが不可欠です。メモリはデータそのものであるため、単にデータと呼んでも差し支えありません。
これに関連して、データは、未加工の入力を段階的に機能的なメモリ単位へと変換する5段階の変換パイプラインを通じてメモリになります。
メモリユニットは、情報だけでなく、エージェントの推論に役立つメタデータや関係も保持する構造化コンテナとして理解できます。すべての情報を平等にアクセス可能で静的であると見なす従来のデータストレージとは異なり、メモリユニットには、一時的なコンテキスト(情報がいつ学習されたか)、強度インジケーター(情報の関連性や信頼性)、連想リンク(他のメモリとの接続方法)、セマンティックコンテキストデータ(取り込まれた意味)、取得メタデータ(どのように、いつアクセスすべきか)などの属性が含まれます。さまざまなメモリタイプのメモリユニットの例については、このドキュメントの後半のセクションを参照してください。
メモリユニットはまた、メモリブロックとも同義で、これはエージェントのメモリシステム内の単一の構造化情報の断片を指すもので、ストレージ、検索、更新機能などの基本的な操作をサポートしつつ、現在のメモリユニット/ブロックのコンテキスト関係を他のメモリコンポーネントと保持する別の用語です。
より広く言えば、メモリユニットはデータだけでなく、インテリジェントな推論に不可欠な認知属性とメタデータをカプセル化します。eコマース Web サイトのカスタマーチャットボットを例に、データをメモリユニットに変換するステージを理解します。
実質的に、データは、受動的な情報から、抽出してエージェントの動作や推論に役立てることができる、能動的で意図的に永続化されたコンポーネントに移行するときに、メモリになります。この変換は、ストレージの時点で行われます。そこでは、時間をかけて適応と一貫したやり取りを可能にすることを目的として、データが収集・保存されます。
このデータからメモリへの変換を理解することで、特に AI エージェント内でメモリがどのように機能するかを検討するための基盤が得られます。情報がメモリになる仕組みの一般的な原則を見てきましたが、AI エージェントにおけるメモリシステムの実用的な実装には、より正確な定義とアーキテクチャ上の考慮事項が必要です。
今日の AI アプリケーションでメモリを探索する際、LLM メモリ、エージェントメモリ、AI メモリといった用語によく遭遇します。その違いを理解することが重要です。
LLM メモリとは、大規模言語モデル自体の中にキャプチャされた情報と知識を指します。これは2つのプライマリレイヤーに存在します。
重要なのは、LLM メモリはエージェントメモリそのものではなく、その重要な構成要素であることです。
LLM は、より広範な AI エージェントのコンポーネントであり、認知エンジンです。LLM メモリの制限(制限されたコンテキストウィンドウやステートレス推論など)があるため、エージェントが真の連続性、適応性、そして本質的な学習を実現するには、より堅牢で永続的なメモリシステムが必要です。
ここで外部メモリが不可欠になります。最も単純な形では、外部メモリとは、AI エンジニアが RAG アプリケーションやパイプラインを実装する際に活用するものです。通常は、LLM の外部にあるデータベースから情報を取得し、推論を実行する前にユーザープロンプトと連結します。しかし、真にインテリジェントなエージェントを実現するには、基本的な検索をはるかに超え、真の学習と適応を可能にするメモリシステムが必要です。
ここで、AI エージェントそのものの定義について説明します。AI エージェントの定義をめぐっては議論がありますが、AI エージェントとは、複雑な問題解決の領域に踏み出す前に不可欠な機能を備える必要がある情報探索者であるという点では、合意が得られています。
AI エージェントを、その環境を認識し、以下の4つの中核的な能力を備えた計算エンティティとして定義します。
これらの機能は、エージェントが実際の課題解決という複雑な状況を効果的に乗り切るために、一貫性を持って機能する必要があります。私たちは、エージェントが意味のある価値を提供するためには、長期メモリが不可欠であるという強い確信を持ち続けています。拡張メモリを持たないエージェントは単なる反射的エージェントであり、以前の反復やセッションから学習することなく、現在の入力にのみ反応します。
したがって、エージェントメモリを、LLM のメモリと、知識の蓄積および行動の適応を可能にする外部メモリマネジメントシステムの両方として定義した先ほどの定義に戻ると、この定義が、真の AI エージェントをステートレスなアプリケーションと区別する本質的な機能を包含していることがわかります。
エージェントメモリは、信頼性が高く、信憑性が高く、有能なエージェントを構築するために必要なコアコンポーネントです。
LLM のコンテキストウィンドウが有限である限り、インテリジェントな外部メモリシステム(LLM の外脳)の開発は、研究の重要な最前線であり続け、次世代の AI システムの中核にメモリを位置付けます。
「AI メモリ」と「エージェントメモリ」の互換性は、ソフトウェアアーキテクチャの概念における根本的な変化を反映しています。インテリジェントソフトウェアの支配的なフォームファクタは主にエージェントベースになるという現実が業界でますます受け入れられるようになり、AI システムとエージェントシステムの区別は大部分がセマンティックなものになっています。
従来のソフトウェアアプリケーションは、推論、計画、複雑なワークフローの実行が可能な自律的なエンティティへと進化しており、実質的にデフォルトでエージェントとなりつつあります。この変革は、AI メモリシステムについて議論する場合、本質的にはエージェントメモリシステムについて議論していることを意味します。なぜなら、将来の AI アプリケーションは、受動的なツールとしてではなく、主にインテリジェントなエージェントとして動作するようになるからです。
これらの用語の収束は、単なる言語的な進化ではなく、ユーザーの目的達成に向けて、思考し、記憶し、行動する自律性をますます高めるソフトウェアへの根本的な転換を示しています。
エージェントメモリの定義を確立し、LLM メモリと区別しつつ、AI メモリとの互換性を指摘した上で、エージェントメモリシステムを構成する主要なメモリの種類を検討していきます。
LLM のパフォーマンスは通常、コンテキストウィンドウ内のコンテンツ量が増加するにつれて低下します。研究によると、長いコンテキストの中間付近に配置された情報は抽出が特に困難であることがわかっています。これは、注意メカニズムが、広範な入力の奥深くに埋もれた関連トークンに優先順位を付け、焦点を維持するのに苦労するためです。この「Lost in the Middle」問題は、検索精度の低下とパフォーマンスの弱体化につながります。
MongoDB のチーフ AI サイエンティストである Tengyu Ma 氏は、これをよくライブラリに例えます。司書に適切な本を示してもらいたいからといって、その図書館に存在するすべての本の目次を把握していることを期待することはないはずです。
同様に、司書が情報を効率的に管理し、検索するためにカタログ、インデックス、参照ガイドを利用するように、効果的なエージェントの設計とエンジニアリングには、さまざまな種類のメモリを理解することが不可欠です。エージェント型システムにおけるメモリは、時間的特性(どのくらい持続するか)と機能的特性(何のためにあるか)によって区別され、各タイプは意思決定と知識の保持において特定の役割を果たします。
時間的な区別が単純なエントリーポイントとなります。
短期メモリは、現在処理中または最近アクセスした情報の一時的なストレージとして機能します。短期間メモリ内のメモリユニットは、ユースケースや実装要件、アプリケーションモードによって数秒から数日と寿命が限られています。作業メモリと短期メモリは文献ではしばしば同じ意味で使われますが、明確に区別してみましょう。作業メモリは、タスク実行中に情報を能動的に操作するために設計された短期メモリの特殊な機能的サブセットを指すのに対し、短期メモリはさまざまな運用コンテキストにおける一時的な情報保持という、より広いカテゴリーを包含します。
作業メモリは、タスク中のアクティブな情報操作のためのエージェントの「スクラッチパッド」と捉えることができます。これは、LLM のコンテキストウィンドウ内のパーティション化された領域、またはセッション中のみ存在する一時ファイルであり、チャット履歴を維持し、会話の進行に合わせてリアルタイムのメモリ操作でメモリブロックをアップデートできるようにします。一部の技術文献では、作業メモリはアクティブメモリとも呼ばれます。
MemGPT のような研究の取り組みでは、「作業コンテキスト」を実装して、このアクティブなワークスペースを体系的に管理します。たとえば、市場トレンドを分析するリサーチエージェントは、ワーキングメモリを使用して、検索結果を保持し、企業を識別し、生成しているレポートのメモを合成します。これにより、すぐに利用可能な情報に基づいたリアルタイムの意思決定が可能になります。さらに、外部メモリシステムがない場合、LLM のワーキングメモリはコンテキストウィンドウに実質的に制限されます。したがって、AI アプリケーションで見られるワーキングメモリの主なタイプは、セッションベース、一時ファイルシステム、LLM コンテキストウィンドウ依存です。
セマンティックキャッシュは、最近のプロンプトとそれに対応する LLM 応答を保存します。類似したクエリが到着すると、システムは再処理する代わりにキャッシュされた応答を抽出するため、時間と計算コストが節約されます。単なるキーワードの一致ではなく、ベクトル類似性を使用して、クエリのセマンティックな意味と一致します。パスワードリセットを担当するカスタマーサポートボットは、セマンティックキャッシュを使って「パスワードを忘れました」「ログインを思い出せません」「アカウントアクセスをリセットする必要があります」といった数十通りの異なる表現の同じ質問に即座に回答します。事前計算された応答を即座に抽出する動作は、心理学者のダニエル・カーネマンが『ファスト&スロー』で説明している「システム1」思考(意識的な推論なしに即座に応答を提供する、高速で自動的、かつ直感的な認知プロセス)を反映しています。
実際のシナリオにおけるセマンティックキャッシュは、埋め込みモデルのセマンティック理解機能を活用して、よりインテリジェントで効果的なメモリシステムを作成することで、従来のキーワードベースのキャッシュシステムを大きく進化させます。MongoDB Atlas と LangChain を活用したセマンティックキャッシュの実装についてはこちらをご覧ください。以前には、Cisco のエージェントエンジニアとも対談し、MongoDB とセマンティックキャッシュを使用して本番環境向けのチャットボットとエージェント型プラットフォームをどのようにビルドしたかを議論しました。
長期メモリはエージェントの基盤となるナレッジベースであり、長期間にわたる継続性と学習を可能にします。長期メモリには複数の機能的な形式があり、それぞれに固有のストレージおよび取得機能が求められます。MongoDB のような統合データプラットフォームは、セマンティックメモリのためのベクトル検索から連想メモリのためのグラフトラバーサルまでさまざまなLTMタイプの多様な要件を単一のシステム内で取り扱えるため、この場合に有利です。これにより、複雑性を軽減し、技術スタックの乱立を防止できます。
エピソード記憶は、特定のイベントやインタラクションに関するエージェントの記録であり、人間の自伝的記憶に相当します。会話履歴、主要なイベントの要約、またはメタデータ(タイムスタンプ、参加者)が付加された個別の出来事を保存します。カスタマーサービスエージェントは、エピソード記憶を使用して特定のユーザーの過去のサポートチケットを想起し、関連する事実にアクセスして、パーソナライズされ文脈を考慮したサービスを提供します。エピソード記憶の一般的なタイプには、会話タイプと要約タイプがあり、これらは観察とも呼ばれます。
エージェントのエピソード記憶(会話型メモリと要約に対応)は、次のように機能します。システムは、エージェントと人間(またはツールやピアエージェントなどの他のワークフローエンティティ)との間の対話(ターンバイターン形式)を記録します。継続中の会話は定期的に圧縮されて簡潔な要約になり、専用の要約保存場所に保存されます。要約は、コンテキストウィンドウのトークン制限のしきい値、重要度のヒューリスティック、スケジュールによって起動できます。また、エージェントが独自の判断で呼び出せるツールとして公開することもできます。これは、入力を加工し、それを推論し、現在のコンテキストと環境に存在するシグナルに基づいて行動する LLM の能力を活用します。今後の記事では、要約手法や推奨されるベストプラクティスについて、より詳しく探っていきます。
セマンティックメモリは、特定のイベントとは独立して、事実、概念、関係に関する整理された知識を格納するエージェントのリポジトリと見なすことができます。これには、ナレッジベース、特定のエンティティに関する情報(エンティティメモリ)、およびエージェントを特定の行動に誘導する役割ベースの知識(ペルソナメモリ)が含まれます。セマンティックメモリは、エージェントが一貫して推論できるようにする構造化された「世界の知識」として理解できます。最も一般的な実装は RAG システムです。このシステムでは、実際のドキュメントのベクトル埋め込みが構造化された形式で保存および取得されます。
セマンティックメモリの一般的な形態は次のとおりです。
これは、エージェントが学習した実力、ルーチン、デシジョンツリー、ワークフロー、複数ステップのプロセスのリポジトリです。これは、明示的な指示なしに複雑な複数ステップのタスクを完了するために必要なアクションのシーケンスを保存します。人間が自動的に自転車に乗る方法を学ぶのと同じように、手続型メモリを持つエージェントは、確立されたルーティンを実行できます。
手続型メモリの例としては、ツールボックスメモリ(利用可能なツールとその使用法に関する知識)や ワークフローメモリ(繰り返しプロセス用にキャプチャされたデータ)などがあります。ソフトウェア展開エージェントは、手続型メモリを使用してリリースプロトコルに自動的に従います。
以下のコードスニペットでは、`Toolbox` クラスがツールボックスのメモリコンポーネントとして機能します。これは、エージェントが Python 関数を検索可能なメタデータを持つ検索可能なツールとして登録できるようにするレジストリとして機能します。エージェントが手動で検索することなくタスク要件に基づいて適切なツールを自動的に見つけて実行できるように、実際の呼び出し可能関数はメモリに、その意味的な埋め込みは永続ストレージに保存されます。より具体的には、入力クエリや目的に一致するツールボックスメモリ内のツールの意味的に類似したサブセットを検索することで、エージェントシステムでのツール使用をスケールすることもできます。
メモリの種類の実装とコンテキストウィンドウのコンテンツのメモリユニットへの変換時に、AI エンジニアは LLM 実行応答内の特定のフラグを識別し、応答属性に基づいて重要な情報を抽出するためのプロセスを確立できます。
以下のコードスニペットは、この抽出プロセスの動作を示しています。各関数呼び出しの実行後、システムは結果をメッセージ履歴に追加してワークフローステップを自動的にキャプチャし、ツール ID、引数、結果、タイムスタンプ、エラーメッセージなどの重要なメタデータを抽出して、実行完了時に完全なワークフローの一部として保存される構造化されたメモリユニットを作成します。以下に、このアプローチがワークフローメモリと関連するメモリユニットにどのように応用されるかを示します。
ワークフロー抽出プロセス
ステップデータ構造:各ワークフローのメモリユニットには、次のものが含まれます。
4. メモリストレージ:完全なワークフローは、セマンティック検索用の埋め込みとともにMemoryType.WORKFLOW_MEMORYに保存されます。
5. 将来の参照:保存されたワークフローは、実行コンテキストを提供し、過去の経験から学習するために、将来のクエリで抽出されます。
マルチエージェントシステムで一般的に見られる共有メモリは、複数のエージェントが同時にアクセスできるコラボレーション領域を提供することで、連携を実現します。これにより、分散されたチームのエージェントについて、活動の調整、調査結果と計画の共有、システム全体での同期状態の維持が可能になります。共有メモリは、ユースケースやシナリオに応じて、長期または短期として構成できます。たとえば、プロジェクトの期間全体にわたって戦略的目標を保持する(長期)ことや、単一の研究セッション中に中間検索結果を保持する(短期)ことができます。たとえば、学術論文の検索を専門とするエージェント、引用の検証を専門とするエージェント、調査結果の合成を専門とするエージェントからなる研究チームは、共有メモリを活用して、作業の重複を避け、リアルタイムで互いの発見を積み上げていくことができます。
このメモリタイプでは、複数のエージェントが共有メモリスペースに対して同時に読み取りや書き込みを行う際、競合状態を防ぎ、データの整合性を確保するために、データベースレベルでの ACID コンプライアンス(原子性、一貫性、独立性、永続性)が極めて重要になります。これらの保証がないと、エージェントが互いの投稿を上書きしたり、古いデータで作業したり、システム全体の信頼性を損なう可能性のある整合性の取れない状態に遭遇したりする可能性があります。
これらのメモリタイプは人間の認知にヒントを得た概念的なブループリントであり、直接的な生物学的レプリケーションではないことを理解することが重要です。各メモリタイプは、AI エージェント内で異なる認知機能を提供し、それらの連携により、先ほど触れた信頼性、信用性、能力を実証するエージェントの能力が決定されます。これを AI エージェントの RBC と呼びましょう。
MongoDB は、AI アプリケーションおよびエージェント型システムを構築する多数の企業との取り組みを通じて、組織がエージェント型ソリューションを類似した種類のユースケースに一貫して応用していることを確認しました。各実装には独自のバリエーションがありますが、これらの繰り返されるユースケースパターンは、当社が呼ぶところの「アプリケーションモード」、エージェントアーキテクチャが常に価値を提供する一般的な問題領域を特定するきっかけとなりました。
アプリケーションモードとは、AI エージェントが環境とどのように交流するかを特徴付ける基本的な運用パターンを指し、特定の動作に関する期待、インタラクションのスタイル、メモリアーキテクチャの要件を含みます。このパターンはドメインに依存せず、エージェントが対処する特定のフィールドや主題ではなく、エージェントの動作方法に焦点を当てています。
多様な実装にわたる観察に基づくと、3つの主要なアプリケーションモードが明らかになります。各モードは、特定のメモリアーキテクチャ要件を持つ異なる運用パターンを表しています。
これらの異なるアプリケーションモードには、それぞれ固有の運用特性に合わせて特別に最適化された、カスタマイズされたメモリシステムが必要です。各モードに明確に定義されたスキーマと属性を備えた特定のメモリタイプが必要です。属性には、タイムスタンプ、エンティティ間の関係、アクセスパターンなどの明示的な構造要素もあれば、保存されたデータ内の使用パターンとセマンティックな関係から生じる暗黙的なプロパティを表すものもあります。
以下では、現在のエンタープライズ実装で最も一般的に求められるユースケースを表すアシスタントとワークフローの2つのモードに詳しく焦点を当てます。ディープリサーチモードは概念的には強力ですが、現在の LLM の制限を考慮すると、技術的な実装が困難であり、計算負荷も高いため、依然としてニッチなアプリケーションにとどまっています。
今のところ、組織が最も直接的かつ大きな価値を得られるのは、アシスタントモードとワークフローモードに焦点を当てることです。これらのモードは、ユーザーインタラクションの強化とプロセスの自動化を通じて、明確な ROI をもたらします。AI エンジニアリングチームがエージェントメモリアーキテクチャをより高度にするにつれて、ディープリサーチ機能は適切に実装されたアシスタントモードから自然に生まれることが多いです。
アシスタントモードは、エージェントがユーザーの文脈と関係の継続性を維持しながら専門的な支援を提供する、会話型でタスク指向の対話のために設計されています。このモードの主な目的は、人格の整合性とユーザーのニーズに基づく適応的な応答を維持しながら、有意義な対話に従事できるエージェントを作成することです。
このモードでは、複数の専用メモリタイプが連携して動作する必要があります。コンテキストメモリは、時間的なコンテキストを含む詳細な会話履歴を維持し、エージェントが過去の特定のインタラクションを参照して以前の議論を発展させることを可能にします。セマンティックキャッシュは、インタラクション履歴を通じて見つかった対話パターン、ユーザー設定、コミュニケーションスタイルを保存します。共有メモリにより、ユーザーが予測可能で信頼できる本物らしいインタラクションのために依拠できる、一貫した性格特性と行動パターンが確保されます。
メモリシステムは、時間の経過とともに進化する関係の力学をサポートする必要があり、ユーザーからのフィードバックから学習しながらインタラクションのパターンを特定して強化できるシステムが必要です。メモリ圧縮技術は、長い対話履歴を主要な関係の洞察とユーザーの好みに絞り込み、重要なコンテキスト情報が長期的なエンゲージメント全体で確実にアクセスできるようにするために不可欠になります。
アシスタントモードでは、具体的な役割がメモリシステムの要件を決定します。リサーチアシスタントは、複数のソースからの情報を統合し、包括的な調査状態を維持する必要があります。一方、コーディングアシスタントは、段階的な連携とツールのマネージメントを必要とする複雑な手順を実行します。リサーチアシスタントは通常、分散されたメモリアーキテクチャを採用しています。特に、専門化されたエージェントがワークフローの異なる側面を取り扱うマルチエージェントのシナリオで採用されています。コーディングアシスタントは一般に、開発ツールとその機能を維持するためのツールボックスメモリと、複数ステップの開発プロセスを追跡するためのチェックポイントメモリを必要とする、単一エージェントアーキテクチャを使用します。
ワークフローモードは、複数ステップのプロセスの完了と複雑な運用シーケンスのオーケストレーションを目的として設計されており、高度な状態管理機能とプロセス調整機能を必要とします。主な目的は、複数の実行段階にわたって運用の整合性とエラー復旧を維持しながら、複雑な手順を信頼性が高く決定論的に実行することです。
このモードでは、プロセス状態の追跡、中間結果の管理、長期にわたるワークフロー全体でのツール使用の調整が可能なメモリアーキテクチャが必要です。ワークフロー状態メモリは、現在の実行ステータス、完了した手順、保留中のアクション、意思決定ポイントをキャプチャする属性を実装し、エージェントが中断や失敗の後に操作を再開できるようにします。チェックポイントメモリは、ワークフローの進行状況の体系的なスナップショットを提供し、必要に応じて復旧機能とロールバック機能のサポートを提供します。
ワークフローの状態とチェックポイントメモリをツールボックスメモリと組み合わせることで、エージェントは以前の実行から最適化を学習し、ワークフロー効率を継続的に向上させることができます。メモリアーキテクチャは複雑な依存関係の管理をサポートする必要があります。その場合、以降のステップは以前の段階からの出力に依存するため、状態の慎重な保持とデータフローの調整が必要になります。LangChain のエンジニアリングチームと密接に連携し、LangGraph で構築されたワークフローとエージェント用の最初の状態チェックポインターの1つを実装しました。
これらのアプリケーションモードは、メモリアーキテクチャを設計するための便利なフレームワークを提供しますが、これらは厳格なルールではなく、適応可能なガイドラインと見なされるべきです。各 AI 実装には固有の運用要件があり、メモリ戦略はシステムの特定のコンテキスト、制約、目標に合わせて調整する必要があります。アプリケーションモードを特定する真の価値は、設計上の意思決定を迅速化し、アーキテクチャの整合性を確保し、信頼性が高く効率的で影響力のある AI エージェントを提供するために必要なメモリ機能についてチームが調整を行うのに役立つ、共通言語と参照モデルを提供することにあります。
AI エージェントがステートレスツールから学習エンティティへと進化するにつれて、メモリを構築するという困難な挑戦が、メモリエンジニアリングという専門分野の必要性を刺激しています。この分野は、基本的なデータストレージを超えて、認知に触発されたメモリアーキテクチャを設計するという複雑なタスクを包含します。これには、検索および合成メカニズムの最適化と、アクティブなリフレクションや管理された忘却などの高度なライフサイクル管理戦略の実装が含まれ、エージェントが経験を重ねるほど情報が詰まるだけでなく、より賢く成長することを確実にします。
この専門分野は、一般的なエージェントエンジニアリングとは根本的に異なる挑戦に対処します。エージェントを構築する AI エンジニアはビジネスロジック、統合、ユーザー向け機能に重点を置く一方で、メモリエンジニアリングは基盤となるアーキテクチャレベルで行われ、「エージェント内のメモリをどのようにモデル化し、マネジメントするか?」という問いに答えます。これには、単純なコンテキストウィンドウのマネジメントから、メモリが動的に変更され、インテリジェントに拡充され、マルチモデル検索手法によって抽出される高度なシステムまで、幅広い複雑さが含まれます。
この分野は着実に発展しています。初期の AI 開発の取り組みは、プロンプトエンジニアリングに重点を置いていましたが、以降、焦点はコンテキスト エンジニアリングとコンテキスト管理に移っています。Anthropic と Cognition AI の研究が指摘しているように、大きなコンテキストウィンドウを持つだけでは不十分です。成功は、エージェントが注意を払う情報を精査し、優先順位を付ける「慎重なコンテキスト管理戦略」にかかっています。これには、実行中のコンテキストウィンドウ内のコンテンツを、永続化される重要な洞察にインテリジェントに圧縮するシステムを作成するなど、高度なメモリエンジニアリングが必要です。
この進化は、メモリマネジメントという、エージェントのメモリアーキテクチャの調整、最適化、統治を行う運用の実践というより広範な分野につながります。主なエンジニアリングの課題は次のとおりです。
組織が AI 実装を増やすにつれて、このメモリエンジニアリングの専門化の必要性は否定できなくなります。エンタープライズ開発チームは、専任の AI メモリチームを結成するか、メモリエンジニアリングが現代の AI エンジニアの役割の中で最も支配的で重要な構成要素になることに気づくでしょう。
ステートレスな AI アプリケーションから継続的な学習パラダイムを備えたステートフルな AI エージェントへと移行するにつれて、データベースの役割は根本的に進化しています。単純なデータストアから、インテリジェントなエージェント型システムの中核となるコンポーネントへと変化しています。データベースは、AI エージェントとエージェント型システムのメモリプロバイダーになりつつあります。
この変革は、これまで説明してきた AI エンジニアリング分野の進化、すなわちプロンプトエンジニアリングからコンテキストエンジニアリング、エージェントエンジニアリング、そして現在のメモリエンジニアリングへの進化と一致しています。各分野には、従来のデータベースが取り扱うようには設計されていない高度なデータマネジメント機能が必要です。
これらのアプローチの根本的な違いは、その中核となるアーキテクチャの意図にあります。
この記事を通じて、エージェントメモリは単一のものではないことを示してきました。画一的なアプローチでは、異なるメモリタイプにはそれぞれ異なる要件があるため、うまく機能しません。コンテキストメモリには、タイムスタンプ付きの構造化ログが必要です。セマンティックキャッシュには、ハイブリッド検索のために、豊富なメタデータとともに効率的なベクトル検索が必要です。ワークフローの状態には、複雑なドキュメントの関係とグラフトラバーサル機能が必要です。
カスタマーサービスのシナリオを考えてみましょう。従来のデータベースでは、各インタラクションはタイムスタンプ付きの個別のレコードとして保存される場合があります。ユーザーの履歴を理解するには、すべての関連レコードをクエリし、手動で物語をつなぎ合わせる必要があります。どの情報が最も関連性が高いか、または好みがどのように進化したかについての固有の理解はありません。
ベクトルデータベースは、過去の会話の埋め込みを保存し、意味的に類似したやり取りを検索できます。これはキーワードマッチングよりも優れたコンテキストを提供しますが、「John preferred Italian food last month」(ジョンは先月イタリア料理を好んだ)と「John now prefers Thai food」(ジョンは現在タイ料理を好む)を区別できません。どちらの食の好みに関する表現も、ベクトル空間では同様にクラスター化されるためです。
エージェントメモリシステムは、これらを異なる強度属性を持つ、時間順に並べられた個別のメモリとして保持します。エージェントがジョンが継続的にタイ料理レストランを選択していることを観察すると、「イタリア料理の選好」のメモリは徐々に弱まり、「タイ料理の選好」のメモリは強くなります。システムはジョンが言ったことだけでなく、彼の好みがどのように進化したか、現在どの情報が彼の行動を最も正確に予測しているかを理解します。
PostgreSQL は技術的にはテキスト検索(tsvector を使用)、ベクトル類似性(HNSW を使用した pgvector を使用)、グラフの走査(再帰的な CTE または Apache AGE などの拡張機能を使用)を実行できますが、これらの機能には複数の拡張機能、クエリパターン、最適化戦略を調整する必要があります。セマンティック類似性、メタデータフィルタリング、関係のトラバーサルを組み合わせたハイブリッド検索パターンを迅速に実験する必要があるメモリエンジニアリングチームにとって、この断片化されたアプローチは不必要な複雑さを生み出し、開発サイクルを長期化させます。
さらに、エージェント型メモリアーキテクチャは実験的な性質を持つため、個々のドキュメントスキーマだけでなく、異なるメモリタイプ間の関係を再構築する必要があることが多く、大規模でインデックスが多用されているテーブルでは、依然として慎重な移行計画が必要になる場合があります。
PostgreSQL で説明したこの断片化されたアプローチは、MongoDB が LangGraph、Agno、Mastra など、主要な AI/エージェントフレームワークのメモリプロバイダとしてますます採用されている理由を正確に示しています。MongoDB Atlas は、制限のあるブラックボックス型のメモリソリューションを提供するのではなく、必要な機能をすべて提供することで、開発者がメモリエンジニアリングを深掘りできるようにします。
MongoDB による Voyage AI の買収は、最先端の埋め込みモデルとリランカーをデータベースプラットフォームに直接取り込むという、大きな進歩を示しています。この統合により、RAG パイプラインとエージェント型アプリケーションのアプリケーションコードの複雑さが劇的に軽減されます。さらに重要なことに、MongoDB を開発者がデータを単に提供し、その対価として高度なメモリユニットコンポーネントと機能を受け取ることができるソリューションに変えます。
AI エンジニアが複数の専門的なデータベースを継ぎ合わせて複雑な埋め込みパイプラインを管理しなくても、MongoDB Atlas がデータの取り込みとベクトル化からストレージ、組織化、AI を活用した取得まで、データからメモリへの変換パイプライン全体を取り扱います。
これらのアプローチのどちらを選択するかは、最終的には情報システムを構築しているか、インテリジェントなエージェントを構築しているかによって決まります。
セマンティック検索を必要とする従来のアプリケーションの場合、ベクトルデータベースは優れた集中的な機能を提供します。学習と進化を行う適応型インテリジェンスを必要とするアプリケーション向けに、MongoDB はステートレスアプリケーションを真にインテリジェントなエージェントに変える認知アーキテクチャを提供します。
この統合アプローチにより、ここまで説明してきたメモリ エンジニアリングの専門化が可能になり、信頼性が高く、信憑性が高く、有能な AI エージェントを構築するために必要な技術的基盤が提供されます。メモリエンジニアリングをさらに詳しく調べるには、MongoDB Atlas を使用してメモリアーキテクチャを試すか、AI ラーニングハブで詳細なチュートリアルを確認してください。
メモリタイプは、AI エージェントのメモリ内にある特殊な認知機能であり、人間の記憶が目的ごとに異なるシステムを持つのとよく似ています。メモリタイプは、エージェントのメモリアーキテクチャ内に保存される情報の時間的特性(情報がどのくらい持続するか)と機能的特性(どのような特定の目的を果たすか)の両方を定義します。
一般的な高レベルのメモリタイプには短期メモリと長期メモリがあり、これらにはそれぞれ異なるメモリタイプが含まれています。
短期メモリのタイプは、即時の一時的な情報ニーズを取り扱います。ワーキングメモリは、現在のタスク中に情報をアクティブに操作するためのエージェントの「スクラッチパッド」として機能します。これは、エージェントが問題を解決しながら関連する詳細を保持するメンタルワークスペースとして想像してください。セマンティックキャッシュは、最近のクエリ応答ペアを保存し、再処理せずに同様のリクエストを即座に取得できるようにします。これは、よくある質問に対する回答をすぐに用意しておくようなものです。共有メモリは、複数のエージェントが情報に同時にアクセスして情報を提供できる共同作業ワークスペースを提供することにより、複数のエージェント間の調整を可能にします。
長期メモリは、永続的な学習と適応の基盤を提供します。エピソードメモリは、特定の会話や経験に関する自伝的な記憶と同様に、特定のイベントやインタラクションのレコードを保持します。セマンティックメモリは、事実、概念、および関係に関するエージェントの組織化された知識リポジトリとして機能します。これは、世界的な知識のよく構造化されたライブラリと考えることができます。手続型メモリはワークフローと実力を保存し、エージェントが複雑な複数ステップのプロセスを自動的に実行できるようにします。これは、各動作を意識的に考えずに自転車に乗れるのとよく似ています。最後に、連想メモリは、さまざまな情報間の関係を作成および保持します。これにより、エージェントは「点を結び」、これらの接続をトラバースして推論を行うことができます。
アプリケーションモードは、AI エージェントが環境やユーザーとどのように交流するかを特徴づける、基本的な運用パターンを表します。これは、エージェントの主な「あり方」、つまり問題へのアプローチ、情報の管理、価値の提供の方法を形作る行動フレームワークと考えられます。
現実世界の実装に関する広範な観察に基づいて、3つのコアアプリケーションモードがあります。アシスタントモードは、会話型のタスク指向のインタラクションに焦点を当てています。エージェントは、時間の経過とともにユーザーとの関係を構築・維持しながら、専門的なサポートを提供します。このモードでは、性格の整合性と、進化するユーザーのニーズに基づく適応的な応答を重視します。ワークフローモードは、体系的な調整と状態管理によって複雑なマルチステッププロセスをオーケストレーションすることに重点を置いています。ビジネス手順全体を最初から最後まで管理できるエージェントを想像してみてください。ディープリサーチモードでは、長期間にわたって包括的かつ複数ソースの分析が行われ、段階的な知識の構築と合成機能が必要になります。
アプリケーションのモードを理解すると、各モードでは異なるメモリタイプと最適化戦略の組み合わせが必要になるため、特定のユースケースに適したメモリアーキテクチャを選択するのに役立ちます。
メモリユニットはエージェントメモリの基本的な構成要素であり、生データから実行可能なメモリに変換された最小の離散的な情報です。メモリユニットは、情報だけでなく、その情報をエージェントの推論に役立てるメタデータや関係も保持する構造化コンテナです。単純なデータレコードとは異なり、メモリユニットには、時間的コンテキスト(情報がいつ学習されたか)、強度インジケーター(情報の関連性や信頼性)、連想リンク(他のメモリとどのように接続されるか)、取得メタデータ(いつ、どのようにアクセスされる必要があるか)などの属性が含まれます。
LLM メモリは言語モデル自体の内部に存在し、2つの異なるレイヤーで動作します。パラメトリックメモリは、訓練段階でモデルのニューラルネットワークの重みにエンコードされる知識を表します。これは、推論中は静的なままである一方、訓練データから学習した言語、事実、パターンに関するモデルの中核的な理解を表す「組み込み」知識です。コンテキストウィンドウメモリとは、モデルがコンテキストウィンドウの制限内で単一のセッション中にアクセスできる一時的な情報を指します。つまり、現在の会話の「作業メモリ」であり、セッションが終了したとき、またはトークン制限により古い情報が押し出されたときに消失します。
エージェントメモリは、LLM メモリと外部の永続性管理システムの組み合わせであり、AI エージェント内での真の継続性と学習を可能にする計算的外脳を提供します。LLM は情報を処理し、応答を生成する認知エンジンとして機能しますが、エージェントメモリは知識を蓄積し、セッション全体でコンテキストを維持し、履歴パターンに基づいて動作の適応を可能にする永続的な基盤として機能します。