本文へスキップ
メニュー

プロダクト

ソリューション

連携

開発者

言語

プロダクト

記憶はどう古くなるか

使われないセッションページは保持スコアが下がり、削除されることがあります。低スコアのページの圧縮、重複統合、dream pass は既定で無効です。LLM を設定すると、別の自動改善スケジューラーが wiki を自動編集する場合があります。

古くなるもの、残るもの

記憶の4つの階層のうち、減衰するのは1つだけです。ピン留めページはどの階層でも対象外です。

  • 作業記憶

    進行中のセッションのためのメモです。セッションとともに終わります。

  • エピソード記憶

    セッションごとに1ページ。古くなるのはこの階層です。誰も読まないページは数か月でコールドになります。

  • 意味記憶

    決定事項、概念、落とし穴。減衰しません。

  • 手続き記憶

    ルール、手順、ランブック。減衰しません。

LLMを使わない経路

定期実行のスイープが、ピン留めされていないエピソード記憶のページすべてにスコアを付けます。スコアは時間とともに下がり、ページが読まれるたびに上がります。

ページの読み取り

強化

保持スコア

忘却スイープ

コールド?

コールド?

追い出し

コンパクション

残る1ページ

gitの履歴

restore-page

追い出し

コンパクション

残る1ページ

実線はデフォルト、破線の枠は任意の機能です。restore-pageは、プロジェクトが存在する間、保存されたgitチェックポイントからページ内容を復元します。データベースだけに保存されたセッション、観測、引き継ぎは復元しません。

保持スコア

  • デフォルト設定では、ページのスコアは約35日ごとに半分になります。0.20を下回るとコールド扱いです。
  • 読まれるたびにスコアが加算されます。古い読み取りの効果も薄れていきます。
  • StaleまたはWrongのフィードバックを受けたページは、重要度が最低になります。
  • スコアが決めるのはスイープの動作です。検索のランキングは一切変えません。
サーバー設定
# 3つとも任意です。指定しなければ、コールドページは共通の1本の曲線で追い出されます。
[decay]
compact_cold_episodic = true
dedup_cold_clusters = true

[decay.half_life_days]
working = 7
episodic = 365
  1. 常にオン

    読まれるページは生き残る

    検索でのヒット、ページを開くこと、リンク経由でたどり着くこと、memory_exploreは、すべて読み取りとして数えます。読み取りはスコアを上げるだけです。

  2. デフォルトはオフ

    階層ごとの半減期

    [decay.half_life_days]で、階層ごとの減衰の速さを決めます。たとえば一時的なメモは短く、セッション履歴は長くできます。指定しなければ、スコアはこれまでとまったく同じです。

  3. デフォルトはオフ

    コールドページのコンパクション

    compact_cold_episodicを有効にすると、コールドページは概要、最初の段落の要約、残す価値のあるトークン(ファイルパス、URL、コード片、エラーコード、識別子)を残し、地の文を捨てます。無効なら、ページは追い出されます。

  4. デフォルトはオフ

    ほぼ重複するページのマージ

    dedup_cold_clustersを有効にすると、ほぼ同じ内容のコールドページを埋め込みでクラスタにまとめます。スコアが最も高いページが残り、ほかのページの保持トークンを取り込みます。ほかのページは置き換え済みになり、残ったページを指します。

  5. デフォルトはオフ

    空のセッションを飛ばす

    エントロピーフィルターが、ほぼ空のセッションページや繰り返しの多いセッションページを経験抽出パスから外します。LLMのプロンプトを組み立てる前の段階です。

  6. memory_lintで実行

    矛盾の疑いを知らせる

    memory_lintは、重複ではないのに同じ話題を扱っている知識ページの組を報告し、どちらが新しいかを示します。報告は参考情報で、ページは編集しません。

  7. 常にオン

    ページごとの信頼度スコア

    各ページに0から0.95の信頼度が付きます。裏付けとなる別々のセッションの数、最後のセッションの新しさ、矛盾するページの数から計算します。explainの出力で確認できます。ランキングに影響するのは、belief_authority_weightを0より大きくした場合だけです。

夢見パス

重複排除はクラスタの事実を残します。夢見パスは同じクラスタをあなたのLLMに渡し、LLMがそれを筋の通った1ページに書き直します。離席中に動き、戻ってくると止まります。

オプトイン

アイドル5分

コールドクラスタ

新規性の高い順

LLMが書き直し

LLMが書き直し

マージ済み1ページ

元ページは置き換え済み

操作があれば中止

gitの履歴

