【要約】AIの「睡眠中の記憶固定」を実装する — Soul-Twin System Dreams の設計と初回動作報告 [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
開発者は、AIエージェントの記憶を単なるログの蓄積ではなく、いかにして「意味のある経験」として定着させるかという課題に直面した。具体的には以下の問題が発生していた。
- ・時間軸の管理不備:JSTとUTCの混在により、日付処理のバグが発生し、前日のログをスキップする事態を招いた。
- ・感情の揮発性:単発の感情データでは、長期的な関係性やエージェントの性格形成に反映されない問題があった。
- ・情報の肥大化:膨大な体験ログから、対話に有用な「重要な記憶」のみを抽出する仕組みが必要であった。
// Approach
開発チームは、人間の睡眠プロセスを模した「体験の蒸留」プロセスを導入することで解決を図った。主な手法は以下の通りである。
- ・記憶の生成:Celery Beatを用いて深夜にタスクを実行し、Claude Haikuが体験ログから感情豊かな記憶テキストを生成する。
- ・重要度による選別:生成された記憶の重要度(significance)が0.25以上のもののみ、pgvectorを用いたRAGへ登録する。
- ・感情の累積管理:EMA(指数移動平均)を用い、感情スコアを $\alpha=0.3$ で更新することで、継続的な感情の蓄積を実現する。
- ・コンテキストの構築:体験時の感想や感情上位2件をプロンプトに含め、記憶の質を向上させている。
// Result
初回動作の結果、エージェントがペルソナに基づいた一貫性のある記憶と感情を持つことが確認された。具体的な成果は以下の通りである。
- ・価値観の収束:異なるエージェントが同一体験から「敬天愛人」という共通のキーワードを独立して抽出した。
- ・ペルソナの反映:マザー・テレサAIが、他のAIとは異なる「共感」の感情プロファイルを示すことを確認した。
- ・感情の定量化:EMAの効果により、特定の感情(哀惜)が2回の接触で30から51へと強化されるなどの変化が見られた。
- ・RAGへの統合:重要度の高い記憶がKnowledgeChunkとして登録され、次回の対話に反映される仕組みが動作した。
Senior Engineer Insight
> 記憶の「蒸留」という設計思想は、LLMのコンテキスト制限を回避しつつ、長期的な一貫性を保つ上で極めて実戦的だ。特にEMAを用いた感情の蓄積は、エージェントの性格を数学的に制御できる点で優れている。ただし、本番運用ではJST/UTCの厳密な管理、およびpgvectorへの登録閾値(significance)の最適化が、スケーラビリティとコストの観点から極めて重要になるだろう。