FastrMemory について
FastrMemoryは、SQLiteと再生可能なイベント履歴を基盤とする、コーディングエージェント向けのローカル優先メモリエンジンです。常駐デーモンを必要とせず、二時点記録とハイブリッド検索を組み合わせ、MCPおよび任意のローカルHTTPサービスからメモリ操作を提供します。
主な機能
- 01SQLiteに二時点メモリを保存
- 02再生可能なイベント履歴とGit履歴を保持
- 03語彙・埋め込み・グラフ検索を組み合わせ
- 04検索にフィードバックと時間フィルターを適用
- 05CLIでMCPクライアントを設定
活用シーン
- 01コーディングセッションをまたいでプロジェクトの決定事項を保持
- 02過去のエラーやファイル固有のメモを検索
- 03Git履歴でメモリの変更を確認
- 04エージェントのクライアントをローカルメモリストアに接続
MCP 対応
エージェント向けのstdio MCPサーバーを提供し、CLIからMCPクライアントの設定を行えます。任意でローカルHTTPサービスも利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
12掲載時のツール一覧 · 1 日前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| files | array | いいえ | 調査または編集対象のファイルパス |
| query | string | はい | 検索クエリまたはタスクの説明 |
| module | string | いいえ | モジュールで絞り込みます(例:auth、db、api) |
| budgetTokens | integer | いいえ | トークン上限(例:500、1500、4000) |
| includeHistory | boolean | いいえ | 置き換えられた過去のルールを含めます |
詳細
⚡ FastrMemory
高性能コグニティブエージェントメモリエンジン
デーモン不要 • ネイティブ Node 22+ node:sqlite • 双時制 Git 同期 • トリプルストリーム RRF • 公式 MCP v2
ステータス(2026-10-26):
[email protected]が公開され、latestです。 根拠:npm view fastrmemory version->0.6.0;npm view fastrmemory dist-tags --json->{"latest":"0.6.0"};タグv0.6.0(a57a656);2026-10-26 に GitHub Actions OIDC と npm provenance を使用して公開;リリースワークフローの実行40261328937で、すべてのゲート、クリーンな tarball のインストール、レジストリ検証、GitHub Release へのアップロードが成功;npm tarball は 319 ファイル、圧縮時 725,938 バイト、展開時 2,929,061 バイト;GitHub Release アセットの SHA-256 は17fc8071e5b2f715d5a79b0da542268606bf32dc37b034f5e8fa94c58f8e7a10;クリーンな環境でnpm install [email protected]を実行し、続けてfastr --versionを実行すると0.6.0;npm audit signaturesは、検証済みのレジストリ署名 5 件とアテステーション 4 件を報告します。公式 MCP レジストリでは、io.github.atifjubaer/[email protected]がactiveかつisLatestとして掲載されています(publishedAtは2026-10-26T03:09:34Z、実行40262643667)。注意:Node.js >=22.16.0 が必要です;0.5.0、0.4.0、0.3.1、0.3.0は、過去のバージョンとして引き続き公開されています。このリリースでは、デフォルトの書き込みパス(分析の遅延実行)とデフォルトの MCP サーフェス(12 ツール)が変更され、fastr hook uninstallが追加されています;スキーマの変更は追加のみ(初回オープン時にキューテーブルを 3 つ作成)で、データの書き換えはありません。以前のスコープ付き npm エントリー(@atifjubaer/fastrmemoryと[email protected])は 2026-10-23 に削除されました;GitHub のv0.2.1タグとリリースは履歴として残っています。この README は現在のmainを対象としています。現在のmainは0.6.0で、388 件のテスト/61 ファイルがあります。再現性を確保するには、正確なバージョン0.6.0を使用してください。92b4177における CI 実行40260815504では、Windows Node22.xと24.xを含む 6 つすべてのマトリックスジョブが成功し、3 つすべての OS でフックのインストール/アンインストールのスモークテストを実行しました;0.6.0リリースコミットa57a656は実行40261328937で成功し、過去の0.5.0リリースコミット54a79abは実行39977196250で、過去の0.4.0リリースコミットbb365c2は実行39879913968で成功しました。0.2.1 のリリース告知は引き続き docs/blog/2026-10-21-fastrmemory-0.2.1.md にあります。正確なリリース内容は CHANGELOG.md に記載されています。主要ベンチマークでは、SWE-bench や LongMemEval ではなく、20% のホールドアウトを含む 240 件の決定論的な合成ケースを使用しています。公開されている LongMemEval、LoCoMo、自リポジトリの検索のみの結果、および固定された外部ベースラインは BENCHMARKS.md にあります。QA リーダーボードと同等であるとは主張していません。パフォーマンス、パッケージング、検索に関する主張は CLAIMS.md で管理されており、README の各セクションは、その台帳の末尾にある README 主張トレースで主張 ID に対応付けられています。手法、注意事項、生の JSON は BENCHMARKS.md にあります。
概要 • 設計原則 • ベンチマーク • Web UI • 対応エージェント • クイックスタート • MCP のセットアップ • MCP ツール • アーキテクチャ • 移行 • セキュリティ • 評価表
リリース状況の概要
| 主張 | 現在の結果 | 根拠 |
|---|---|---|
| インストール方法 | [email protected] を公開済み | npm view fastrmemory version -> 0.6.0;npm view fastrmemory dist-tags --json -> {"latest":"0.6.0"};npm install [email protected];fastr --version -> 0.6.0;GitHub Release の tarball SHA-256 10420ed6...;古いスコープ付き npm エントリーは削除済み |
| MCP レジストリ | io.github.atifjubaer/[email protected]、ステータス active、isLatest | curl --get --data-urlencode "search=io.github.atifjubaer/fastrmemory" https://registry.modelcontextprotocol.io/v0.1/servers;gh run view 40262643667 |
| 合成データ検索(MiniLM は任意) | ホールドアウトで Hit@1 95.8%、Hit@5 100%、MRR 0.969 | npx tsx scripts/eval-bench.ts --split all --embeddings minilm --out bench/results/minilm.json |
| テストスイート | 現在の main で 61 ファイルにわたり 388 テスト;公開済みの 0.6.0 は 388 / 61;0.5.0 は 297 / 53;過去の 0.4.0 は 293 / 53;0.3.1 は 282 / 52;v0.2.1 は 235 / 43 | npm test;npm run check:ci |
| MCP のセットアップ | fastr mcp init は、9 種類の JSON クライアント向けに移植可能なレジストリ設定、またはアクティブな CLI のローカル設定を統合し、Codex 用の TOML スニペットを出力します;--source local は公開済みの 0.6.0 と 0.5.0 に含まれています | npm test -- tests/mcp-init.test.ts -> 15 passed;fastr mcp init --client claude --source local --dry-run --json -> node .../dist/bin/fastr.js mcp --project ... |
| クロスエンジン(MCP stdio) | 全体で Hit@1 80/120(66.7%、95% CI 57.8-74.5):完全一致 40/40、複数 40/40、言い換え 0/40;取り込み 1.094 ms/doc、再現率 p50 1.86 ms | npm run bench:vs;bench/results/vs-engines.json |
| クラッシュ安全性 | 10 回中 10 回成功、損失 0、重複する ID/タイトル 0 | npm run test:crash;bench/results/crash-test.json |
| 公開検索(0.3.0) | LongMemEval Hit@5 が +10.4pp / +11.0pp;LoCoMo が +4.4pp / +2.3pp(目標未達) | docs/EXTERNAL_BASELINE.md |
| リリーススコア | 暫定 9.4 / 10;目標 9.2 を達成;検索は引き続き部分達成 | SCORECARD.md |
合成データの表は SWE-bench や LongMemEval ではありません。公開数値は検索のみを対象としており、QA リーダーボードの結果ではありません。95.8% の行は任意の MiniLM を使用しています。デフォルトのオフラインハッシュ方式は、同じホールドアウトで Hit@1 77.1% / Hit@5 93.8% です。完全な来歴は CLAIMS.md に記載されています。
💡 概要
AI コーディングエージェント(Claude Code、Cursor、Windsurf、Codex、Antigravity)は、プロジェクトのメモリが欠落しやすい、または運用負荷が大きい場合、長期にわたるコードベースで性能が低下します。一般的な設計では、次の 3 つのトレードオフのいずれかが生じます。
- 古いエピソードを劣化させてマージし、ストアを小さく保ちますが、正確なファイルパス、スタックトレース、エッジケースが失われる可能性があります。
- デーモンや外部データベースを実行することで、ポート、コンテナー、セットアップ失敗の要因が増えます。
- 静的なコンテキストファイルを出力すると、際限なく肥大化し、検索できません。
FastrMemory は逐語的なイベントログ、二時点メモリ履歴、再生可能な Git ミラーを、単一プロセス内の TypeScript エンジンに保持します(ランタイム依存関係は 3 つ。ローカル埋め込みとデーモンは任意です)。
| ### ⚡ デーモンのオーバーヘッドゼロ WAL モードで動作する、Node 22+ 組み込みの純粋な `node:sqlite` を使用します。240 ケースのスイートでは、エンジンレベルの再現率は、ハッシュ埋め込みで **0.95 ms p50 / 1.60 ms p95**、train 分割の MiniLM で **3.30 ms p50 / 5.11 ms p95** です(CLI の起動時間は別途測定)。デフォルトの CLI/MCP 経路ではバックグラウンドデーモンも待ち受けポートも不要です。`daemon start` は任意です。Windows、macOS、Linux でネイティブに動作します(現在の CI マトリックスは Intel 搭載 macOS を使用しており、Apple Silicon は対象外です)。CI マトリックスの状況は [Actions](https://github.com/atifjubaer/fastrmemory/actions) で報告されています。 |
🔀 双時相 Git 同期統合中に事実を削除しません(破壊的なスリープ処理はありません)。半減期による減衰の代わりに |
🎯 3 ストリーム RRF ($k=20$)FTS5 BM25、任意のローカル埋め込み、ファイルグラフのリンクを統合します。エラートラップには、トラップを意図したクエリまたはファイルを指定したクエリに限り、条件付きで 2.0 倍のブーストを適用し、ID ごとの結果フィードバック(+0.2 / -0.5)も反映します。悪い結果が 3 回連続すると、メモリは休止状態になります。信頼度の段階は |
🧭 設計原則
| 原則 | 実装 |
|---|---|
| デフォルトで損失なし | 生イベント、双時相の valid_from / valid_to、および置換チェーンを保持します。統合によって何も破棄されません。 |
| デフォルトでデーモン不要 | 1 つの Node 22+ プロセスで、WAL モードの組み込み node:sqlite を使用します。デフォルトの CLI/MCP 経路ではポートもバックグラウンドサービスも開きません。daemon start は任意です。 |
| 再現可能 | Git 差分を確認できる Markdown ミラーにスナップショットとロールバックを組み合わせ、履歴を確認可能に保ちます。 |
| 主張ではなく測定 | 公開されている主張は、20% のホールドアウトを含むコミット済みのベンチマーク JSON に基づいています。シミュレーションによるベースラインには、シミュレーションであることを明記しています。 |
🤖 MCP および HTTP 対応エージェントで動作
FastrMemory は、stdio MCP サーバーを 1 つと、任意のローカル HTTP サービス(ダッシュボードとデーモン)を提供します。ネイティブインストーラーは、Claude Code(MCP 設定とライフサイクルフック)、Cursor(MCP 設定とスキル)、さらに 0.3.0 以降は Gemini CLI、GitHub Copilot CLI、OpenCode V2(fastrmemory hook install)を設定します。fastrmemory setup は Antigravity、Claude Desktop、Windsurf 用の MCP 設定も書き込みます。それ以外のクライアントは、各自の MCP 設定または REST API 経由で接続します。統合の度合いはクライアントによって異なります。このリポジトリのテスト対象はネイティブインストーラーのみです。
FastrMemory でよく使用されるクライアントには、Codex CLI、Gemini CLI、OpenCode、GitHub Copilot CLI、Antigravity、Claude Desktop、Cline、Continue、Roo Code、Goose、Zed、Warp、Aider があります。クライアントの一覧への掲載は、テスト済みのネイティブ統合を意味するものではありません。
🚀 クイックスタート
⚡ グローバルインストールせずに実行
正式なパッケージ名はスコープなしの [email protected] です。0.4.0 と 0.3.1 は過去のバージョンとして引き続き公開されています。以前のスコープ付き npm エントリーは 2026-10-23 に削除されました。
# Canonical one-shot (pins the exact release):
npx -y [email protected] setup
# Or launch the local Web UI:
npx -y [email protected] ui
GitHub のソースパスは、開発用として引き続き利用できます:npx github:atifjubaer/fastrmemory setup。再現可能なソースインストールでは、タグを固定します:npx github:atifjubaer/fastrmemory#v0.5.0 setup。生成される MCP 設定やフック設定では、どちらの GitHub 形式も使用しないでください。これらには npm パッケージを使用する必要があります。デフォルトの latest チャネルは新しいリリースを追跡し、--channel pinned は再現性のために正確なバージョンを記録します。
npm からインストール
# Canonical install (latest is 0.6.0):
npm install -g fastrmemory
fastr --version
# Exact release:
npm install -g [email protected]
グローバルインストールせずに一度だけ実行する場合:
npx -y [email protected] --version
公式 MCP レジストリには、サーバーが io.github.atifjubaer/fastrmemory(0.6.0、ステータス active)として掲載されているため、レジストリに対応したクライアントは名前で検索できます。このエントリーには、同じ npx -y [email protected] mcp パッケージと stdio トランスポートが記載されています。0.6.0 は .github/workflows/release.yml によりタグ v0.6.0 からビルドされます。このワークフローはすべてのゲートを実行し、npm provenance を付与して公開し、同じ tarball を GitHub Release に添付します。npm view [email protected] version と npm view fastrmemory dist-tags --json でレジストリの結果を確認してください。数分間の最初の E404 は、公開の失敗ではなくレジストリへの反映中です。以前のスコープ付き npm エントリーは削除済みです。0.3.0 は再公開しないでください。0.5.0、0.4.0、0.3.1 は過去のバージョンとして公開されたままです。
既存のインストールを更新する
バージョンを変更する前に、すべてのエージェント、フック、fastr ui、fastr daemon を停止してください。プロジェクトのルートから次を実行します。
# 1. Back up memory before changing versions
fastr backup fastr-backup.jsonl
fastr backup --verify fastr-backup.jsonl
# 2. Update the global CLI
npm install -g fastrmemory@latest
fastr --version
# 3. Refresh project integration (choose what you use)
fastr mcp init --client all --scope project # portable npx configs only
fastr mcp init --client all --scope user --source local --profile core # installed CLI
fastr setup # MCP configs, AGENTS.md, and skills
fastr hook install # lifecycle hooks plus MCP for hook clients
# 4. Verify
fastr status
fastr hygiene
0.5.0 にはスキーマの移行はありません。--channel pinned を使用している場合は、更新のたびに fastr mcp init を再実行してください。デフォルトの latest チャンネルを使用している場合は、クライアントを再起動して新しいリリースを適用してください。--source local を使用している場合、設定はインストール済みの CLI を参照するため、グローバルパッケージを更新すれば、設定を書き換えずにサーバーが更新されます。fastr setup はコピー済みのスキルを更新し、同名のスキルファイルを上書きし、廃止されたスキルを削除しますが、ユーザー所有のディレクトリはそのまま残します。fastr hook install はスキルをコピーしません。ロールバックについては MIGRATION.md を参照してください。
1 コマンドで MCP をセットアップ
fastr mcp init は shadcn 形式のセットアップ方法です。これは設定のみを対象とし、既存のクライアント設定に fastrmemory MCP エントリーを統合し、無関係なキーを保持し、一度限りの .fastr.bak バックアップを作成し、冪等に動作します。ライフサイクルフック、スキル、OpenCode プラグインはインストールしません。フックと OpenCode プラグインには fastr hook install を、スキルには fastr setup を使用してください。
# Claude Code (project-scoped .mcp.json)
npx -y fastrmemory@latest mcp init --client claude
# Cursor
npx -y fastrmemory@latest mcp init --client cursor
# VS Code (.vscode/mcp.json)
npx -y fastrmemory@latest mcp init --client vscode
# OpenCode (opencode.json)
npx -y fastrmemory@latest mcp init --client opencode
# Gemini CLI and GitHub Copilot CLI
npx -y fastrmemory@latest mcp init --client gemini,copilot
# Every project-scoped client at once
npx -y fastrmemory@latest mcp init --client all --scope project
他のパッケージランナーで同じコマンドを実行する場合:
pnpm dlx fastrmemory@latest mcp init --client claude
yarn dlx fastrmemory@latest mcp init --client claude
bunx fastrmemory@latest mcp init --client claude
デフォルトの --channel latest は fastrmemory@latest を書き込むため、クライアントを再起動すると最新の npm リリースが適用されます。実行したコマンドの正確なバージョンを含む再現可能な設定にするには、--channel pinned を使用してください。現在の main では [email protected] が書き込まれます。--runner pnpm|yarn|bunx は生成されるランナーを変更し、--profile full は 43 個のツール構成を選択します(デフォルトは 12 個のツールを含むコアプロファイルです)。--dry-run は書き込みを行わずに対象を表示します。--scope user は、サーバーが常に意図したデータベースを開くよう、明示的な --project /absolute/path を指定してユーザーレベルの設定を書き込みます。Codex はユーザー所有の TOML ファイルを書き換える代わりに、~/.codex/config.toml 用の [mcp_servers.fastrmemory] TOML ブロックを出力します。
グローバルインストール済みの CLI では、npx コマンドの代わりに現在の CLI パスを書き込むため、--source local を使用してください。絶対パスの --project が常に追加されるため、設定はマシン固有になりますが、npx のコールドスタートなしで起動します。
fastr mcp init --client all --scope user --source local --profile core
グローバルパッケージを更新するとサーバーも更新されます。CLI のパスが変わった場合に限り、コマンドを再実行してください。マシン間で共有するコミット可能なポータブルなプロジェクト設定には、デフォルトの --source registry を使用してください。
--source localは公開済みの0.5.0に含まれています。0.4.0は過去のバージョンとして公開されたままです。0.4.0では、インストール済み CLI の設定にfastr setupを使用してください。
mcp initは0.4.0以降に含まれています。npx fastrmemory@latest mcp init ...は現在、公開済みの0.5.0に解決されます。以前のリリースが必要な場合は、fastr setupを使用するか、[email protected]に固定してください。
GitHub からインストール
ソースから一度だけ実行する場合は、リリースタグを固定します。
npx --yes github:atifjubaer/fastrmemory#v0.5.0 --version
npx --yes github:atifjubaer/fastrmemory#v0.5.0 setup
npm の Git リゾルバーを使わずにグローバル CLI をインストールするには、リリースの tarball をダウンロードします。
curl -L -o fastrmemory-0.5.0.tgz \
https://github.com/atifjubaer/fastrmemory/releases/download/v0.5.0/fastrmemory-0.5.0.tgz
npm install -g ./fastrmemory-0.5.0.tgz
fastr --version
Windows では、同じ URL を Invoke-WebRequest またはブラウザーでダウンロードし、npm install -g .\fastrmemory-0.5.0.tgz を実行します。ローカルプロジェクトにインストールする場合は、グローバルフラグの代わりに npm install --no-save ./fastrmemory-0.5.0.tgz を使います。
Git からのインストールではソースからビルドするため、npm の tarball より時間がかかります。グローバル CLI には、上記の npm パッケージまたはリリース tarball を推奨します。npm 11 では
prepareのビルドに dev dependencies が渡されないため、npm install -g git+https://...は推奨しません。インストール後はfastrmemoryとfastr(短縮エイリアス)のどちらも実行できます。正式なパッケージはスコープなしの[email protected]です。古いスコープ付き npm エントリーは削除されています。インストールの再現性を保つため、生成される MCP とフックの設定には npm を使用してください。
2. データベースの健全性を確認する
fastrmemory status
出力:
=== FastrMemory Health (my-project) ===
- Project ID: proj_1cce2a654e3a
- Active Memories: 2
- Staging Memories: 0
- Superseded History: 0
- Ingested Events: 0
- Pending Spool: Clear (0)
- Database File: .fastr/fastr.db
3. メモリを記録して想起する
# Record an error trap linked to an exact file:
fastrmemory remember "Never Use Date.now() Milliseconds for JWT Expiration" \
-c "JWT exp claims expect integer seconds. Always use Math.floor(Date.now() / 1000)." \
-m auth -k error_trap -f "src/auth/jwt.ts" --verified
# Recall with conditional 2.0x trap boost & file-graph matching:
fastrmemory recall "JWT expiration" -f "src/auth/jwt.ts"
出力:
=== Recalled Memories (1 results, ~46 tokens) ===
[mem_009e4a7d] [TRAP] [verified] Never Use Date.now() Milliseconds for JWT Expiration (Score: 0.08)
JWT exp claims expect integer seconds. Always use Math.floor(Date.now() / 1000).
解決されていない矛盾は、コンテキストに黙って混ぜ込まれるのではなく、想起結果の両側にマークされます(0.3.0)。
# Inspect unresolved contradictions:
fastrmemory conflict list
# Keep the rule that matches the project and supersede the loser:
fastrmemory conflict resolve 1 --keep mem_009e4a7d --forget --reason "Seconds are the project standard"
既存のローカルルールをインポートする(0.3.0)
AGENTS.md、CLAUDE.md、または .cursor/rules/*.mdc の内容を、各セクションを手作業でコピーせずにメモリに取り込みます。レベル 2 以上の見出しがメモリになり、箇条書きと段落が代替として使われます。同じファイルを再インポートすると、完全一致する重複項目はスキップされます。
# Preview the parsed sections without writing:
fastrmemory import AGENTS.md --from agents-md --module rules --dry-run
# Import as staging memories for review, or verify them immediately:
fastrmemory import AGENTS.md --from agents-md --module rules
fastrmemory import AGENTS.md --from agents-md --module rules --verified
# JSONL snapshots use the same entry point:
fastrmemory import snapshot.jsonl --from jsonl
4. 認知的な Git blame とメモリを活用したコミット
# Cognitive Git Blame linking lines directly to commit, author, and governing error traps (conditional 2.0x boost):
fastrmemory blame src/auth/jwt.ts:42
# Pre-commit error trap validation & conventional commit synthesis:
fastrmemory commit
5. Git スナップショット、ブランチ、ロールバック、バックグラウンドデーモン(ブランチは 0.3.0)
# Point-in-time memory snapshot (Git for Agent Memory):
fastrmemory snapshot create "pre-refactor-checkpoint"
fastrmemory snapshot list
fastrmemory snapshot rollback "pre-refactor-checkpoint"
# 0.3.0: Portable backup with a sidecar provenance manifest:
fastrmemory backup backups/pre-upgrade.jsonl
fastrmemory backup --verify backups/pre-upgrade.jsonl
fastrmemory backup --restore backups/pre-upgrade.jsonl --dry-run
# Immutable memory branch and one-way merge with a conflict report:
fastrmemory branch create feature/auth
fastrmemory branch list
fastrmemory merge feature/auth
fastrmemory merge feature/auth --force --strategy branch
# Hybrid Background Daemon (Optional HTTP/SSE service for cross-process tools):
fastrmemory daemon start
fastrmemory daemon status
fastrmemory daemon stop
# Auto-wire MCP + lifecycle hooks for Claude Code, Cursor, Gemini CLI, Copilot CLI, and OpenCode:
fastrmemory hook install
# Auto-wire MCP + AGENTS.md + Planetary Skills; setup also wires Antigravity, Claude Desktop, and Windsurf:
fastrmemory setup
# Mine past Git bug fixes directly into staging error traps:
fastrmemory learn -n 30 --days 90
ブランチは不変のスナップショットポインターです。merge は現在のアクティブセットへの一方向のマージです。ブランチにのみ存在するメモリは追加され、ターゲットにのみ存在するメモリは保持され、同一性が同じ変更は競合として報告されます。競合があると、デフォルトでは書き込みがブロックされます。--force を使うと競合しない追加が適用され、--force --strategy branch を使うと、古い行を履歴に残したままターゲットが置き換えられます。ブランチのチェックアウトや、変更可能なブランチの作業ツリーには対応していません。
backup は、移植可能な JSONL スナップショットに加えて、ファイルの SHA-256、コンテンツハッシュ、レコード数、ツールのバージョン、環境、ソースの完全性を記録した <file>.manifest.json を書き出します。--restore はインポート前に両方のハッシュを検証し、--dry-run は書き込みを行わずに件数を報告します。バックアップ対象はメモリ、生イベント、ファイルリンク、競合であり、SQLite/WAL の物理コピーではありません。バックアップとロールバックの全手順については、MIGRATION.md を参照してください。
6. トークン圧縮、データベース診断、ビジョン検索
# Compress markdown docs & LLM prompt context to reduce token usage:
fastrmemory compress docs/architecture.md --dry-run
# Run deep health check across SQLite, FTS5 indices, file links, and task DAGs:
fastrmemory diagnose
# Auto-repair FTS5 indices, orphaned file links, and WAL fragmentation:
fastrmemory heal
# 0.3.0: Report orphaned records, duplicate active memories, and stale rows:
fastrmemory hygiene
fastrmemory hygiene --stale-days 30 --json --fail-on-issues
# Tag a UI screenshot or architecture diagram with OCR & 384-dim vector indexing:
fastrmemory vision tag screenshots/modal-error.png --desc "Modal error 401 alert" --ocr "HTTP 401"
# Semantic search across tagged screenshots and visual diagrams:
fastrmemory vision search "modal error 401"
# Pre-merge CI/CD gate checking PR diffs against active error traps:
fastrmemory guard --strict
# Optional 30 MB static semantic model (never downloaded implicitly):
fastrmemory model status
fastrmemory model install
fastrmemory hygiene は、孤立したファイルリンク、競合行、フィードバック行、正規化されたタイトルまたは完全一致する内容を持つアクティブな重複メモリ、および古くなった未固定のアクティブメモリ(最後に想起または作成されてからのデフォルト期間は 90 日)を報告します。npm run check:hygiene は check:ci 内の決定論的なフィクスチャに対して同じ検査を実行し、プロジェクトのデータベースは変更しません。検出結果がある場合にスクリプトをゼロ以外の終了コードで終了させるには、--fail-on-issues を使います。
fastrmemory model install は minishlab/potion-base-8M(256 次元、30,236,760 バイト)を取得し、固定された SHA-256 ハッシュに照らして両方のファイルを検証し、~/.fastr/models/ に保存します。このティアは BM25 候補に対する、上限付きの再ランキング機能です。120 ケースからなる LongMemEval のスライスで 1 ケースを修正し、1 ケースで失敗を引き起こすため、精度向上ではなく、性能を悪化させない機能として説明されています。アセットがインストールされ、バックフィルによってベクトルが生成されるまでは、デフォルトの想起は BM25 のみです。
🔌 ワンクリックエージェント MCP 設定
fastr mcp init は、MCP のみを設定する単一コマンドです。デフォルトでは --source registry を使用し、プラットフォームに適したポータブルなランナー(npx、pnpm dlx、yarn dlx、または bunx。ネイティブ Windows では cmd /c ...)を書き込みます。--source local を指定すると、現在アクティブな CLI のパスと絶対パスの --project を書き込みます。グローバルにインストールされた CLI に便利ですが、設定がマシン固有になります。関連のない設定キーは保持され、何度実行しても同じ状態になります。.fastr/、AGENTS.md、MCP 設定、スキルを含む完全なインストーラーは引き続き fastr setup です。fastr hook install は、Claude Code、Cursor、Gemini CLI、Copilot CLI、OpenCode 用のライフサイクルフックと MCP 設定を追加します。
fastr hook install は、Claude Code、Cursor、Gemini CLI、GitHub Copilot CLI、OpenCode 用のライフサイクルフックをマージし、OpenCode のコンテキスト/圧縮プラグインを書き込みます。fastr hook uninstall は、インストール時に書き込まれたもの、つまり fastrmemory MCP エントリー、フックコマンド、管理対象の OpenCode プラグイン、AGENTS.md の規律ブロックのみを削除し、同じファイルにあるユーザーのエントリーはすべてそのまま残します。どちらのコマンドも何度実行しても同じ状態になり、--client <ids|all>、--project <dir>、--no-agents-md、--json を受け付けます。詳細はdocs/CLIENT_SUPPORT.mdを参照してください。Gemini CLI ではフックの標準出力に厳密な JSON が必要です。Copilot には preToolUse 用のモデル向けアドバイザリーフィールドがないため、アクティブなトラップに対して permissionDecision: "ask" を返します。
| クライアント | プロジェクト設定 | ユーザー設定 | JSON キー |
|---|---|---|---|
| Claude Code | .mcp.json | ~/.claude.json | mcpServers |
| Cursor | .cursor/mcp.json | ~/.cursor/mcp.json | mcpServers |
| VS Code | .vscode/mcp.json | VS Code User/mcp.json | servers |
| OpenCode | opencode.json | プロジェクトのみ | mcp.servers |
| Gemini CLI | .gemini/settings.json | ~/.gemini/settings.json | mcpServers |
| GitHub Copilot CLI | .github/mcp.json | プロジェクトのみ | mcpServers |
| Windsurf | ユーザーのみ | ~/.codeium/windsurf/mcp_config.json | mcpServers |
| Antigravity | ユーザーのみ | ~/.gemini/antigravity/mcp_config.json | mcpServers |
| Claude Desktop | ユーザーのみ | プラットフォーム固有 | mcpServers |
| Codex | ユーザーのみ | ~/.codex/config.toml | 出力される TOML |
fastr mcp init --client cursor が生成する POSIX プロジェクト設定の例(Windows では cmd /c npx ... を使用します):
{
"mcpServers": {
"fastrmemory": {
"command": "npx",
"args": ["-y", "fastrmemory@latest", "mcp"]
}
}
}
VS Code では mcpServers の代わりに servers を使用します。OpenCode では、コマンド配列と "type": "local" を含む mcp.servers を使用します。既存の opencode.json(c) 設定は保持されますが、JSONC 設定は書き換えず、手動設定が必要であることを報告します。ユーザーが所有する TOML ファイルを安全に書き換えるには専用のパーサーが必要なため、Codex は常に [mcp_servers.fastrmemory] TOML ブロックとして出力されます。
ユーザースコープのクライアントでは、生成されるエントリーに --project /absolute/path/to/repo が含まれます。これにより、クライアントの起動ディレクトリによって誤ったデータベースが選択されるのを防ぎます。fastr setup は絶対パスの node も書き込みます。クライアントがパッケージランナーのシムを起動できない場合は、この方法を推奨します。インストール済み CLI の場合、--source local は mcp init における同等の設定で、アクティブな CLI のパスと絶対パスの --project を書き込みます。設定をコミットまたは共有する場合は、デフォルトの --source registry を使用してください。--source local は公開版 0.5.0 に含まれています。0.4.0 では、インストール済み CLI の設定に fastr setup を使用してください。ネイティブ Windows では、fastr mcp init が自動的に "/c" とランナーを含む "command": "cmd" を出力するため、手動で npx.cmd を修正する必要はありません。
--client all --scope project は、表にあるプロジェクトスコープの 6 つのクライアントを対象にします。--client all --scope user は、ユーザースコープの 8 つのクライアントを対象にします。OpenCode と Copilot CLI はプロジェクトのみを対象とし、Codex は手動挿入用の TOML ブロックを出力します。ユーザースコープのエントリーでは 1 つの --project データベースが固定されるため、開発者ごとに異なるチェックアウトを開く可能性がある場合は、プロジェクトスコープを使用してください。
🛠️ MCP サーバー:ツールとリソース
公式の v2 @modelcontextprotocol/server SDK を使用して構築されています。以下のツール一覧は 0.5.0 の内容です(ツールの構成は 0.4.0 から変更ありません)。v0.2.1 リリースには 4 つのリソースがあります。
43 個の MCP ツール
デフォルトの コアプロファイル では、日常的なループ(fastr_recall、fastr_remember、fastr_handoff、fastr_trap_recall、fastr_trap_log、fastr_status、fastr_get、fastr_replay、fastr_compress、fastr_diagnose)に加え、検出用の fastr_tools とディスパッチ用の fastr_call の計 12 個のツールを公開します。tools/list のペイロードは 8,715 バイト(約 2,179 トークン)です。フルプロファイル では全 43 個のツールを公開します。fastrmemory mcp --profile full または FASTR_MCP_PROFILE=full で起動してください。フルプロファイルのすべてのツールは、コアプロファイルから fastr_call を通じて引き続き利用できます。リソースとプロンプトはどちらのプロファイルでも同じです。ホストがリポジトリ外でサーバーを起動する場合は、メモリが意図した .fastr/fastr.db に書き込まれるよう、--project /absolute/path/to/repo を渡してください。
認知検索とメモリのコア機能
fastr_recall:段階的な L0~L3 トークン予算管理と、エアギャップ環境向けのオフラインベクター検索フォールバックを備えた、3 ストリームのハイブリッド検索(BM25 + Vector + Spreading Activation Graph)です。fastr_get:メモリ ID を指定して、ステータス、タイムスタンプ、報酬スコア、全コンテンツを含むメモリの詳細を取得します。fastr_list:モジュール、種類、ステータス、上限件数、オフセットでフィルタリングして、メモリを一覧表示します。fastr_drill:source_event_idsを解決し、raw_eventsから省略されていないスタックトレース、差分、ツール出力を取得します。fastr_file_history:特定のファイルパスに対する有効なルール、[TRAP]警告、過去の置き換え履歴を返します。fastr_remember:新しいルール、決定事項、トラップを記録します。NER エンティティを自動抽出し、シークレットを除去して、Markdown ミラーを再生成します。scope: 'project' | 'global'をサポートします。fastr_pin:重要なルールをピン留めし、時間経過による減衰なしに L0 の構成で永続的に保持し、優先します。fastr_forget:監査ログを記録しながら、古くなったメモリをトゥームストーン化して無効化します。fastr_supersede:古くなったルールを終了し(valid_to = now)、理由を記録して、検証済みの置き換えルールを追加します。fastr_feedback:1 つのメモリ ID のreward_scoreと信頼度ティアを更新します(良い結果は +0.2、悪い結果は -0.5)。悪い結果が 3 回連続すると休眠状態になります。無関係なメモリにペナルティを与えることはありません。fastr_handoff:エージェント間で共有するセッションの節目を保存または取得し、ステージングメモリを検証済みに昇格させます。fastr_status:アクティブ/ステージングの件数、スプールの健全性、埋め込みのカバー率(%)を返します。fastr_graph_query:1 ホップおよび 2 ホップの構造的なファイルリンク依存関係、エンティティリンク、関連するエラートラップを探索します。fastr_timeline:メモリイベント、新たに検証されたルール、エラートラップ、過去の置き換え履歴を時系列で記録した監査証跡です。
バージョン管理とエラートラップ
fastr_snapshot:ブランチ追跡と実験の安全性確保のため、名前付きの時点メモリスナップショットを作成します。fastr_rollback:Git のように、以前の任意のメモリスナップショットへ即座にロールバックします。fastr_trap_log:エラートラップとバグの解決策を 1 行で素早く記録し、条件に応じて検索の優先度を 2.0 倍にします。fastr_trap_recall:編集前に、特定の対象ファイルを保護する優先度の高いエラートラップを対象を絞って検索します。
先回りした矛盾の検出と解決
fastr_conflicts:Jaccard トークン重複率(最小 0.35)と、50 語の範囲で反対の極性を分析することで、矛盾を先回りして検出します。fastr_resolve:優先するルールを残し、もう一方を置き換えるか弱めることで、矛盾を解決します。
カーネマンの計画錯誤とベースレート補正
fastr_predict:労力、時間、リスクの予測を記録し、実測結果を使って予測を確定します。fastr_predict_baserate:過去の参照クラス統計(平均値、中央値 p50 比、MAE)を計算し、エージェントの見積もりの偏りを補正します。
マルチエージェントのアクション DAG とフロンティア
fastr_action_create:前提条件(requires)と競合(conflicts_with)の制約を指定して、構造化された作業項目アクションを作成します。fastr_action_update:タスクのライフサイクル(pending、active、done、blocked)、割り当て、メモリの結晶化を更新します。fastr_frontier:依存関係が満たされ、ブロックされていない、実行可能なフロンティアアクションを計算します。fastr_next:自律型ワーカーエージェント向けに、最も優先度の高いフロンティアアクションを原子的に取得して返します。
制限付き作業メモリと Obsidian Vault へのエクスポート
fastr_slot_get:制限付き作業メモリのスロット(例:current_goal、user_preferences、active_hypothesis)を取得します。fastr_slot_set:文字数の上限を厳格に適用して、コンテキストの肥大化を防ぎながら作業メモリのスロットを更新します。fastr_slot_list:すべての作業メモリスロットと、現在使用中の文字数を一覧表示します。fastr_obsidian_export:すべてのメモリ、エンティティ、関係性を、YAML フロントマター、[[wikilinks]]、MOC.mdを含む Obsidian 互換の Markdown Vault にエクスポートします。
マルチリポジトリのフェデレーションとコンテキストの組み立て
fastr_federate:SQLite ネイティブのATTACH DATABASE(~/.fastr/global.db)を使用して、リポジトリをまたいで組織全体で共有するルールとエラートラップを管理します。fastr_assemble:トークン予算に合わせて、高密度の構造化プロンプトコンテキスト(<fastr_context>)を動的にフォーマットしてパッキングします。fastr_risk_predict:対象コードベースのファイルについて、過去の失敗確率と現在有効なトラップの危険度スコアを計算します。fastr_verify_provenance:記録されたエージェントの帰属情報に対する SHA-256 来歴ハッシュを暗号学的に検証します。
トークン圧縮と自律型ドクター
fastr_compress:.original.mdバックアップを作成し、見出し、URL、コードブロックを厳密に保持しながら、Markdown ファイルまたはプロンプトコンテキストを圧縮します。fastr_diagnose:SQLite の B-Tree 整合性、FTS5 BM25 検索インデックス、リンク先ファイルのないファイルリンク、タスク DAG の詳細なヘルス監査を実行します。fastr_heal:データベースインデックス、参照先のないエッジ、WAL ページの再利用を自動的に修復します。
メモリの再生と差分
fastr_replay:指定したタイムスタンプ時点のメモリ状態を再構築し、監査または復旧のために有効なスナップショットを返します。fastr_diff:2 つのスナップショットを比較し、追加、置き換え、削除されたメモリを報告します。
マルチモーダル視覚メモリ
fastr_vision_tag:スクリーンショット、UI 図、ワイヤーフレームに、OCR と意味的な説明、および 384 次元の埋め込みを用いてタグを付けます。fastr_vision_search:マルチモーダルコーディングエージェント向けに、保存された視覚アセットを対象としたベクトル検索とキーワード検索を組み合わせて実行します。
ツールの検出とディスパッチ
fastr_tools:サーバーが実行できるすべてのツールを、JSON 入力スキーマとともに一覧表示します。名前または説明で絞り込めます。コアプロファイルの一部です。fastr_call:引数を対象ツールのスキーマに照らして検証したうえで、fastr_toolsにある任意のツールを名前で実行します。コアプロファイルの一部です。
2 つの MCP プロンプトテンプレート
pre-edit-check:ファイルパスを受け取り、編集前にエージェントがトラップと関連ルールを確認するよう指示します。session-wrap-up:セッション終了時のチェックリストです。トラップの記録、古いルールの置き換え、メモリの評価、引き継ぎ情報の保存を行います。
5 つの MCP リソース(0.3.0。v0.2.1 では 4 つ)
fastr://project/overview:有効な件数と保存場所を含む L0 プロジェクト概要です。fastr://project/traps:バグの即時回避に役立つ、すべての有効な[TRAP]警告です。fastr://session/handoff:最新のエージェント間引き継ぎマイルストーンです。fastr://memory/{id}(リソーステンプレート):リンクされたファイルと有効期間を含む、単一メモリの完全な JSON です。fastr://memory/{id}/envelope(リソーステンプレート):単一メモリのメタデータ、暗号学的な来歴情報、ファイルとグラフのリンク、未解決または解決済みの競合状態です。
📄 Git 差分を確認できる2ゾーンミラー
ローカルの SQLite データベースへの書き込みはすべて、.fastr/pages/<module>.md 内の人間が読みやすい Markdown ファイルに自動的に同期されます。これにより、開発者は GitHub のプルリクエストで AI のメモリを直接確認できます。
# Module: auth
> Auto-generated by FastrMemory. Active rules are at the top; superseded history is preserved below for Git diffs.
---
## Compiled Truth (Active Rules & Traps)
### [mem_009e4a7d] [TRAP] Never Use Date.now() Milliseconds for JWT Expiration
- **Kind**: `error_trap`
- **Status**: `verified` (Reward Score: 1)
- **Linked Files**: `src/auth/jwt.ts`
- **Active Since**: `2026-10-18T21:46:20Z`
JWT exp claims expect integer seconds. Always use Math.floor(Date.now() / 1000).
---
## Append-Only Timeline (History & Superseded)
### [EXPIRED 2026-10-18T20:00:00Z -> 2026-10-18T21:46:20Z] [mem_abc123] Token Signing
- **Superseded By**: `[mem_009e4a7d]`
- **Reason**: Standardized on integer seconds
- **Historical Status**: `superseded`
> Old implementation used milliseconds which failed expiration validation.
🧠 惑星規模のエージェントスキルスイート
FastrMemory には、各メモリツールを「いつ」使うかをエージェントに伝える10個のエージェントスキルが含まれています(skills/ にあり、.cursor/skills/ にもミラーされています)。Claude Code プラグイン(.claude-plugin/)としてインストールするか、fastrmemory setup でコピーしてください。
- fastr-memory:タスクの開始時とファイルの編集前に、
fastr_trap_recallを実行してからfastr_recall/fastr_assembleを実行します。 - fastr-trap-log:失敗の診断が完了した時点で、
fastr_trap_logを使って記録します。 - fastr-session-commit:タスクが完了し、テストに合格したら、メモリを置き換えて評価し、
verifyStagingを指定してfastr_handoffを実行します。 - fastr-curate:長期的に役立つ教訓を保存したり、矛盾を修正したりするときに、重複を排除し、記憶し、置き換え、競合を解決し、スナップショットやロールバックを行います。
- fastr-setup:FastrMemory が Claude Code に連携されていない場合に、
fastrmemory hook install、claude mcp addを実行し、fastrmemory statusで確認します。 - fastr-plan-estimate:作業量やリスクを見積もるときに、基準率、ファイルのリスク、完了時の予測を考慮します。
- fastr-dag:作業に依存関係のあるステップが含まれる場合や、複数のエージェントがバックログを共有する場合に使います。
- fastr-doctor:メモリを想起できない場合や、データベースの状態に問題があるように見える場合に、診断してから修復します。
- fastr-compress:ドキュメントやコンテキストブロックがトークン予算を超えた場合に使います。
- fastr-vision:スクリーンショットや図を記憶したり検索したりする場合に使います。
npm run check:skills を実行して、スキル内のすべてのツール呼び出しが src/mcp/server.ts に照らして妥当か確認します。
CLI を更新した後は、fastr setup を再実行してコピー済みのスキルを更新してください。インストーラーは同名のスキルファイルを上書きし、廃止されたスキルを削除しますが、ユーザーが所有する無関係なディレクトリはそのまま残します。fastr hook install はスキルをコピーしません。セットアップ後にクライアントを再起動してください。代わりに Claude Code プラグインをインストールする場合は、2つ目のスキルセットをコピーして管理するのではなく、プラグインを更新してください。
🏗️ アーキテクチャ
flowchart TD
subgraph Ingestion["1. Lossless Ingestion & Spool"]
Agent["AI Coding Agent\n(Claude Code, Cursor, Antigravity)"] --> Scrubber["Secret Scrubber\n(API Keys, Bearer, PEM)"]
Scrubber --> Spool{"SQLite Busy?"}
Spool -- Yes --> SpoolFile[".fastr/spool/pending.jsonl\n(async fallback)"]
Spool -- No --> DB
end
subgraph Storage["2. Bi-Temporal Storage & Git Mirror"]
DB[("Node 22 node:sqlite (WAL)\nraw_events | memories\nfile_links | handoffs")]
DB --> Mirror["Markdown Mirror Engine"]
Mirror --> Pages[".fastr/pages/<module>.md\nTop: ## Compiled Truth\nBottom: ## Append-Only Timeline"]
end
subgraph Search["3. Triple-Stream Hybrid Retrieval"]
Query["Recall / File Query"] --> FTS["Stream A: FTS5 BM25\n(Sub-millisecond)"]
Query --> Vec["Stream B: Xenova Vectors\n(all-MiniLM-L6-v2)"]
Query --> Graph["Stream C: file_links Graph\n(1-2 Hop Structural Match)"]
FTS & Vec & Graph --> RRF["RRF Fusion (k=20)\n+ Conditional 2.0x Error Trap Multiplier\n+ 1.25x Verified Multiplier"]
RRF --> Budget["Progressive Token Packer\nL0 (150t) | L1 (500t) | L2 (1500t) | L3 (4000t)"]
end
subgraph Protocol["4. Official MCP Protocol"]
Budget --> MCPServer["Official MCP v2 Server\n(@modelcontextprotocol/server)"]
MCPServer --> Tools["43 tools • 2 prompts • 5 resources"]
Tools --> Agent
end
🧪 テストと検証
包括的なユニットテストスイートを実行します。
npm test
現在の main では、61 個のテストファイルで 388 件のテストがすべて成功します。公開済みの 0.6.0 も同じく 388 / 61、0.5.0 は 297 件のテスト / 53 ファイル、過去の 0.4.0 は 293 件のテスト / 53 ファイル、0.3.1 は 282 / 52、v0.2.1 は 235 / 43 です。テスト範囲には、データベーススキーマ、WAL ロック、オフライン時のスプーリング、双時間的な置き換え、シークレットのスクラブ、2 ゾーンレンダリング、自動ベンチマーク、スナップショット/ロールバック、ブランチのマージ競合レポート、リプレイ/差分、メモリーエンベロープ、信頼度ティアと 3-bad 休眠、メモリー衛生チェック、Memory CI、競合を考慮した想起、ポータブルなバックアップマニフェストと検証済みの復元、ローカルルールのインポート、OpenCode V2、Gemini CLI、Copilot CLI の連携、git-learner、cognitive blame、コミットの合成、ハイブリッドバックグラウンドデーモン、トークン圧縮、自己修復 doctor、マルチモーダルビジョン、Web ダッシュボードサーバー、マージ前のトラップガーディアン、UI のループバックセキュリティ境界、アトミックインストーラーの設定安全性、ローカルソースのエントリーを含む shadcn スタイルの mcp init クライアント設定のマージが含まれます。
CI パフォーマンスゲート: check:query-plans、check:recall-latency、check:install-size は check:ci 内で実行されます。CI では標準の Ubuntu/Node 24 ジョブでこれらを実行します。他のマトリックスジョブでは、実行時間がランナーに左右されるため FASTR_PERF_GATE=0 を設定しますが、すべてのマトリックスエントリーで機能テストは引き続き実行されます。
クリーンマシンでのインストール実績: npm run smoke:npx は、空のディレクトリ(チェックアウトなし、グローバルインストールなし、node_modules なし)から npx で公開済みパッケージをダウンロードし、続けて --version と status を実行します。status は実際の node:sqlite データベースを開くため、SQLite が動作するパスなしで配布されたパッケージは、エディター内ではなくここで失敗します。このスクリプトはレジストリの 404 に対して最大 10 分間リトライし、.github/workflows/npx-smoke.yml は Node 22.x および 24.x で Ubuntu、Windows、Intel macOS 上のテストを実行します。b9645ef の CI 実行 40261934471 では、6 つすべてのジョブが成功し、コールド状態での npx インストールで、各ジョブが "version":"0.6.0"、"statusBooted":true、"attempts":1、"ok":true を報告しました。同じスクリプトは、Windows/Node 24.15.0 のローカル環境でも成功します。
クラッシュ安全性の実績: npm run test:crash は、10 回の実行でランダムなタイミングに書き込みプロセスを強制終了し、その後 WAL データベースを再度開きます。コミット済みのレポート bench/results/crash-test.json には、10,718 件の確認済み書き込み、10,727 件のコミット済み行、消失 0 件、重複する ID/タイトル 0 件、および PRAGMA integrity_check = ok が記録されています。手法については docs/audit/2026-10-21-crash-test.md をご覧ください。npm run check:crash は check:ci 中にレポートを検証します。これはプロセスクラッシュのテスト(taskkill /F)であり、停電のテストではありません。SQLite は WAL モードで synchronous=NORMAL を使用して実行されます。
検索ベンチマーク(合成ケース240件)
2026-10-20にベンチマークコミット562f461でbench/results/minilm.jsonから生成されました。コーパスは決定論的で、メモリ120件とクエリ240件を含み、**192件の学習用/48件のホールドアウト(20%)**に分割されています。ホールドアウトはチューニング前に固定され、別途報告されています。次のコマンドで再現できます。
npx tsx scripts/eval-bench.ts --split all --embeddings minilm --out bench/results/minilm.json
npx tsx scripts/eval-bench.ts --split all --embeddings hash --out bench/results/hash.json
| 構成 | 分割 | ケース数 | Hit@1 | Hit@3 | Hit@5 | MRR | nDCG@10 | コンテキストトークン数 | p50 |
|---|---|---|---|---|---|---|---|---|---|
| FastrMemory + MiniLM | 学習用 | 192 | 96.4% | 99.0% | 100% | 0.976 | 0.982 | 208 | 3.30 ms |
| FastrMemory + MiniLM | ホールドアウト | 48 | 95.8% | 97.9% | 100% | 0.969 | 0.977 | 209 | 3.41 ms |
| FastrMemory BM25のみ | 学習用 | 192 | 79.7% | 90.6% | 100% | 0.868 | 0.900 | 203 | 0.48 ms |
| FastrMemory BM25のみ | ホールドアウト | 48 | 77.1% | 77.1% | 93.8% | 0.804 | 0.835 | 204 | 0.60 ms |
| 静的ダンプ - シミュレーションによるベースライン | 学習用 | 192 | 2.1% | 6.3% | 8.3% | 0.055 | 0.081 | 3652 | 0.00 ms |
| 静的ダンプ - シミュレーションによるベースライン | ホールドアウト | 48 | 0.0% | 0.0% | 8.3% | 0.025 | 0.056 | 3652 | 0.00 ms |
注意事項: これは決定論的な合成コーパスであり、SWE-benchやLongMemEvalではありません。静的ダンプの行はこのリポジトリで実装されたシミュレーションであり、外部プロジェクトではありません。検索のみを対象とする別個の公開外部ベースラインについては、docs/EXTERNAL_BASELINE.mdに記載されています。この合成データの表では、それらを測定していません。コンテキストトークン数は、250トークンの上限内に収まるコンパクトなプロンプトテキストの値です。ランキング結果のオブジェクトには、メモリの内容全体が保持されます。手法、カテゴリ別の内訳、アブレーション、信頼区間については、BENCHMARKS.mdとdocs/benchmark-report.mdを参照してください。
🖥️ ローカル Web ダッシュボード v2 と 3D Brain Observatory
バンドルされた UI アセットから、アクティブなルール、エラートラップ、タイムライン監査、インタラクティブな 3D メモリー星座をブラウザーで直接可視化できます(外部サービスやデータベースは不要です)。
fastrmemory ui
- ライブ URL:
http://localhost:4242 - ダッシュボード v2 のアーキテクチャ:shadcn/ui、Tailwind CSS v4、TanStack Query で構築され、プロセス間の書き込みに対応する SSE 更新とバージョンポーリングを備えています。
- 目的別に分かれた 12 のルートワークスペース(0.3.0 で
/replayを追加):/:リアルタイムのシステム状態、アクティブなトラップのアラート、最近のメモリーフィード、クイックアクションのショートカット。/memories:スライドアウト式のメモリー詳細シート、ステータス切り替え、ピン留め、ワンクリックでの削除機能を使って、メモリーを検索、フィルタリング、確認できます。/traps:適用されるファイル、条件付きブースト条件、検証済みの緩和策を表示する専用のエラートラップ隔離画面。/conflicts:サイドバイサイドのワード差分とワンクリック解決(Keep A、Keep B、Keep Both)で、双時制の矛盾を事前に検出します。/actions:タスクの依存関係、ワーカーの割り当て、光る未ブロックのフロンティアオーラを追跡する、リアルタイムで操作可能なアクション DAG キャンバス。/graph:1 ホップ/2 ホップの確認とメモリーの詳細表示に対応した、インタラクティブなファイルおよびエンティティの関係グラフ。/observatory:滑らかな lerp カメラ、星屑のような星々、輝くアンバー色のトラップハロー、メモリー確認モーダルを備えた、高性能な Three.js 3D 星座ギャラクシー。/treemap:メモリーの強度帯とモジュール密度を可視化する、インタラクティブな高 DPI のスクワリファイドツリーマップ。/search:レイテンシーのウォーターフォール内訳(BM25 対 Vector 対 Graph)を使って、トリプルストリーム RRF 検索を評価する検索ラボ。/replay(0.3.0):2 つのタイムスタンプにおけるアクティブセットを再構成し、スナップショットのメトリクスと追加/置換/変更/競合を確認できるリプレイと差分ワークスペース。/health:ワンクリックの整合性診断、FTS5 の再構築、バキュームに対応した、自律型 SQLite 自己修復ドクター。/settings:ライブデータベースパス、プロジェクト設定、エクスポート操作。
- メモリー CI:PR 差分ワークフローとコメントのライフサイクルについては、docs/MEMORY_CI.md に記載されています。
- デュアルテーマ対応:ライト、ダーク、システム設定に従うモード。
- デフォルトでデーモン不要:ダッシュボードは、プロセス内の Node.js HTTP サーバーと組み込みの SQLite WAL モードで配信されます。
fastrmemory daemon startは任意のローカル REST/SSE サービスです。
🧩 VS Code と Cursor のネイティブ拡張機能
VS Code および Cursor 向けの FastrMemory Guardian ネイティブ拡張機能をパッケージ化してインストールします。
# Compile and package extension
npm run build:extension
npx @vscode/vsce package --no-dependencies
# Install into Cursor or VS Code
cursor --install-extension fastrmemory-vscode-0.1.0.vsix
- ⚡ ステータスバーのピル:ステータスバーにアクティブなトラップ数を表示します(
⚡ 3 Traps Activeまたは⚡ 1 Trap on File)。クリックすると、すべてのアクティブなトラップを一覧表示するインタラクティブな QuickPick が開きます。 - アンバー色の下線:トラップ対象のファイルにアンバー色の下線を付け、ホバー時に緩和策の詳細な手順と条件付きの 2.0x ブースト条件を表示します。
- 問題タブとの連携:アクティブなエラートラップを、ブロックしない警告診断として IDE の問題パネルに表示します。
- デーモン不要:
.fastr/fastr.dbからnode:sqlite経由で直接読み込みます。
📄 ライセンス
Apache License 2.0。Fastrsoft が開発しました。個人利用および商用利用は無料です。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。