Dreaming(実験的)
Dreaming はmemory-core におけるバックグラウンドのメモリ統合パスです。
「dreaming」と呼ばれるのは、システムがその日に出てきた内容を見直し、
永続的なコンテキストとして保持する価値があるものを判断するためです。
Dreaming は 実験的、オプトイン、デフォルトで無効 です。
dreaming が行うこと
memory_searchのヒットから得られる短期リコールイベントをmemory/YYYY-MM-DD.mdに追跡します。- 重み付きシグナルでそれらのリコール候補をスコアリングします。
- 条件を満たした候補のみを
MEMORY.mdに昇格します。
昇格シグナル
Dreaming は 4 つのシグナルを組み合わせます:- 頻度: 同じ候補がどれだけ頻繁にリコールされたか。
- 関連性: 取得時のリコールスコアがどれだけ高かったか。
- クエリの多様性: どれだけ多くの異なるクエリ意図でその候補が現れたか。
- 新しさ: 最近のリコールに対する時間的重み付け。
シグナルの重み
| Signal | Weight | Description |
|---|---|---|
| 頻度 | 0.35 | 同じエントリがどれだけ頻繁にリコールされたか |
| 関連性 | 0.35 | 取得時の平均リコールスコア |
| 多様性 | 0.15 | それを表面化させた異なるクエリ意図の数 |
| 新しさ | 0.15 | 時間減衰(14 日の半減期) |
仕組み
- リコール追跡 — すべての
memory_searchヒットは、 リコール回数、スコア、クエリハッシュとともにmemory/.dreams/short-term-recall.jsonに記録されます。 - スケジュールされたスコアリング — 設定された頻度で候補が 重み付きシグナルを使ってランク付けされます。すべてのしきい値ゲートが同時に通過する必要があります。
- 昇格 — 条件を満たしたエントリは、昇格タイムスタンプ付きで
MEMORY.mdに追加されます。 - クリーンアップ — すでに昇格済みのエントリは今後のサイクルから除外されます。 ファイルロックにより同時実行を防ぎます。
モード
dreaming.mode は頻度とデフォルトのしきい値を制御します:
| Mode | Cadence | minScore | minRecallCount | minUniqueQueries |
|---|---|---|---|---|
off | 無効 | — | — | — |
core | 毎日午前 3 時 | 0.75 | 3 | 2 |
rem | 6 時間ごと | 0.85 | 4 | 3 |
deep | 12 時間ごと | 0.80 | 3 | 3 |
スケジューリングモデル
Dreaming が有効な場合、memory-core は繰り返しスケジュールを
自動的に管理します。この機能のために cron ジョブを手動で作成する必要はありません。
次のような明示的なオーバーライドで動作を調整することは可能です:
dreaming.frequency(cron 式)dreaming.timezonedreaming.limitdreaming.minScoredreaming.minRecallCountdreaming.minUniqueQueries