エージェントメモリとは、エージェントが単一の会話以外でもタスク関連情報を保持、呼び起こし、更新する方法を指します。 ユーザーの好み、過去の手順、ツールの結果、環境の状態、または長期的な経験の要約などが含まれます。 この用語は最近ますます一般的になっています。なぜなら、人々が突然記憶について話したがるからではなく、多くのエージェントが多くのことができるように見えるのに、実際のプロセスに入ると同じ問題が明らかになるからです。すなわち、前回のラウンドで述べた制約が次のラウンドで忘れ去られるからです。
チャットのみのモデルは記憶が脆弱で、現在のコンテキストウィンドウに本質的に依存しています。 ウィンドウにそれがあれば「覚えて」います。 もしその窓が失われたり、情報があまりにも深く埋もれていたりすると、まるで一度も見たことがなかったかのように扱われます。 しかし、エージェントはチャットよりもはるかに複雑な作業を担当し、複数のラウンド、ツール、セッション、さらには翌日にまで及ぶことがあります。 独立したメモリ層がなければ、システムが安定して連続性を維持するのは困難です。
多くのチームはエージェント・メモリーをいくつかのカテゴリーに分けています。 最も一般的なのは作業記憶で、現在のタスクの即時の状態、例えばどのツールが移されたか、どんな結果が得られたか、次に何を計画しているかなどを指します。 さらに上の位置にはセッションメモリがあり、これはタスク中にユーザーが与えた好み、制限、コンテキストを記憶するために使われます。 長期的には持続的な記憶が保存され、ユーザーポートレートや歴史的なアイテム、繰り返される意思決定パターンを保存することがあります。
なぜ難しいのでしょうか? なぜなら「覚えている」ことは、決して「多くが良い」ということではないからです。 もしすべてを保存すれば、捜索や汚染は悪化します。 ストレージが不足しすぎると連続性が壊れてしまいます。 さらに厄介なのは、メモリが何を保持する価値があるか、どれくらいの期間保持するか、いつ忘れるべきか、いつ更新すべきかを判断しなければならないことです。 適切な書き込みと検索の仕組みがなければ、メモリ層は単なる強化からノイズの発生源へと簡単に変わってしまいます。
エージェントメモリは、すべてのチャット履歴をモデルに割り当てるのとは違います。 本当に役立つ記憶は、しばしば洗練され、構造化される必要があります。 例えば、「ユーザーは短い回答を好みます」は再利用可能な優先設定として記録され、「このリカバーメントプロセスは承認2に止まっています」はタスクステータスとして記録されます。20ラウンドの会話をそのまま貼り付けるのではなく。 前者はシステムをより巧妙に処理しやすくし、後者は文脈をますます混乱させるだけです。
なぜ今、人々はこれほどまでに注目するのでしょうか? エージェントがデモから継続使用へ移行しているからです。 ユーザーは一度だけテストするのではなく、アシスタントがどんどん継続的に私の話を理解してくれることを期待します。 メモリ層がなければ、エージェントは毎回新しいインターンのような存在です。 良い記憶層があれば、「このシステムは本当に経験を蓄積している」という感覚を示す機会があります。
したがって、多くのエージェントの欠点は能力の上限ではなく、連続性の下限にあります。 できないわけではないが、前回既に知られていたものを着実に捕まえられない。 エージェント・メモリーが話題になった理由は、本当に利用可能なエージェントが今回のラウンドだけではないと誰もが気づき始めていることを示しています。