エージェントの記憶は、アプリのコードを複雑にするのではなく設定を詰めることで効くようになる。Weaviateの実践ガイドです。
タイトル: Agent Memory with Engram: A Practical Guide
URL:
会話データを投げて検索するだけの状態から、記憶の質とトークンコストを同時に最適化するところまで引き上げる手順が解説されています。
注目ポイントは3つあります。
📝 トピックの記述は「除外」で書く
記憶のカテゴリごとに書く説明文が、そのまま抽出プロンプトとして働きます。記憶してほしい例を列挙するより「イベントや一時的な状態は記録しない」といった除外ルールを1つ置くほうが、想定外のケースにもうまく汎化したと報告されています。出力の形を原子的な事実にするか散文にするかも、ここで明示します。
🔒 単数の事実はboundedで固定する
boundedを設定すると1スコープあたり記憶が最大1件に制限され、累積ではなく更新されます。新規ユーザー5人での検証では、boundedなUserProfileが5回すべてでちょうど1件を保った一方、boundedでないUserKnowledgeは毎回2〜4件に揺れました。
💰 記憶の置き場所が課金額を決める
検索結果は毎ターン変わるため、システムプロンプトに貼るとキャッシュが毎回壊れて全体が課金されます。常時必要な記憶はセッション開始時に一度取得してシステムプロンプト直後へ、検索結果はユーザーメッセージの後ろへ置くのが正解です。25ターンの検証では、最終リクエスト約3,500トークンのうちキャッシュ未ヒットは約100トークンだけに収まりました。
記憶レイヤーを自前で書くか委ねるかを検討しているなら、判断材料としても読み応えがあります。
#
AIエージェント# #
メモリ管理#