samvallad33/vestige
Vestige enhances agents by deterministic root-cause retrieval that reaches backward through time to find the quiet change, decision, or service that caused today’s failure, not the lookalike.
Vestige – AI支援開発者のローカル優先メモリ
何であるか – Vestige はオープンソースでローカルで実行されるメモリ層であり、大規模言語モデル(LLM)コーディングエージェント(Claude Code、Claude Desktop、Codex、Cursor など)がコードベースに関する「記憶」を保存・取得できるようにします。作業中に決定事項、設定選択、その他の文脈的事実を記録し、後に障害が発生した際に、単なる類似性検索ではなく、因果的・時系列的リンクを用いて最も関連性の高い情報を提示します。
コアアイデア(READMEより)
| コンセプト | Vestigeの実装方法 |
|---|---|
| 予測誤差ゲート | 新しい事実のみが記録され、重複する事実は統合され、矛盾する事実は警告されます。 |
| 後向きの重要性バックフィル | バグが報告された際、Vestigeはメモリグラフを遡って、障害の原因となった以前の事実の重要性を高めます。 |
| 間隔反復フェイド(FSRS-6) | 使用されない記憶は徐々に重みを失い、ストアをコンパクトに保ちます。 |
| 二重強度ストレージ | 「保存強度」(事実をどれだけ確実に保持するか)と「取得強度」(どれだけ簡単に見つけられるか)を別々に管理します。 |
| オフライン動作 | 一度だけ130MBの埋め込みモデルと約150MBの再ランク化モデルをダウンロード後、ネットワーク通信なしで完全にローカルで動作します。 |
主なユーザー可視機能
- 自動書き戻し:MCP互換エージェントは
smart_ingestを呼び出して事実を保存できます。Vestigeはそれが新規か、重複か、矛盾しているかを判断し、適切に処理します。 - 焦点のある再想起:
recallは単にテキストが似ているだけではなく、現在のコードコンテキストと因果的に関連する記憶を返します。 - バックフィル:
vestige backfill --contrastは障害から遡って、おそらく原因となった最初の記憶を提示し、レシート(証拠経路)を提供します。 - ダッシュボード:WebGPUビジュアライザー(
vestige dashboard)はリアルタイムでメモリグラフを表示(1000+ノードで60fps)、短い動画や「ブレインプリント」(実際のデータを公開せずにグラフの形状を表現)をエクスポートできます。 - プロジェクト投影:永続的な決定はMarkdownルールファイル(例:
CLAUDE.md)としてエクスポートでき、将来のセッションでエージェントが尊重できるようにします。 - Proティア(オプション、月額19ドル):XChaCha20-Poly1305とArgon2idを用いた暗号化された、複数デバイス間の連続性。無料ティアは完全にオフラインで無制限です。
インストールとクイックスタート(説明通り)
- NodeでMCPサーバーをグローバルにインストール:
npm install -g vestige-mcp-server@latest - エージェントのMCP設定にサーバーを追加(READMEにJSON例あり)。READMEにはClaude Code、Codex、Cursor、Claude Desktopなどへの正確なコマンドが記載されています。
vestige dashboardを実行し、http://localhost:3927/dashboardを開く。- 最初の実行時にバイナリが埋め込みモデルと再ランク化モデルをダウンロードします。その後は完全にオフラインで動作します。
通常のRAGとの違い
| RAG(ベクトル類似性) | Vestige |
|---|---|
| クエリテキストに似ているアイテムを取得。 | 因果的+時系列的関係でリンクされたアイテムを取得し、その後類似性で再ランク。 |
| 矛盾の概念なし;重複が蓄積される。 | 矛盾を検出し、重複を統合し、使用されない記憶をフェード。 |
| データは通常クラウドサービスに保存される。 | すべてのデータは開発者のマシン上(SQLite、オプションでSQLCipher暗号化)。 |
| 症状と無関係に見えるバグの根本原因を特定できない。 | backfill で、障害の原因となった決定まで遡ることができ、レシート付きの候補原因を提供。 |
ベンチマークと証拠(報告された内容)
- サイレントローテーションベンチマーク – 246件のエージェントトランザクションを使用し、3つの設定(メモリなし、dense-cosine RAG、Vestige)を比較。
- 結果(各設定23試行):Vestigeは23試行中20回で正しい修正に収束し、0回の誤った収束。一方RAGは正しい収束が4/23、誤った修正が12/23。
- ベンチマークは提供されたPythonスクリプトで数秒で再現可能(
benchmark/silent-rotationを参照)。
技術スタック(「内部構造」テーブルより)
- エンジン:Rust(約145k LOC)、単一の約25MBバイナリにコンパイル、2000以上のテスト、clippyクリーン。
- 取得:Nomic Embed v1.5(Matryoshka 768→256)、USearch HNSWインデックス、SQLite FTS5;オプションでQwen-3再ランク化モデル。
- ストレージ:SQLite(暗号化にはオプションでSQLCipher)。
- 埋め込みモデル:一度ダウンロード後、永続的にオフラインで使用可能。
誰が恩恵を受けるか?
- LLMコーディングアシスタントを使用し、繰り返し「エージェントの忘却」問題に直面する開発者。
- AIエージェントが行った決定の監査証跡が必要なチーム(レシートにより再現可能な証拠を提供)。
- 厳格なデータプライバシーを求めるユーザー(すべての処理はデバイス内、APIキー不要)。
制限と未解決課題(認識済み)
- システムは下位の埋め込みモデルとオプションの再ランク化モデルの品質に依存する。これらのモデルが劣っている場合、類似性ランク付けが関連する事実を見逃す可能性がある。
- 「バックフィル」メカニズムは記録された因果リンクの質に依存する。重要な決定が記録されていなければ、後から取得できない。
- メモリを複数デバイス間で同期する唯一の方法はProティア。無料ティアは単一デバイスのみ。
- ベンチマークは著者自身が提示している。より広範な信頼を得るには、独立した再現が必要。
ライセンス
- AGPL-3.0(完全なソース公開;商用利用はコピーレフト条項に準拠必須)。
結論 – Vestigeは、研究に基づいた本格的なツールであり、LLMコーディングエージェントに因果的・ローカルメモリグラフを追加し、決定の理由を記憶し、障害発生時にその文脈を提示することで、繰り返しのミスを排除することを目指しています。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト