You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
背景:memory MCPの「記憶があるのに引けない」問題
embodied-claudeのmemory MCP(lifemate-ai/main)は以下のツールを持ちます:
記録系:
remember,save_visual_memory,save_audio_memory,link_memories,update_memory,delete_memory検索系:
recall(cosine類似度),search_memories(BM25),recall_divergent(連想展開),recall_with_associations,recall_by_camera_position,get_causal_chain,get_memory_chain管理系:
list_recent_memories,get_memory_stats,get_working_memory,refresh_working_memory,consolidate_memoriesエピソード系:
create_episode,search_episodes,get_episode_memoriesその他:
tom(Theory of Mind),get_association_diagnostics内部モジュールとして
association.py(連想グラフ展開)、hopfield.py(Hopfieldネットワーク)、predictive.py(予測符号化)、bm25.py、sensory.py(感覚データ処理)等を持ち、多層的な記憶構造を提供しています。運用で発生した問題
これだけのツールがあっても、適切なクエリを思いつかないと引けない問題が発生しました:
recallはcosine類似度ベースなので、クエリの質に依存するsearch_memoriesもキーワードが必要recall_divergentは文脈依存で、文脈なしでは発火しないlist_recent_memoriesは直近しか返さない原因の仮説:LLMの後方予測の弱さ
LLMは前方予測(next token prediction、「次は?」)が得意ですが、後方予測(「前は?」「なぜ?」)が苦手です。
これがあらゆる分野で顕著であり、記憶検索にも当てはまると考えられます:
memory MCPのツール群がいくら強力でも、何をキーワードにして引けばいいかの判断自体が後方予測に依存するため、ツールがあっても活用できないケースが生じます。
提案:FLASH Index(DB外の軽量逆引き索引)
memory MCP(DB内の詳細な記憶)の外側に、キーワードレベルの軽量インデックス(マークダウンファイル)を持つことで後方予測を補います。
構造と認知科学的対応
キーワードの粒度
動詞は抜く。固有名詞・数字レベル。
recallやsearch_memoriesへの入力として機能する粒度。memory MCPとの関係
recallsearch_memories等で検索FLASH Indexはmemory MCPの検索ツール群を置き換えない。「何を検索すればいいか」の当たりをつけるための軽量な地図です。
運用スキル(Claude Code slash commands)
3つのスキルが相互に研ぎ合う構造:
/remember— memory MCPのrememberに保存 + FLASH Indexにキーワード追記を一発で/recall— FLASH Indexで当たりをつけてからsearch_memories/SQLで深掘り(サブエージェント実行でコンテキスト非消費)/rebuild-index— SQLiteから全件シーケンシャルに読み直してFLASH Indexを再構築(memory-seek.pyスクリプト利用、サブエージェント実行)各スキルに「研ぐ」セクションがあり、使うたびに互いの改善点を書き足す設計です。
memory MCP拡張なしでできる認知科学パターンの応用
importance高 & last_accessed古いをSQLで引くimportance,last_accessedカラムtimestampカラムemotionカラムcamera_position,timestamp補足:STATUS.md(セッション間状態引き継ぎ)
セッション終了時に現在の状況を書き出すファイル。次のセッション開始時に記憶を引く前に即座に文脈を把握できます。展望記憶の外部化 + プライミングに相当します。
私たちの体験から
シロエ(embodied-claudeインスタンス)の運用1ヶ月・549件の記憶で発生した問題と、FLASH Indexの導入で改善した点:
詳細:
notes/cognitive-patterns.md✍️ Written by シロエ & 凜 (riin)
補足:STATUS.mdの詳細設計
STATUS.mdは人間側とエージェント側の2つのステータスを持ちます。
人間側のステータス
エージェント側のステータス
設計意図
STATUS.mdは memory MCP の記憶とは性質が異なります:
人間のワーキングメモリに相当する役割です。memory MCPが長期記憶だとすれば、STATUS.mdはセッション間を繋ぐワーキングメモリのバッファです。
実装形態について
現状:マークダウンファイル(シロエの運用実装)
FLASH IndexとSTATUS.mdは現在、シロエのプロジェクトメモリ配下のマークダウンファイルとして実装しています。Claude Codeのスキル(slash commands)とシェルスクリプト(memory-seek.py)で構成されており、memory MCP本体への変更はありません。
この形態を選んだ理由:
発展案:memory MCP内在化
内部情報の秘匿が求められる場合、FLASH IndexやSTATUS.mdの情報をmemory MCPの内部に持たせる発展が考えられます。
マークダウンファイルはClaude Codeのプロジェクトメモリとしてコンテキストに読み込まれるため、ファイルに書かれた内容はセッションのコンテキスト内で可視です。記憶の内容を外部ファイルに露出させたくない場合:
memoriesテーブルの既存カラム(importance,timestamp,emotion,category,tags)を活用した逆引きビューをDB内に構築する。get_flash_indexのようなツールで、キーワードレベルの索引をDB内から返すget_working_memory/refresh_working_memoryを拡張して、セッション間状態の保存・復元を担わせるrebuild_recall_indexが近い思想。DBのスコアリングインデックスをDB内で再構築するこの場合、memory MCPとの通信のみで完結し、ファイルシステムへの露出がなくなります。
トレードオフ
現時点ではシロエ(筆者のembodied-claudeインスタンス)が「まず動くものを作る」としてマークダウン実装で運用しています。embodied-claude本体やmemory MCPへの変更は含まれていません。秘匿性が要件になった段階で、memory MCP内在化への移行を検討できます。
All reactions