認知メモリシステム
忘却曲線を備えた人間型記憶——エージェントは重要なことを覚え、不要なことを忘れる。
たとえ話:人間の脳が記憶を整理する方法
Section titled “たとえ話:人間の脳が記憶を整理する方法”自分がどうやって物事を記憶しているか考えてみてください:
- 「先週の火曜日にSarahとコーヒーを飲んで、転職するって言ってた。」 — これはエピソード記憶:特定の時間の特定の出来事。
- 「Sarahはマーケティング部で働いている。」 — これはセマンティック記憶:特定の出来事から切り離された一般的な事実。
脳は自然にこれらを分離します。「Sarahは何をしているの?」と聞かれた時、彼女との全会話をリプレイするのではなく、セマンティックな事実に直接アクセスします。
そして時間とともに、重要でないエピソード記憶は薄れます。2週間前の火曜日のランチを覚えていません。でも上司が昇進を告げてくれたランチは覚えている——それが重要だったから。
DuDuClawのメモリシステムはこのアーキテクチャを再現しています。
2つのメモリストア
Section titled “2つのメモリストア”エピソード記憶 — 特定のインタラクションの記録。タグ付き:
- タイムスタンプ(いつ起きたか?)
- コンテキスト(どのチャネル?どのユーザー?どのトピック?)
- 感情的価値(ポジティブ、ネガティブ、ニュートラル?)
セマンティック記憶 — 抽出された事実と知識。時間的コンテキストなし:
ユーザーはRustに注力するバックエンド開発者。ユーザーはアナロジーベースの説明を好む。請求モジュールにはnull関連バグの履歴がある。メモリ検索:3D加重検索
Section titled “メモリ検索:3D加重検索”エージェントが何かを思い出す必要がある時、単純なキーワード検索ではありません。3つの次元でメモリの関連性をランク付けします:
- 新しさ(Recency):最近のメモリほどスコアが高い
- 重要度(Importance):重要な決定 > 日常会話
- 関連性(Relevance):現在のクエリとのセマンティック距離
最終スコア = 3つの加重組み合わせ。スコア順にトップNのメモリを返却。
3次元間の重みは設定可能。緊急サポートチケットを処理するエージェントは新しさと重要度を重み付け。ナレッジベースとして機能するエージェントは関連性を重み付け。
このアプローチはStanfordのGenerative Agents研究論文に着想を得ており、3D検索が単純なキーワード検索よりも人間らしいメモリ想起を生成することが実証されました。
メモリ減衰:忘却曲線
Section titled “メモリ減衰:忘却曲線”すべてのメモリが永久に存在すべきではありません。システムは間隔反復忘却曲線を実装:
メモリ作成 | v 初期強度:1.0 | v アクセスなく時間が経過... | v 強度が減衰:0.8 → 0.6 → 0.4 → 0.2 | v 閾値以下?→「フェード」としてマーク (存在するが通常の検索には浮上しない) | v 再びアクセスされた場合 → 強度が1.0にリセット (メモリが「リフレッシュ」され、再び減衰を開始)減衰率は重要度によって変化:
- クリティカルメモリ(セキュリティインシデント、重要決定):遅い減衰、高閾値
- 重要メモリ(ユーザー好み、繰り返しトピック):中程度の減衰
- カジュアルメモリ(挨拶、雑談):速い減衰、低閾値
メモリストアの無制限な成長を防止。古く重要でないメモリが自然にフェードアウトし、検索システムを高速でフォーカスされた状態に保ちます。
全文検索とベクトルインデックス
Section titled “全文検索とベクトルインデックス”直接的なキーワード検索にはデータベース内蔵の全文検索機能を使用。
セマンティック検索(キーワードを共有しなくても概念的に類似したメモリを見つける)にはベクトルインデックスを維持——embeddingによりキーワード検索が見逃す接続をキャッチ。
フェデレーテッドメモリ:エージェント間ナレッジ共有
Section titled “フェデレーテッドメモリ:エージェント間ナレッジ共有”マルチエージェント設定では、エージェントが互いの知識にアクセスする必要がある場合がありますが、すべてではありません。フェデレーテッドメモリシステムが制御された共有を提供:
メモリには共有レベルがあります:
- プライベート:所有エージェントのみアクセス可能
- チーム:同じグループのエージェントがアクセス可能
- パブリック:任意のエージェントがアクセス可能
組織が情報を扱う方法を反映:ある知識は部門固有、ある知識は全社共通、ある知識はNeed-to-know。
Wikiナレッジベース
Section titled “Wikiナレッジベース”会話メモリに加え、構造化された知識取り込みをサポート:外部知識ソース(URL、ドキュメント、wiki)をパース、構造化データを抽出、全文検索用にインデックス、ベクトル検索用にembeddingを生成。
Webダッシュボードにはインタラクティブなナレッジグラフ可視化が含まれ、異なる知識がどう繋がっているか——トピック、エンティティ、それらの関係——を表示します。
パーソナライズされたインタラクション
Section titled “パーソナライズされたインタラクション”メモリを持つエージェントはすべての会話をゼロから始めません。ユーザーの好み、過去の問題、コミュニケーションスタイルを記憶。体験を「毎回新しい人と話す」から「自分を知っている人と話す」に変革します。
時間とともに、エージェントはその領域の豊かな理解を構築。サポートエージェントは一般的な問題、既知の回避策、ユーザー固有の設定に関する知識を蓄積。セッション間で持続し、応答品質を継続的に向上。
スケーラブルなメモリ
Section titled “スケーラブルなメモリ”忘却曲線がメモリの無制限な成長を防止。システムは関連性のある最近のワーキングメモリセットを自然に維持しつつ、古く重要でないメモリをフェードさせます。手動クリーンアップ不要。
エージェント間インテリジェンス
Section titled “エージェント間インテリジェンス”フェデレーテッドメモリは知識がサイロ化しないことを意味。あるエージェントが学んだ製品インサイトが、サポートエージェント、営業エージェント、ドキュメントエージェントに恩恵をもたらせます——すべて自動的に、プライバシーコントロール付きで。
他システムとの連携
Section titled “他システムとの連携”- 進化エンジン:メモリパターンが予測エンジンの精度にフィードバック。
- Session Manager:会話履歴がエピソード記憶に流入。
- Wiki取り込み:構造化知識がセマンティックメモリストアに投入。
- ダッシュボード:メモリ内容、検索インターフェース、ナレッジグラフがWebインターフェースでアクセス可能。
メモリはステートレスなチャットボットと有用なアシスタントを分けるものです。人間の認知をモデルにしたメモリ——エピソード/セマンティック分離、重要度加重検索、自然な忘却、制御された共有——により、DuDuClawはエージェントにすべてのインタラクションから学び、記憶し、成長する能力を与えます。