スケジューラーは1時間に1回、実行するかどうかを判断します。開始には5分間の静かな時間が必要です。1回の実行で扱うクラスタは最大8つです。
  • 必要なものは3つ

    [dream] enabled = true、LLMプロバイダー、埋め込みモデルです。プロバイダーがなければ、LLMを使わない重複排除がこれまでどおり動きます。

  • あなたが離れるのを待つ

    クライアントからの操作が300秒間なければ実行が始まります。戻ってくると、次のクラスタの手前で中止します。

  • 新規性の高いクラスタから

    wikiにすでにある内容から最も遠いクラスタを先に処理します。この順序とアイドルでの起動は、HonchoのDreamerにならっています。

  • 元のページは置き換え済みに

    スコアが最も高いページが書き直されます。マージされた各ページはそのページを指すスタブになり、元の文章はバージョンの連鎖とgitに残ります。

  • マージごとに元ページを記録

    どのページが各マージの材料になったかをエビデンス行に記録するので、でっち上げられた内容があれば追跡できます。出力はスキーマ検証済みのJSONで、実行ごとにレポートが残ります。

サーバー設定
# LLMプロバイダーと埋め込みモデルも必要です。
[dream]
enabled = true
idle_window_secs = 300
max_clusters_per_run = 8

元に戻せるもの、戻せないもの

コンパクション、重複排除、夢見パスはwikiを通して書き換えるので、変更はどれも新しいバージョンとgitのコミットになります。

  • 書き換えは元に戻せる

    ai-memory restore-page と memory_restore_page は、プロジェクトが存在する間、保持されたgitチェックポイントからページを復元します。MCPでのチェックポイント一覧取得と復元には、どちらも管理者権限が必要です。データベースにのみ保存されたセッション、観測、ハンドオフは復元しません。

  • 更新前に既定値を確認

    圧縮、重複統合、dream pass は引き続き任意です。既存の保持・有効期限のルールは適用されます。更新前に完全なバックアップを取ってください。wiki 移行時の自動アーカイブはデータベースのバックアップの代わりにはなりません。

  • 残したいものはピン留め

    ピン留めはスコアの低下による削除を防ぎます。意味情報や手順のページは減衰しません。ただし明示的な有効期限がある場合は、ピン留めしたページも削除対象です。

任意の台帳整理: [decay] ledger_retention_months = N は、対象月の終了後、UTCでNか月が完全に経過したローテーション済みフックログを削除します。既定値は0(無効)です。log.md、今月、先月は常に保持します。ドライランで確認してください。過去のgit履歴やバックアップにはコピーが残る場合があります。

クエリの方法をさらに

どれも既存のツールの任意の引数です。

  • 引用付きの回答

    memory_queryにanswer: trueを付けると、短い回答と、その出どころのページパスが返ります。LLMプロバイダーが必要で、Honchoのdialecticエンドポイントにならっています。回答の品質はまだ評価していないので、引用されたページを開いて確認してください。

  • 推論レベル

    reasoning引数はminimalからmaxまであり、回答とmemory_exploreのトークン予算を決めます。

  • ピン留めページを先頭に

    pin_firstは、最大10件のピン留めページを検索結果の前に置きます。セッションのブリーフィングにもピン留めページが載るようになりました。

  • 関連ページ

    memory_read_pageにinclude_relatedを付けると、リンクとバックリンクを3ステップ先までたどります。

  • 必要なら古いバージョンも

    include_supersededは、置き換え済みのバージョンをラベル付きで検索結果に加えます。

  • どのプロジェクトが答えたか

    memory_statusは、解決したワークスペースとプロジェクト、その解決の経緯を報告します。

変更履歴の全文を読む

よくある質問

ai-memoryは古い記憶を削除しますか?

ピン留めしていないエピソード型のセッションページは古くなります。コールドページはデフォルトで追い出され、データベースの削除マーカーは180日後に取り除けます。任意のコンパクションやマージで短い内容を残せます。保存されたgitチェックポイントにページが含まれ、プロジェクトが存在すれば復元できます。ピン留め済み、意味記憶、手続き記憶のページは減衰しませんが、明示的な有効期限による削除は適用されます。

記憶のエイジングにLLMは必要ですか?

いいえ。スコア付け、階層ごとの半減期、コンパクション、重複排除、矛盾の検出、信頼度スコアはLLMを使いません。重複排除と矛盾の検出は埋め込みを読みますが、これはデフォルトのローカル埋め込みモデルが生成します。LLMを呼ぶのは夢見パスだけで、デフォルトではオフです。

夢見パスとは何ですか?

オプトインのバックグラウンドジョブです。5分間アイドルが続くと、ほぼ重複するコールドページのクラスタを取り上げ、あなたのLLMが各クラスタを1ページに書き直します。元のページは置き換え済みになり、あなたが戻ると実行は止まります。

アップグレードすると、既存の記憶は変わりますか?

圧縮、重複統合、dream pass は引き続き任意です。既存の保持・有効期限のルールは適用されます。更新前に完全なバックアップを取ってください。wiki 移行時の自動アーカイブはデータベースのバックアップの代わりにはなりません。

これらの機能で検索スコアは上がりますか?

まだ誰も測定していません。評価ハーネスで改善が示されるまで、プロジェクトはこれらを「リリース済み、オプトイン、効果は未検証」として扱います。

今日からエージェントに記憶を。

MITライセンスの無料オープンソースです。デフォルトの記憶機能にモデルのAPIキーは不要ですが、コーディングエージェントには別途アカウントが必要な場合があります。