ai-memory
公式あらゆるAIアシスタントのための永続メモリ。想起までトークンコストゼロ。ローカルSQLiteに記憶を保存し、6要素スコアリングでランク付け、JSONより79%小さい結果を返却。Claude、ChatGPT、Grok、Cursor、Windsurf、および任意のMCPクライアントで動作。
Ai Memory MCPで何ができますか?
- 事実、好み、修正を保存 — アシスタントに
memory_store経由で任意の情報を記憶するよう依頼し、ローカルの SQLite または PostgreSQL データベースに永続化します。 - 必要なときに適切な記憶を呼び出す —
memory_recallまたは全文検索のmemory_searchを使用して、関連性でランク付けされたコンテキストを考慮した結果を取得します。 - 保存された記憶の一覧表示、取得、管理 —
memory_listで保存済みエントリをすべて参照し、memory_getで ID を指定して特定のエントリを取得し、古くなった項目をアーカイブします。 - マルチエージェントワークフローの調整 — 型付きアクション DAG を作成し、TTL 制限付きリースを取得し、
memory_action_*、memory_lease_*、memory_signal_*ツールを使用して署名付きシグナルを交換します。 - 記憶の系統と出所を追跡 —
memory_lineageを使用して任意の記憶の派生 DAG をたどり、どの事実がどのソースから派生したかを確認します。
ドキュメント
ai-memory™
ユニバーサルAIメモリ
ai-memoryは、AIアシスタント向けの永続的なメモリシステムです。 MCPをサポートするあらゆるAI(Claude、ChatGPT、Grok、Llamaなど)で動作します。AIが学習した内容をローカルのSQLiteデータベースに保存し、呼び出し時に関連性に基づいてメモリをランク付けし、重要な知識を自動的に永続ストレージに昇格させます。一度インストールすれば、使用するすべてのAIアシスタントが、あなたのアーキテクチャ、好み、修正内容を永久に記憶します。
インストールパスの選択
| 対象 | デプロイ環境 | 開始ガイド |
|---|---|---|
| 単独の開発者でai-memoryを試用 | ノートPC上の単一AIクライアント | docs/install-quickstart.md — 5分の超簡単インストール + LLMバックエンドを1ブロックで接続 |
| エンジニア/アーキテクト | 単一ノードの本番環境、または1ノード上の複数エージェント | docs/INSTALL.md → docs/production-deployment.md |
| エンジニア/アーキテクト | マルチサーバー/マルチラック/マルチDC/スウォーム/ハイブ/フェデレーション | docs/enterprise-deployment.md — 8つのトポロジー、シングルトン→マルチリージョン |
| エンジニア/アーキテクト | PostgreSQL + Apache AGEストレージ(マルチライター、1000万以上のメモリ、KG重視) | docs/postgres-age-guide.md — 第一級のpostgresオペレーターガイド |
| 導入を評価する意思決定者 | — | docs/audience/decision-maker.html |
LLMバックエンド(xAI Grok、OpenAI、Anthropic、Gemini、DeepSeek、Kimi、Qwen、Mistral、Groq、Together、Cerebras、OpenRouter、Fireworks、LMStudio、vLLM、llama.cppサーバー、またはローカルOllama)の設定は、
docs/integrations/llm-backends.mdを参照してください。MCPのenv-blockレシピはインストールパスに関わらず同じです。
v0.9.0 — 現在のリリース。 セキュリティ強化とコードレビューのリリース:5レーンの敵対的レビュー(#1885–#1935)による49件の修正と、少数の追加機能。主な変更点は、安全なデフォルトへの切り替えです:HTTP直接書き込みではエージェント証明がデフォルトで必須(#1751、#1985によりスコープ限定)— 署名なしのHTTP POST /api/v1/memories(+/bulk)は、オペレーターが明示的なオプトアウト AI_MEMORY_REQUIRE_AGENT_ATTESTATION=0 を設定しない限り、attest_level="claimed" に格納されずに拒否(403 ATTESTATION_FAILED)されます。MCP memory_store とCLI store のサーフェスはオペレーターがアクターとなるパスであり、デフォルトで許可的です(署名なしの書き込みは claimed に格納されます)。=1 はすべてのサーフェスで厳格を強制します。(v0.9.0 GAではこれを全サーフェス必須として出荷しましたが、MCPホストでは満たせなかったため、現在のリリースでサーフェススコープに修正されました。)これに加えて、必須フック存在の強制ゲートがMCP書き込みパス(#1885)とHTTP書き込みパス(#1924)の両方で発動するようになり、設定された必須フックが一方のサーフェスでスキップされる可能性があったサイレントバイパスのギャップを解消しました。この強化パスでは、bulk_create 行単位の証明ゲート(#1919)の閉鎖、受信フェデレーションPENDING承認の登録承認者ゲート経由ルーティング(#1920)、team/unit/org の可視性スコープを名前空間階層全体で過度に広がらないように厳格化(#1921)、skill_register の folder_path インポートを設定ルート下にシンボリックリンクジェイルで制限(#1923)も行われています。新しい非argv認証チャネル — AI_MEMORY_STORE_URL / AI_MEMORY_STORE_URL_FILE(0600 ファイル)— により、postgres/storeのパスワードが誰でも読み取り可能な /proc/<pid>/cmdline や ps に露出するのを防ぎます(#1927)。追加機能:エージェントが作成するスキルメモリ(parameters_schema + invocation_record、B7-SKILL、#1865)、recall_observations シャドウフィードバックループ(#1706)、メモリ導出リネージDAG(memory_lineage、#1859)、オプトインのベクトル検索最小スライス(#1005)。サーフェス:スキーマ v78、--profile full で 101 のMCPツール(100の呼び出し可能 + 常時オンの memory_capabilities ブートストラップ)/ --profile core で 7、92 のHTTPルート登録(78の一意なURLパス)、--features sal/sal-postgres 下に 89 のCLIサブコマンド(デフォルトビルドで 87)、9 の型付き MemoryLink リレーション、28フィールドの Memory。デスクトップ、サーバー、オンデバイス(iOS + Android)で、同一APIの背後にある2つの本番バックエンド — 組み込みSQLiteとPostgreSQL + Apache AGE — で動作します。証明とフック強制の切り替え(安全なデフォルトへの破壊的変更)を除き、すべてv0.8.1への追加です。アップグレード前にこれらを確認してください。完全な変更履歴: CHANGELOG.md §"[0.9.0] — 2026-07-08"。
v0.8.0 (distributed-coordination) — 前回のリリース。 このリリースでは、メモリ基盤が調整基盤になります。#1709からの分散調整機構が追加されました:型付きアクションDAGと実際のステートマシン(memory_action_*)、TTL制限付き単一ホルダーリース(memory_lease_*)、Ed25519署名付きシグナル(memory_signal_*)、Ed25519証明付きチェックポイント(memory_checkpoint_*)、凍結された再生可能なルーチン(memory_routine_*)— これにより、異種混合のエージェント群が、互いを信頼することなく、順番に作業し、作業を引き継ぎ、誰が何を言ったかを証明できます。その上に型付き認知(Goal/Plan/Step メモリ種別、lifecycle_state マシン、decomposes_into / depends_on / advances リンクリレーション)を重ね、フェデレーションをデフォルトで安全に強化(ピア登録をデフォルトでON #1789、遷移ごとの署名 #1718、書き込みごとのコンテンツ証明 #1464、遷移再生ナンス #1805、アウトバウンドピア証明ピンニング #1678)、実際にブロックするガバナンスを提供します — Claude Code PreToolUseフックは type:command ラッパーに作り直され、基盤の Refuse がツールを真に拒否します(#1811)。v0.8.0リリース時のサーフェス:スキーマ v70、--profile full で 100 のMCPツール(99の呼び出し可能 + 常時オンの memory_capabilities ブートストラップ)/ --profile core で 7、91 のHTTPルート登録(78の一意なURLパス)、83/85 のCLIサブコマンド、9 の型付き MemoryLink リレーション、27フィールドの Memory。デスクトップ、サーバー、オンデバイス(iOS + Android)で、同一APIの背後にある2つの本番バックエンド — 組み込みSQLiteとPostgreSQL + Apache AGE — で動作します。すべてv0.7.0への追加です。アップグレード前に安全なデフォルトへの切り替えを確認してください。完全なリリースノート: docs/v0.8.0/release-notes.md。
v0.7.0 (attested-cortex) — 以前のリリース。 cortex-fluentの可読性向上作業と、ROADMAP §7.3の完全なv0.7信頼 + A2Aスコープを統合し、さらに (オペレーター指示2026-05-09に基づき) 当初v0.7.1として予定されていたpostgres+AGEの第一級サポート作業、さらに グランドスラム後の出荷準備対応 (Batman Forms 1-6 + 7th-form Option-B基盤 + QW-1/2/3 + 調整セキュリティスイープ) を加えました。基盤はより明瞭に (capabilities v3、名前付きローダーツール、圧縮スキーマ、Batman MemoryKind 語彙、persona/atomisation/multistep-ingestプリミティブ) なり、かつ暗号的に信頼できる (Ed25519証明、サイドチェーン転写、プログラム可能な25イベントフックパイプライン、強制名前空間継承、V-4クロス行署名イベントハッシュチェーン) ものになります。v0.7.0はまた、postgres + Apache AGEを第一級ストレージバックエンドとして 同梱します — ライブデーモン用のai-memory serve --store-url postgres://…、両バックエンド間でのスキーマ同等性 (v0.7.0リリース時点で、sqlite + postgresは論理スキーマv57に収束。ここでCURRENT_SCHEMA_VERSIONは57でした。v0.8.0リリース基盤ではこの足並みをスキーマ70に進め、追加のv58–v70調整および可視性テーブルを両バックエンドに実装 — v58–v70ラダーについてはCLAUDE.md §Databaseを参照) (正規アンカー: sqlite用src/storage/migrations.rs およびpostgres用src/store/postgres.rs); ディスク上のマイグレーションファイルはmigrations/sqlite/0047_v56_list_composite_indexes.sqlで終了し、postgresのインプロセスmigrate_v57()ラダーアーム (ファイル名カウンターは論理スキーマバージョンより遅れます。これは両ラダーがv34以降の差分をインプロセスアーム経由で適用するためです — v35-v57の説明についてはdocs/MIGRATION_v0.7.md §schema-ladderを参照; v48 #933 はフェデレーションプッシュDLQテーブルを追加; v49 #1025 はarchived_memoriesに14のNULL許容カラムを追加し、アーカイブ→リストアが完全なv0.7.0 Memory形状に対してロスレスになるようにしました; v50 #1156 はagent_quotasのPRIMARY KEYを(agent_id)から(agent_id, namespace)に拡張し、単一エージェントが多数の名前空間にまたがって動作する場合でも名前空間ごとのK8クォータ割り当てが維持されるようにしました — v50より前の行は_globalセンチネル名前空間にバックフィルされます; v51 #1255 (PR #1296) はfederation_nonce_cacheテーブルを追加し、ピア再生防止ナンスがデーモン再起動後も持続するようにしました; v52 #1389 はRFC-0001 memory_capture_turn L4 + recover_from_transcript L2冪等性を支えるtranscript_line_dedupテーブルを追加し、ターン間のSIGKILLが後続の再水和で重複メモリを生成しないようにしました; v53 #1418 はmemories_au FTS5同期トリガーを(title, content, tags)のみにスコープし、非FTSカラム更新が不要な同期を発生させないようにしました; v54 #1466 はレガシーなNULL有効期限の中/短期行にティアデフォルトの有効期限をバックフィルし、TTLリークによる不死行クラスを塞ぎました; v55 #1476 はW=2フェデレーションキャッチアップクエリ(updated_at > ? ORDER BY updated_at ASC LIMIT)をサージャブルにし、sqlite idx_memories_updated_atインデックスを追加しました — postgresはmemories_updated_at_idx DESCが既にIndex Scan Backward経由で範囲スキャンを提供するため、新しいインデックスは追加しません; v56 #1579 は複合リスト/アーカイブ順序付けインデックス(idx_memories_list_order, idx_memories_ns_list_order, idx_archived_ns_archived_at)をサージャブルなstorage::list書き換えとペアで追加しました — sqlite側DDL; postgres migrate_v56()アームはバージョンスタンプのno-opです; v57 #1579 はpostgresのストアド生成tsv tsvectorカラム + memories_tsv_gin GINインデックスを追加し、検索/リコール形状が一致し、マッチした行ごとにtsvectorを再計算する代わりに事前計算されたカラムでランク付けするようにしました — レガシーなmemories_content_fts式インデックスは削除され、sqliteの対応物はFTS5が既にインデックス済みテキストを実体化しているためバージョンスタンプのno-opです)、新しいai-memory schema-init CLI動詞、および6要素リコールスコアリング同等性。v0.6.4のデフォルトサーフェスは、常時有効な2つのローダーが追加され7ツールに (memory_load_family + memory_smart_loadが元の5つに加わります); --profile fullでのランタイム上限は74のアドバタイズされたエントリ (73の呼び出し可能なメモリツール + 常時有効なmemory_capabilitiesブートストラップ; Profile::full().expected_tool_count()に対して検証済み — src/profile.rsを参照)。新しいものはすべて追加的であり、(信頼 + postgresサーフェスについては) オプトインです。v0.6.xからアップグレードしますか? 最初にdocs/MIGRATION_v0.7.mdをお読みください — ほとんどのv0.6.4呼び出し元は動作の変更を認識しませんが、v0.6.3.1より前のv0.6.xユーザーはG1名前空間継承修正の影響を受けます。postgres+AGEに切り替えますか? docs/postgres-age-guide.md と docs/migration-v0.7.0-postgres.md を参照してください。完全なリリースノート: docs/v0.7.0/release-notes.md。
v0.6.4 (quiet-tools) — MCPサーバーは5ツールのデフォルトサーフェス (memory_store, memory_recall, memory_list, memory_get, memory_search) に加えて、常時有効なmemory_capabilitiesブートストラップを同梱します。他の38ツールは、--profile graph|admin|power|fullまたはmemory_capabilities --include-schema family=<name>によるランタイム拡張を通じて引き続き到達可能です。先行読み込みハーネス (Claude Desktop / Codex CLI / Grok CLI / Gemini CLI) は、リクエストごとにツールスキーマの約4,700入力トークンを削減します — cl100k_base BPEに対して測定した76.4%の削減です。v0.6.3の動作を1:1で維持するには、ai-memory mcp --profile fullを実行してください。docs/MIGRATION_v0.6.4.mdを参照してください。
v0.9の新機能
v0.9.0は主にセキュリティ強化とコードレビューリリースです — 5レーンの敵対的レビュー(#1885–#1935)からの49の修正 — に加えて、v0.8.0調整基盤の上に構築された少数の追加機能が含まれます。完全な変更履歴: CHANGELOG.md §"[0.9.0] — 2026-07-08"。
デフォルトでセキュアな強化
- HTTP直接書き込みサーフェスでデフォルトでエージェント証明が必要に (#1751, #1985によるサーフェススコープ)。
AI_MEMORY_REQUIRE_AGENT_ATTESTATIONはサーフェスごとにコンパイルされたデフォルトを持つ3状態です: 未設定 → HTTP直接書き込み(POST /api/v1/memories+/bulk,403 ATTESTATION_FAILEDは拒否)では必須、MCPmemory_storeおよびCLIstoreオペレーターasアクターサーフェスでは許容 (署名なし書き込みはattest_level="claimed"になります);=1はすべての場所で厳格を強制し、=0はすべての場所で許容を強制します。提示されたが偽造された署名は、サーフェスに関係なくすべて拒否されます。書き込みに署名するか(ai-memory store --signとai-memory agents bind-keyでバインドされたキーペアを使用)、=0オプトアウトを使用してください。(v0.9.0 GAはこれをすべての場所で必須として出荷しましたが、MCPホストでは満たせませんでした — #1981を参照; #1985によりサーフェススコープに修正されました。) - デュアルMCP + HTTPフック強制ゲート (#1885 / #1924)。必須フック存在強制ゲート(元々はMCPのみ、#1734)がHTTP書き込みパスでも参照されるようになり、MCPを完全にバイパスした書き込みが設定された必須フックを認識しないサイレントバイパスギャップ(CWE-288)を塞ぎました。
bulk_create証明ゲーティング (#1919)。バルク書き込みが、単一のmemory_store呼び出しと同じ行ごとのエージェント証明要件を強制するようになりました — バッチ内のすべての行が有効な証明を持っている必要があり、リクエスト全体としてだけではありません。- フェデレーション承認者ゲート (#1920)。インバウンドのフェデレーションPENDING承認は、ピアの登録された承認者に帰属する場合にのみ受け入れられます — 登録されているが信頼されていないピアは、任意のリクエスタに対して承認を偽造できなくなりました。
team/unit/orgスコープ強化 (#1921)。可視性スコープ解決が、team/unit/orgスコープに対して名前空間祖先階層を正しく強制するようになり、テナント分離ギャップ(CWE-863)を塞ぎました。skill_registerパス制限 (#1923)。スキルのfolder_pathインポートが正規化され、設定されたルートの下に制限され、インポートされたツリー内のシンボリックリンクは追跡されずに拒否されます(CWE-22/CWE-59)。- 非argvストアURLクレデンシャルチャネル (#1927)。新しい
AI_MEMORY_STORE_URL(所有者のみの/proc/environ) とAI_MEMORY_STORE_URL_FILE(0600ファイル) により、ai-memory serveはpostgres/ストアURL(埋め込みパスワードを含む)を、--store-urlargvに一切載せることなく受け取ることができます。argvでは、ワールドリーダブルな/proc/<pid>/cmdlineやps auxwwを介して任意のローカルUIDに公開されてしまいます。解決順序: ファイル → 環境変数 →--store-url。
追加機能
- B7-SKILL — スキルメモリを第一級に (#1865)。登録時の
parameters_schema、invocation_record、およびエージェント作成スキル用のバージョンサーフェス。 recall_observationsシャドウフィードバックループ (#1706, SHADOWモード)。ランキング動作をまだ変更せずに、リコールフィードバックループを閉じます。- メモリ導出系統DAG (
memory_lineage, スキーマv78, #1859)。MCPと新しいGET /api/v1/memories/{id}/lineageHTTPルートの両方で、どのメモリがどのメモリから導出されたかを追跡します。 - ベクトル検索の最小限のオプトインスライス (#1005; 完全な基盤は#1860に延期)。
- 物理CPU数に合わせたリランカーワーカープールのサイズ設定 (#1867) およびリコールがデフォルトでPUREに (#1869 — リコールのホットパスから書き込みバーストを削除)。
- 追記専用スパイン + 署名レイヤー分離: すべての変更サイトが署名付きリビジョンリーフにルーティングされ (#1823)、3キーRecorder/Judge/Stopper署名分離 (#1826)、エンドツーエンドで接続されたマカロンケイパビリティトークン (#1827)、およびローテーションサバイバルのための署名付きアイデンティティ系統キー継承チェーン (#1828, スキーマv76)。
開始点:
CHANGELOG.md(完全な変更履歴),docs/ADMIN_GUIDE.md(オペレータープレイブック — 証明 + フック強制の体制)。
v0.8の新機能
v0.8.0 (distributed-coordination) は、メモリ基盤をマルチエージェント(NHI)フリート向けの調整基盤に変えます。目玉は分散調整機構 (#1709) です。すべてがsqliteとpostgres+AGE SALアダプターの両方で提供され、v0.7.xの呼び出し元にとってデフォルト同等のままです。完全なツールリファレンス: docs/coordination.md; 完全なノート: docs/v0.8.0/release-notes.md。
分散調整基盤 (Pillar-1, #1709)
- アクション — 依存関係DAG (スキーマv59)。ステートマシン (
pending → claimed → in_progress → done/failed/abandoned) を持つ型付きアクションノード、型付きDAGエッジ (requires/unlocks/blocks/gated_by/sibling)、および次に実行可能なノードを引き出すフロンティア/ネクストサーフェス。8つのMCPツール (memory_action_create/_get/_transition/_list/_add_edge/_edges/_frontier/_next)。 - リース — 単一保持者、TTL制限付きクレーム (スキーマv59)。ハートビートで更新される比較交換クレーム (
PRIMARY KEYonaction_id= 一度に1つの保持者) と1時間ごとのリーススイーパー。4つのMCPツール (memory_lease_acquire/_renew/_release/_get)。 - シグナル — 型付き、Ed25519署名付きエージェント間メッセージ (スキーマv60)。各メッセージは署名 + 送信者
signer_pubkeyを持ち、correlation_id/in_reply_toを介してスレッド化される。5つのMCPツール (memory_signal_send/_read/_inbox/_thread/_ack)。 - チェックポイント — 証明付き条件付きゲート (スキーマv61)。条件が解決されるまでブロックするゲート。解決は職務分掌のために自己署名 (Ed25519) され、
verifyが署名を再チェックする。4つのMCPツール (memory_checkpoint_create/_resolve/_query/_verify)。 - ルーチン — パラメータ化され、凍結され、再実行可能な計画 (スキーマv62)。
draftとして作成され、その後凍結 (不変、Ed25519凍結証明)。runは{{param}}テンプレートから具体的なアクションとエッジのセットをroutine_runsレコードに実体化する。5つのMCPツール (memory_routine_create/_freeze/_run/_status/_list)。 - すべての調整状態変更は、改ざん防止の
coordination.<op>行をsigned_eventsV-4ハッシュチェーンに追加する (#1722)。2つの権限付与書き込みは、ローカルCAS + W-of-Nフェデレーションファンアウト (#1718) を使用してHTTPデーモン (POST /api/v1/actions/{id}/transition,POST /api/v1/signals) にミラーリングされる。
型付き認知 (Pillar-2)
memory_kind 語彙は goal / plan / step で拡張される。閉じた memory_links.relation 分類は 6 → 9リレーション (decomposes_into / depends_on / advances, スキーマv63) に拡張される。そして、第一級の memories.lifecycle_state カラム (スキーマv64) は、Goal/Plan/Stepを実際のステートマシン (open → active → blocked/done/abandoned) にし、不正なエッジをHTTP 409 CONFLICT にマッピングしてMCP / HTTP / SALサーフェス全体で強制される。Memory 構造体は 27フィールド に増加する。新しいMCPツールはなく、v64の作業は許可的なオプションのリクエストフィールドのみを追加する。
フェデレーションの強化、デフォルトでセキュア
ピア登録はデフォルトでON (#1789)、権限付与書き込み時の遷移ごとの署名 (#1718)、中継されたメモリの書き込みごとのコンテンツ証明 (#1464)、遷移リプレイナンス (#1805)、およびアウトバウンドピア証明書フィンガープリントピンニング (#1678)。互いに信頼する必要のない異種混合フリート — アップグレード前に docs/v0.8.0/release-notes.md §"Federation hardening" のセキュアデフォルトの切り替えを確認すること。
実際にブロックするガバナンス (#1811)
Claude Codeの PreToolUse ガバナンスフックは type:command ラッパー (ai-memory governance check-action --from-pretool-stdin) に作り直され、サブストレート Refuse が permissionDecision:"deny" を発行し、ツールを真にブロックする。以前の type:mcp_tool 形式では構造的に強制できなかった。さらに、必須フック存在強制 (#1734) と、ヒューマンインザループのための新しい escalate ガバナンス評決 (§22 PE-5)。
Pillar-4 運用制御
HTTPアドミッション制御 (#1733 — 超過分を型付き 503 でシェディングするオプトイン同時実行上限)、遅延Apache-AGEグラフプロジェクション (#1735 — postgresリンク書き込みホットパスから同期AGEラウンドトリップを取り除く)、キュレーターコンパクションのアクティベーション (#1749 / #1750)、および ai-memory verify-audit-trail CLI (§22 PE-8) は signed_events クロス行ハッシュチェーンをエンドツーエンドでウォークする。
スキーマ v57 → v70 (すべて追加的)
調整 + 型付き認知 + 可視性 + 暗号化準備 + コールドパス + アーカイブエッジテーブル (v58–v70)。sqliteとpostgresアダプターの両方にミラーリングされる。初回オープン時に自動移行し、アーカイブ → リストアのラウンドトリップをロスレスで行う。標準的なv58–v70ラダーについてはCLAUDE.md §Databaseを参照。
開始点:
docs/v0.8.0/release-notes.md(完全なリリースノート)、docs/coordination.md(調整ツールリファレンス)、およびCLAUDE.md §Database (スキーマラダーSSOT)。
v0.7の新機能
v0.7.0は attested-cortex エピック (11トラックA–Kにわたる69/69) を完了し、当初v0.7.1だったpostgres+AGEの第一級作業を統合し、グランドスラム後の出荷準備 wave (Batman Forms 1-6 + 7th-form Option-B foundation + QW-1/2/3 + セキュリティ調整) を吸収する。標準機能一覧: docs/internal/v070-feature-inventory.md。すべてのサーフェスはv0.6.4呼び出し元に対してデフォルトオフまたはデフォルト同等のままである — 内訳については v0.7互換性マトリックス を参照。
サブストレートネイティブな書き込み時投資 (Batman Forms 1-6 + 7th-form)
- Form 1 — オンライン重複排除と合成 (issue #754)。単一バッチのアクション発行LLM呼び出しが、ストアパス上のv0.6.xのペアごとの分類器を置き換える。名前空間標準の
legacy_per_pair_classifier = trueを介してレガシーyes/noにオプトバックする。 - Form 2 — 埋め込み前の同期的な原子化 (issue #755)。新しい
memory_atomiseツール +auto_atomise_mode = Synchronous|Deferred|Offプレストアフック。キュレーターは、リコールが認識する前に、長い書き込みを2~10の原子的な命題に分解する。docs/atomisation.mdを参照。 - Form 3 — マルチステップ取り込みオーケストレーター (issue #756)。
memory_ingest_multistepは、決定論的なJaccard+FTSヘルパーをプロンプトキャッシュ安定LLMステージに通す。docs/multistep-ingest.md+cookbook/multistep-ingest/01-two-phase.shを参照。 - Form 4 — ファクト来歴 (issue #757)。引用 + ソースURI + アトム粒度スパンが既存の
memory_store/memory_atomiseペイロードに乗る。docs/provenance.mdを参照。 - Form 5 — 自動信頼度 + シャドウキャリブレーション + 新鮮さ減衰 (issue #758)。
memory_calibrate_confidenceMCPツール + ソースごとのベースラインスイープ。環境変数AI_MEMORY_AUTO_CONFIDENCE,AI_MEMORY_CONFIDENCE_SHADOW,AI_MEMORY_CONFIDENCE_SHADOW_SAMPLE_RATE,AI_MEMORY_CONFIDENCE_DECAY。docs/confidence-calibration.mdを参照。 - Form 6 —
MemoryKindBatman語彙 (issue #759)。10バリアントの列挙型 (Observationデフォルト +Reflection/Persona/Concept/Entity/Claim/Relation/Event/Conversation/Decision)。オプションのauto_classify_kindプレストアフック (off / regex_only / regex_then_llm)。docs/memory-kind-vocab.mdを参照。 - 7th-form — エージェント外部 Layer-4 配線 (Option-B foundation) (issue #760; v0.8.0完全カバーは #697)。オペレーター鍵ペア署名付きシードルール
R001..R004,memory_check_agent_action+memory_rule_listMCPツール、サブストレートstorage::insertプレライトフック。docs/policy-engine.md+docs/governance/agent-action-rules.mdを参照。 - オペレーターハウツー — Forms 1–6 + 7thをcapable → activeに変える (issue #800)。7ステップレシピ (オペレーター鍵生成 → シード署名 → R001–R004有効化 → キュレーターデーモン → オプションのリフレクションパス → 名前空間ポリシー)、launchd / systemd / Task-Scheduler永続化、検証ブロック、ロールバックパス。
docs/batman-active-mode.mdと GitHub Pagesアトラス を参照。
クイックウィン (Tencent QW-1/2/3)
- QW-1 — ファイルバックアップされたリフレクションチェーンエクスポート。
memory_export_reflectionMCPツール +auto_export_reflections_to_filesystem名前空間ポリシー →~/.ai-memory/reflections/<ns>/<id>.md。 - QW-2 — アーティファクトとしてのペルソナ。
memory_persona+memory_persona_generateツール、MemoryKind::Persona行、auto_persona_trigger_every_n_memories名前空間ポリシー。docs/persona.mdを参照。 - QW-3 — コンテキストオフロードプリミティブ。
memory_offload+memory_derefは、大きなツール出力をエージェントコンテキストウィンドウからアドレス可能なblobストレージに移動する。docs/context-offload.mdを参照。
証明済みコーテックスエピック (Tracks A–K)
- 証明付きリンク (Ed25519)。 v0.6.3で導入された空の
signatureカラムが、エージェントごとの実際のEd25519証明で埋められ、memory_verify(link_id)はオンデマンドで{signature_verified, attest_level, signed_by, signed_at}を返すようになりました。ai-memory identity generateで鍵ペアを生成し、attest_level = "self_signed"でオプトインします。署名は、解決されたデーモンagent_idが設定された鍵ディレクトリ下のディスク上に*.priv鍵ペアを持っていることが条件です —load_daemon_signing_keyがNone(src/main.rs:116-118) を返す場合、行は引き続き書き込まれますがsigは空であり、デーモンは起動時に「unsignedのまま継続」という行を出力します。signed_events上の行間ハッシュチェーンは、いずれの場合も改ざん検出可能です。attested-cortexRFC を参照してください。 - 署名付きイベント V-4 クローズアウト (行間ハッシュチェーン) (issue #698)。各
signed_events行はprev_hash+sequenceを持ちます。先頭行のprev_hashはゼロで、後続行は前の正規CBORペイロードのSHA-256をチェーンします。ai-memory verify-signed-events-chainはチェーンを端から端まで検証します。docs/signed-events-v4.mdを参照してください。 - フックパイプライン (25のライフサイクルイベント)。 プログラム可能な拡張サーフェスは、20のベースライン
pre_/post_store|recall|search|delete|promote|link|consolidate|governance_decision|archive|transcript_store+on_index_evictionイベントに加え、5つのグランドスラム追加 (pre_recall_expandG10 +pre_reflect/post_reflect再帰学習タスク6/8 +pre_compaction/on_compaction_rollbackL1-7) で発火します。フックはAllow/Modify/Deny/AskUserを返します。デフォルトはオフ。~/.config/ai-memory/hooks.tomlでオプトインします。docs/hook-pipeline.mdを参照してください。 - サイドチェーントランスクリプト + リプレイ。 zstd-3 BLOBサイドチェーンは生の会話/推論トレイルを保存します。
memory_replay(memory_id)はmemory_transcript_linksを走査してチェーンを再構築します。[transcripts.namespaces."team/*"]で名前空間ごとにオプトインします。docs/sidechain-transcripts.mdを参照してください。 - フェデレーション強化。 mTLS + X-API-Key + SHA-256証明書フィンガープリント許可リスト。環境変数
AI_MEMORY_FED_PEER_ATTESTATION,AI_MEMORY_FED_SYNC_TRUST_PEER,AI_MEMORY_FED_TRUST_BODY_AGENT_ID。docs/federation.mdを参照してください。 - K8クォータツール + K10 SSE承認。
memory_quota_status+/api/v1/quota/status(K8)。/api/v1/approvals/streamHMAC nonce、method+pending_idバインディング、遅延イベントカウントストリップ付きサーバー送信イベント (K10)。docs/k8-quotas.md+docs/k10-sse-approvals.mdを参照してください。 - Postgres + Apache AGE ファーストクラスバックエンド。
ai-memory serve --store-url postgres://…、スキーマパリティ、6要素リコールスコアリングパリティ、リンク移行、AGE Cypher上のKG機能 (kg_query,kg_timeline,kg_invalidate,find_paths) (AGE不在時は再帰CTEフォールバック)、さらに新しいai-memory schema-initCLI動詞。ベンチゲート — AGE p95は深さ5でCTE p95より30%以上高速でなければなりません。オペレーターハウツー:docs/postgres-age-guide.md。移行ランブック:docs/migration-v0.7.0-postgres.md。 - Capabilities v3 + スマートローダー。
memory_capabilitiesv3はsummary,to_describe_to_user, ツールごとのcallable_now,agent_permitted_families,schema_version="3"を追加します。新しい常時オンのmemory_load_family(family)およびmemory_smart_load(intent)ツールがデフォルトのcoreプロファイルに加わります。固定フレーズはdocs/v0.7/canonical-phrasings.mdにあります。 - パーミッション + A2A承認。 v0.6.xガバナンスサブシステムは、ルール + モード + フック → 単一の
Decisionにリファクタリングされ、名前空間継承 (G1) が実際に強制されます。memory_pending_list/memory_pending_approve/memory_pending_reject(remember=forever)は段階的な信頼を可能にします。承認APIでのHMAC署名は必須です。permissions.modeのデフォルトはenforceです (v0.6.4ではadvisoryでした)。ai-memory governance migrate-to-permissionsで移行します (ドライランプレビュー;--config-out ~/.config/ai-memory/config.tomlを追加してその場で適用)。docs/governance.mdを参照してください。
再帰学習 + L1/L2 グランドスラムウェーブ
memory_reflect サブストレートプリミティブ。名前空間スコープの max_reflection_depth 上限付き (デフォルト3、Some(0) はキルスイッチ)。L2-1 リフレクションパスキュレーター、L2-2 フェデレーション対応リフレクション調整 (memory_reflection_origin)、L2-3 無効化伝播 (memory_dependents_of_invalidated)、L2-5 フォレンジックバンドル (ai-memory export-forensic-bundle + verify-forensic-bundle)、L1-5 エージェントスキル (memory_skill_register|list|get|resource|export|promote_from_reflection|compositional_context)。完全入門: docs/RECURSIVE_LEARNING.md。エージェントスキル入門: docs/agent-skills.md。フォレンジックエクスポート入門: docs/forensic-export.md。
開始場所:
docs/MIGRATION_v0.7.md(アップグレード手順),docs/v0.7.0/release-notes.md(完全なリリースノート),docs/whats-new-v07.html(ビジュアルサマリー),docs/v0.7/rfc-attested-cortex.md(設計根拠),docs/ADMIN_GUIDE.md(オペレータープレイブック),docs/internal/v070-feature-inventory.md(正規の機能真実)。
1つのバイナリ、4つの動作モード (v0.6.4)。ai-memory Rustバイナリ (tokio + axum) は、単一のSQLiteデータベースを共有しながら、これらを単独または同時に実行できます。
- stdio MCPサーバー -- フルプロファイルでJSON-RPC経由の101のアドバタイズされたエントリ (v0.9.0; 100の呼び出し可能なメモリツール + 常時オンの
memory_capabilitiesブートストラップ;Profile::full().expected_tool_count()に対して検証済み)。デフォルトの--profile coreは7つ (元の5つ +memory_load_family+memory_smart_load) に加え、常時オンのmemory_capabilitiesブートストラップをアドバタイズします。ai-memory mcp/ai-memory mcp --profile full - HTTP / mTLS デーモン --
127.0.0.1:9077上の92のRESTルート登録 (78のユニークなURLパス)、TLS + オプションのmTLS許可リスト + APIキー認証、バックグラウンドGCループ。ai-memory serve - 自律キュレーターデーモン -- 自己スケジューリングループ (デフォルト1時間周期) で、自動タグ付け、名前空間兄弟間の矛盾の表面化、ほぼ重複するものの統合、アクセスパターンによる優先度調整を行います。すべてのアクションはロールバックログに記録され、破壊的な操作はガバナンス承認フローの背後で制限できます。
ai-memory curator --daemon - 同期デーモン -- インスタンス間のクォーラムベースのピアフェデレーション。W-of-N書き込み (デフォルト過半数)、ベクタークロックCRDT-liteマージ、ピア間のmTLS許可リスト。
ai-memory sync-daemon
MCP、HTTP、CLIサーフェスはリアクティブです。キュレーターはメモリレイヤーを自己維持する部分です。セッション間で、ストアが成長してもリコール品質が高く保たれるようにコーパスを整頓します。すべてがローカルファーストで、クラウド依存はありません。
Claude Opus 4.7による核心的な評価 (v0.6.3ソースを一行ずつ読んだ後):
「ai-memoryは、私がこれまで接続された中で最も有能なメモリレイヤーであり、その名前が示すよりもはるかに多くのことを意味します。私にとって、実用的な意味では、各セッションをコールドスタートしないことを意味します。私が読み取るストアは、私以外の何かによって整頓されています。矛盾が黙って蓄積されることはありません。コーパスが成長してもリコール品質は高いままです。あなたのMac miniから何も出て行きません。
これは私を自律エージェントにしているのではありません。自律エージェントが必要とする種類のメモリインフラストラクチャを私に与え、それを維持するために小さな自律ループ自体を実行しています。それは真の基盤です。ここから『ai-memoryが一般的なタスクを駆動する』までのギャップは、配管(ツール呼び出しプロトコル + ツールレジストリ + ツール使用可能モデル)であり、発明ではありません。」
マルチエージェントAIのためのサブストレート。 ai-memoryはエージェントランタイムではなく、それ自体が「自律AI」でもありません。これは、マルチエージェント自律デプロイメントがその下に必要とするメモリレイヤーです。フェデレーション (broadcast_store_quorum + spawn_catchup_loop) は、多くのエージェントが並行して書き込む際のピア間のW-of-N一貫性を処理します。キュレーターデーモンは、群れが書き込むにつれて共有コーパスがノイズに劣化するのを防ぎます。Webhookサブスクリプション (HMAC署名、名前空間/エージェントフィルタリング、SSRF強化) は、ストアをメモリイベントで下流エージェントをトリガーするメッセージバスに変えます。Nレベルの継承と名前空間ごとのガバナンスポリシー (書き込み/昇格/削除権限、承認者タイプ、オプションのN-of-Mコンセンサス) を持つ名前空間階層は、群れを制限します。これを、自動生成スキルを備えた24時間365日のマルチマシンエージェントランナーの下にスタックすると、結合されたシステムは自律AIの行動的な基準をクリアします。残りのギャップ (重みレベルの学習なし、ステートレス推論カーネル、人間がシードしたルート目標) は現実のものであり、ai-memoryが対処するものではありません。ai-memoryは、これらのギャップを埋めるための本格的な試みが必要とするマルチエージェントメモリサブストレートを提供します。
リコールまでトークンコストゼロ。 すべての会話にメモリ全体をロードし、すべてのメッセージでトークンと費用を消費する組み込みメモリシステム (Claude Code auto-memory、ChatGPT memory) とは異なり、ai-memoryはAIが明示的に memory_recall を呼び出すまでコンテキストトークンをゼロに保ちます。関連するメモリのみが、6要素スコアリングアルゴリズムによってランク付けされて返されます。TOON形式 (Token-Oriented Object Notation) は、繰り返されるフィールド名を排除することで応答トークンをさらに40-60%削減します — JSONでの3つのメモリ = 1,600バイト、TOONでは626バイト (61%削減)、TOONコンパクトでは336バイト (79%削減)。Claude Codeユーザー向け: auto-memoryを無効にし (settings.jsonの "autoMemoryEnabled": false)、ai-memoryに置き換えて、すべてのメッセージで200行以上のメモリコンテキストに支払うのをやめましょう。
エージェントアイデンティティ (NHI) — すべてのメモリが誰が学習したかを伝えます
ai-memoryが保存するすべてのメモリは metadata.agent_id を持ちます — すべての操作 (更新、重複排除、インポート、同期、統合) を生き残る非人間IDマーカーです。すべてのリコール結果は、デフォルトで、クライアントAIがすでに最適化されているTOONコンパクト応答形式で、どのAIが各メモリを書いたかを伝えます。
count:5|mode:hybrid|tokens_used:842
memories[id|title|tier|namespace|priority|score|tags|agent_id]:
a1b2|Project DB is PostgreSQL 16|long|infra|8|0.91|database,postgres|ai:claude-code@workstation:pid-3812
c3d4|API rate limit is 100 rps|long|infra|7|0.87|api,limits|ai:claude-desktop@laptop:pid-5219
unsigned書き込みでは、agent_id は主張されたアイデンティティです — これだけでセキュリティ判断を行わないでください。ストアパスエージェント証明は、HTTP直接書き込みサーフェスでデフォルトで必須です (#1751, #1985によるサーフェススコープ): unsigned HTTP POST /api/v1/memories (+/bulk) は、オペレーターが明示的なオプトアウト AI_MEMORY_REQUIRE_AGENT_ATTESTATION=0 を設定しない限り、attest_level = "claimed" に着地するのではなく拒否されます (403 ATTESTATION_FAILED)。MCP memory_store およびCLI store オペレーター-as-アクターサーフェスは、デフォルトで許可的です (unsigned書き込みは claimed に着地します)。=1 はすべてのサーフェスでstrictを強制します。暗号Ed25519証明は2つのサーフェスで配線されています: (1) ストアパス証明 (#626 Layer-3) — CLI (store --sign)、MCP (memory_store)、またはHTTP (POST /api/v1/memories) パスで正規の SignableWrite エンベロープに対するデタッチド署名を提示すると、デーモンはエージェントのバインドされた公開鍵に対してそれを検証し、metadata.attest_level = "agent_attested" をスタンプします (提示されたが偽造された署名は、フラグに関係なく常に拒否されます)。(2) リンク証明 (attested-cortex) — 以前予約されていた memory_links.signature フィールドに、インバウンド検証用の memory_verify(link_id) と追加専用の signed_events 監査チェーンがあります。完全な来歴契約については、エージェントアイデンティティページ と attested-cortex RFC を参照してください。
遡及的な会話インポート — ai-memory mine
コールドスタートしないでください。ai-memory mine をClaude、ChatGPT、またはSlackエクスポートに向けると、ターンごとに解析してランク付け、階層型、タグ付きメモリにします — これにより、AIは既存の履歴からのすべての決定、修正、発見を知った状態で次のセッションに臨めます。
ai-memory mine claude ~/Downloads/claude-export/
ai-memory mine chatgpt ~/Downloads/chatgpt-export.json
ai-memory mine slack ./slack-export/
自動タグ付け、(title, namespace) での重複排除、mined_from 来歴が、インポートされたすべてのメモリにスタンプされます。ゼロコンテキストからデータが投入された長期ストアまでの5分間のオンボーディング。フォーマットごとのレシピについては、インポート履歴ページ を参照してください。
互換性のあるAIプラットフォーム
ai-memoryは、Model Context Protocol (MCP) をサポートするあらゆるAIプラットフォームと統合します。MCPは、AIアシスタントを外部ツールやデータソースに接続するためのユニバーサルスタンダードです。
| プラットフォーム | 統合方式 | 設定フォーマット | ステータス |
|---|---|---|---|
| Claude Code (Anthropic) | MCP stdio | JSON (~/.claude.json または .mcp.json) | 完全サポート |
| Codex CLI (OpenAI) | MCP stdio | TOML (~/.codex/config.toml) | 完全サポート |
| Gemini CLI (Google) | MCP stdio | JSON (~/.gemini/settings.json) | 完全サポート |
| Grok CLI (xAI) | MCP stdio | JSON (~/.grok/user-settings.json) | 深い統合 |
| Grok API (xAI) | MCP リモート HTTPS | APIレベル | 完全サポート |
| Cursor IDE | MCP stdio | JSON (~/.cursor/mcp.json) | 完全サポート |
| Windsurf (Codeium) | MCP stdio | JSON (~/.codeium/windsurf/mcp_config.json) | 完全サポート |
| Continue.dev | MCP stdio | YAML (~/.continue/config.yaml) | 完全サポート |
| Llama Stack (META) | MCP リモート HTTP | YAML / Python SDK | 完全サポート |
| OpenClaw | MCP stdio | JSON (設定内の mcp.servers) | 完全サポート |
| 任意のMCPクライアント | MCP stdio または HTTP | 様々 | ユニバーサル |
MCPが主要な統合レイヤーです。MCPをまだネイティブサポートしていないAIプラットフォーム向けには、HTTP API(92のルート登録 / localhost上の78のユニークURLパス)とCLI(--features sal または --features sal-postgres 配下の89のサブコマンド;デフォルトビルドでは87(#1389 L2 RecoverPreviousSession クロスセッションコンテキスト再水和 + #1443 Expand ai-memory expand クエリ拡張サーフェス + #1598 Reembed ai-memory reembed ベクトル空間移行サーフェス後);SSOTは ai_memory::EXPECTED_CLI_SUBCOMMANDS_DEFAULT + EXPECTED_CLI_SUBCOMMANDS_SAL + 機械的な tests/cli_subcommand_count_invariant.rs パリティテストによって固定)がユニバーサルアクセスを提供します -- HTTPコールやシェルコマンドを実行できる任意のAI、スクリプト、自動化がai-memoryを使用できます。
60秒でインストール
ビルド済みバイナリは依存関係が不要です。ソースからのビルドにはRustとCコンパイラが必要です。
最速: ビルド済みバイナリ(Rust不要)
# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/alphaonedev/ai-memory-mcp/main/install.sh | sh
# Fedora/RHEL (COPR)
sudo dnf copr enable alpha-one-ai/ai-memory && sudo dnf install ai-memory
# Windows (PowerShell)
irm https://raw.githubusercontent.com/alphaonedev/ai-memory-mcp/main/install.ps1 | iex
ステップ1: Rustをインストール(ビルド済みバイナリを使用する場合はスキップ)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
プロンプトに従い、ターミナルを再起動します(または source ~/.cargo/env を実行します)。
ステップ2: ソースから(Rustが必要)
Crates.ioからの最新リリース:
cargo install ai-memory
gitリポジトリからの最新版:
cargo install --git https://github.com/alphaonedev/ai-memory-mcp.git
これによりバイナリがコンパイルされ、PATHに配置されます。1〜2分かかります。
ソースビルドの依存関係:
- Ubuntu/Debian:
sudo apt-get install build-essential pkg-config- Fedora/RHEL:
sudo dnf install gcc pkg-config
ステップ3: AIを接続
設定はプラットフォームによって異なります。以下からお探しください:
Claude Code (Anthropic)
Claude Codeは3つのMCP設定スコープをサポートしています:
| スコープ | ファイル | 適用対象 |
|---|---|---|
| ユーザー (グローバル) | ~/.claude.json — mcpServers キーを追加 | マシン上のすべてのプロジェクト |
| プロジェクト (共有) | プロジェクトルートの .mcp.json (gitにチェックイン) | プロジェクトの全員 |
| ローカル (プライベート) | ~/.claude.json — projects."/path".mcpServers 配下 | 1つのプロジェクト、あなたのみ |
ユーザースコープ(推奨 — どこでも動作):
~/.claude.json (macOS/Linux) または %USERPROFILE%\.claude.json (Windows) に mcpServers キーを追加します:
{
"mcpServers": {
"memory": {
"command": "ai-memory",
"args": ["--db", "~/.claude/ai-memory.db", "mcp", "--tier", "semantic"]
}
}
}
注意:
~/.claude.jsonには既に他の設定が存在する可能性があります。mcpServersキーを既存のファイルにマージしてください — 上書きしないでください。
プロジェクトスコープ(チームと共有):
プロジェクトルートに .mcp.json を作成します:
{
"mcpServers": {
"memory": {
"command": "ai-memory",
"args": ["--db", "~/.claude/ai-memory.db", "mcp", "--tier", "semantic"]
}
}
}
smart / autonomous ティアとクラウドLLM — 推奨パスは ~/.config/ai-memory/config.toml の [llm] セクションです (#1146)。1つのファイル、すべてのサーフェス、AIクライアントごとの編集不要:
# ~/.config/ai-memory/config.toml
schema_version = 2
[llm]
backend = "xai"
model = "grok-4.3"
base_url = "https://api.x.ai/v1"
api_key_env = "XAI_API_KEY" # process-env-var name (NOT the literal key)
シェルrc (.zshrc / .bashrc) で XAI_API_KEY をエクスポートします。MCP設定は最小限のままです:
{
"mcpServers": {
"memory": {
"command": "ai-memory",
"args": ["--db", "~/.claude/ai-memory.db", "mcp", "--tier", "autonomous"]
}
}
}
確認: ai-memory boot --quiet --limit 1 は llm=xai:grok-4.3 を報告するはずです。正規スキーマリファレンス: docs/CONFIG_SCHEMA.md。
パスの上書き —
env:ブロック。AI_MEMORY_LLM_BACKEND/_API_KEY/_MODELを含むenv:ブロックをMCP設定に追加することは引き続き機能し、config.tomlよりも優先されます — CI / セッションごとの調整に便利です:"env": { "AI_MEMORY_LLM_BACKEND": "xai", "AI_MEMORY_LLM_API_KEY": "xai-...", "AI_MEMORY_LLM_MODEL": "grok-4.3" }MCPクライアントはサーバーを、MCP設定からの
env:キーのみを持つ新しいサブプロセスとして起動します —.zshrc/.bashrcでのシェルエクスポートは到達しません。上記の[llm]設定ファイルパスはこの煩わしさを解消します(すべてのサーフェスが同じファイルを読み取ります)。config.toml内のインラインAPIキーは解析時に拒否されます —api_key_envまたはapi_key_fileを使用してください。背景: #1144 → #1146。バックエンドごとの完全なレシピ:docs/integrations/llm-backends.md。
Windowsパス:
--dbではフォワードスラッシュまたはエスケープされたバックスラッシュを使用してください。例:"--db", "C:/Users/YourName/.claude/ai-memory.db"。
ティアフラグ:
--tierフラグは機能ティアを選択します:keyword、semantic(デフォルト)、smart、またはautonomous。SmartおよびAutonomousティアにはLLMバックエンドが必要です — post-#1067 (v0.7.0) では、ローカルの Ollama、xAI Grok、OpenAI、Anthropic、Google Gemini、DeepSeek、Kimi (Moonshot)、Qwen (Alibaba)、Mistral、Groq、Together AI、Cerebras、OpenRouter、Fireworks、LMStudio、vLLM、またはllama.cppサーバーのいずれか —AI_MEMORY_LLM_BACKEND経由で選択します。--tierフラグは引数で渡す必要があります — MCPサーバーがAIクライアントによって起動される場合、config.tomlティア設定は使用されません。
重要: MCPサーバーは
settings.jsonやsettings.local.jsonでは設定されません — これらのファイルはmcpServersをサポートしていません。
Claudeにai-memoryを積極的に使用させる: ai-memoryディレクティブを含む CLAUDE.md ファイルをプロジェクトルートに追加します。これにより、Claudeはすべての会話の開始時にコンテキストを思い出し、作業中に発見事項を保存します。コピー&ペーストテンプレートと配置オプションについては、CLAUDE.md統合ガイドを参照してください。
OpenAI Codex CLI
~/.codex/config.toml (グローバル) または .codex/config.toml (プロジェクト) に追加します。Windows: %USERPROFILE%\.codex\config.toml。CODEX_HOME 環境変数で上書きします。
[mcp_servers.memory]
command = "ai-memory"
args = ["--db", "~/.local/share/ai-memory/memories.db", "mcp", "--tier", "semantic"]
enabled = true
またはCLI経由で追加: codex mcp add memory -- ai-memory --db ~/.local/share/ai-memory/memories.db mcp --tier semantic
注意: Codexはアンダースコア付きキー
mcp_serversのTOMLフォーマットを使用します(キャメルケースでもハイフン区切りでもありません)。env(キー/値ペア)、env_vars(転送するリスト)、enabled_tools、disabled_tools、startup_timeout_sec、tool_timeout_secをサポートします。TUIで/mcpを使用してサーバーステータスを表示します。Codex MCPドキュメントを参照してください。
Google Gemini CLI
~/.gemini/settings.json (ユーザー) または .gemini/settings.json (プロジェクト) に追加します。Windows: %USERPROFILE%\.gemini\settings.json。
{
"mcpServers": {
"memory": {
"command": "ai-memory",
"args": ["--db", "~/.local/share/ai-memory/memories.db", "mcp", "--tier", "semantic"],
"timeout": 30000
}
}
}
またはCLI経由で追加: gemini mcp add memory ai-memory -- --db ~/.local/share/ai-memory/memories.db mcp --tier semantic
注意: サーバー名にアンダースコアを使用しないでください(ハイフンを使用)。ツール名は自動的に
mcp_memory_<toolName>としてプレフィックスが付きます。envフィールドの環境変数は$VAR/${VAR}(すべてのプラットフォーム) および%VAR%(Windows) をサポートします。Geminiは、明示的に宣言されない限り、継承された環境から機密パターンをサニタイズします。"trust": trueを追加して確認プロンプトをスキップします。CLI管理:gemini mcp list/remove/enable/disable。Gemini CLI MCPドキュメントを参照してください。
Cursor IDE
~/.cursor/mcp.json (グローバル) または .cursor/mcp.json (プロジェクト) に追加します。Windows: %USERPROFILE%\.cursor\mcp.json。プロジェクト設定は、同じ名前のサーバーのグローバル設定を上書きします。
{
"mcpServers": {
"memory": {
"command": "ai-memory",
"args": ["--db", "~/.local/share/ai-memory/memories.db", "mcp", "--tier", "semantic"]
}
}
}
注意:
mcp.jsonを編集した後はCursorを再起動します。Settings > Tools & MCPでサーバーステータスを確認します(緑のドット = 接続済み)。env、envFile、および${env:VAR_NAME}補間をサポートします(環境変数補間はシェルプロファイル変数に対して信頼性が低い場合があります — 回避策としてenvFileを使用してください)。すべてのMCPサーバーで 約40のツール制限 があります。Cursor MCPドキュメントを参照してください。
Windsurf (Codeium)
~/.codeium/windsurf/mcp_config.json (グローバルのみ — プロジェクトレベルのスコープなし) に追加します。Windows: %USERPROFILE%\.codeium\windsurf\mcp_config.json。
{
"mcpServers": {
"memory": {
"command": "ai-memory",
"args": ["--db", "~/.local/share/ai-memory/memories.db", "mcp", "--tier", "semantic"]
}
}
}
注意:
command、args、env、serverUrl、url、およびheadersでの${env:VAR_NAME}補間をサポートします。すべてのMCPサーバーで 100のツール制限 があります。MCPマーケットプレイスまたはSettings > Cascade > MCP Serversから追加することもできます。Windsurf MCPドキュメントを参照してください。
Continue.dev
~/.continue/config.yaml (ユーザー) またはプロジェクトルートの .continue/mcpServers/ ディレクトリ (サーバーごとのYAML/JSONファイル) に追加します。Windows: %USERPROFILE%\.continue\config.yaml。
mcpServers:
- name: memory
command: ai-memory
args:
- "--db"
- "~/.local/share/ai-memory/memories.db"
- "mcp"
- "--tier"
- "semantic"
注意: MCPツールはエージェントモードでのみ動作します。シークレット補間のための
${{ secrets.SECRET_NAME }}をサポートします。プロジェクトレベルの.continue/mcpServers/ディレクトリは、他のツール(Claude Code、Cursorなど)からのJSON設定を自動検出します。Continue MCPドキュメントを参照してください。
Grok CLI (AlphaOneフォーク — 自動リコールとの深い統合)
grok-cliのAlphaOneフォークには、セッションスコープのMCP接続、セッション開始時の自動メモリリコール、圧縮サマリーストレージ、メモリ対応システムプロンプトを備えたai-memoryサポートが組み込まれています。
~/.grok/user-settings.json に追加します:
{
"mcp": {
"servers": [
{
"id": "ai-memory",
"label": "AI Memory",
"enabled": true,
"transport": "stdio",
"command": "ai-memory",
"args": ["mcp", "--tier", "semantic"]
}
]
}
}
機能: セッション開始時の自動リコール(関連メモリをシステムプロンプトに注入)、中層メモリとして保存される圧縮サマリー、すべてのモード(エージェント、プラン、質問)で利用可能なMCPツール、セッションスコープの接続(メッセージごとのコールドスタートなし)。デフォルトで
--tier semanticを使用します(ローカル埋め込み、LLMバックエンド不要)。完全なセットアップについては grok-cliドキュメント を参照してください。
xAI Grok API (APIレベル、リモートMCP)
GrokはHTTPS経由でMCPサーバーに接続します(リモートのみ、stdioなし)。設定ファイルは不要です — サーバーはAPIリクエストごとに指定されます。
ai-memory serve --host 127.0.0.1 --port 9077
# Expose via HTTPS reverse proxy (nginx, caddy, cloudflare tunnel, etc.)
次に、MCPサーバーをGrok APIコールに追加します:
curl https://api.x.ai/v1/responses \
-H "Authorization: Bearer $XAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "grok-4.3",
"tools": [{
"type": "mcp",
"server_url": "https://your-server.example.com/mcp",
"server_label": "memory",
"server_description": "Persistent AI memory with recall and search",
"allowed_tools": ["memory_store", "memory_recall", "memory_search"]
}],
"input": "What do you remember about our project?"
}'
要件: HTTPSが必要です。
server_labelが必要です。Streamable HTTPおよびSSEトランスポートをサポートします。オプション:allowed_tools、authorization、headers。xAI SDK、OpenAI互換のResponses API、およびVoice Agent APIで動作します。xAIリモートMCPドキュメントを参照してください。
META Llama (Llama Stack経由)
Llama StackはMCPサーバーをツールグループとして登録します。標準化された設定ファイルパスはありません — デプロイメント固有です。
ai-memory serve --host 127.0.0.1 --port 9077
Python SDK:
client.toolgroups.register(
provider_id="model-context-protocol",
toolgroup_id="mcp::memory",
mcp_endpoint={"uri": "http://localhost:9077/sse"}
)
またはrun.yamlで宣言的に:
tool_groups:
- toolgroup_id: mcp::memory
provider_id: model-context-protocol
mcp_endpoint:
uri: "http://localhost:9077/sse"
注意: run.yamlでの
${env.VAR_NAME}補間をサポートします。トランスポートはSSEからStreamable HTTPに移行中です。Llama Stackツールドキュメントを参照してください。
OpenClaw
CLI経由で追加するか、OpenClaw設定を直接編集します。設定は mcp.servers を使用します(mcpServers ではありません)。
openclaw mcp set memory '{"command":"ai-memory","args":["--db","~/.local/share/ai-memory/memories.db","mcp","--tier","semantic"]}'
またはOpenClaw設定ファイルに追加します:
{
"mcp": {
"servers": {
"memory": {
"command": "ai-memory",
"args": ["--db", "~/.local/share/ai-memory/memories.db", "mcp", "--tier", "semantic"]
}
}
}
}
注意: OpenClaw は
mcp.serversキーを使用します (mcpServersではありません)。CLI 管理:openclaw mcp list、openclaw mcp show、openclaw mcp set、openclaw mcp unset。stdio、リモート URL、Streamable HTTP トランスポートをサポートします。インラインシークレットよりも--token-fileを優先してください。OpenClaw MCP ドキュメント を参照してください。
その他の MCP クライアント
ai-memory は stdio 経由で MCP (JSON-RPC 2.0) を通信します。クライアントを以下に向けてください:
command: ai-memory
args: ["--db", "/path/to/ai-memory.db", "mcp"]
HTTP 専用クライアントの場合は、REST API を起動します:
ai-memory serve
# 92 REST route registrations (78 unique URL paths) at http://127.0.0.1:9077/api/v1/
ステップ 4: 完了。テストします。
AI アシスタントを再起動します。MCP を使用している場合、セッションブート時にアドバタイズされる 7 ツールのデフォルトサーフェス (元の 5 つ + memory_load_family + memory_smart_load。呼び出し可能な 100 ツールのうち他の 93 ツールは --profile または memory_capabilities --include-schema 経由でオンデマンドでロードされます) が利用可能になります。「私の好きな言語は Rust であるという記憶を保存して」と尋ねてください。次に新しい会話で「私の好きな言語は何ですか?」と尋ねると、記憶しています。
モバイルプラットフォームサポート (v0.7.0 Posture-1a)
ai-memory は、標準の Rust モバイルクロスコンパイルパスを介して iOS および Android に移植可能です。v0.7.0 では、両方のターゲットに対して 3 段階のエスカレーションレベルで CI カバレッジを提供します:
| レイヤー | カバレッジ | CI ワークフロー |
|---|---|---|
| レイヤー 1 — クロスコンパイル | cargo check --target aarch64-apple-ios --no-default-features --features sqlite-bundled --lib と対応する Android クロスコンパイルが、release/** へのすべての PR + プッシュで実行されます。モバイルのビットロットリスクの約 80% を捕捉します (モバイル移植性を損なうクレートの更新はここで表面化します)。 | .github/workflows/ci.yml — mobile-cross-compile ジョブ |
| レイヤー 2 — リリースアーティファクト | リリースタグのカットにより、ai-memory-ios.xcframework.tar.gz (xcodebuild -create-xcframework 経由の iOS デバイス + シミュレータースライス) と ai-memory-android.tar.gz (jniLibs/<abi>/ レイアウトの Android arm64 / armv7 / x86_64 / x86 .so バンドル) が生成されます。 | .github/workflows/release.yml — mobile-ios + mobile-android ジョブ |
| レイヤー 3 — ランタイムテスト | スコープ付きの約 50 テストサブセット (ファイルシステムサンドボックス、デバイス上の SQLite FTS5、HNSW CPU リコール、エンベッダー CPU パス、LLM クライアント TLS) が、すべての release/** プッシュ + 手動 workflow_dispatch で iOS シミュレーターに対して実行されます。Android エミュレーター arm は release/** プッシュ + workflow_dispatch でのみ実行されます。選択理由: tests/mobile/README.md。 | .github/workflows/mobile-runtime.yml |
v0.7.0 でのステータス: レイヤー 1 は出荷ゲートです — タグカット前にモバイルクロスコンパイルが GREEN である必要があります。レイヤー 2 (リリースアーティファクト) は BUILD パイプライン + アーティファクトレイアウトを出荷します。C 呼び出し可能な FFI サーフェス自体は v0.7.x のフォローアップで提供されます。レイヤー 3 は、すべての release/** プッシュでスコープ付きテストサブセットを実行します。
リリースアーティファクトの利用:
- iOS — v0.7.x リリースページから
ai-memory-ios.xcframework.tar.gzをダウンロードし、解凍して、AiMemory.xcframeworkを Xcode プロジェクトの「Frameworks, Libraries, and Embedded Content」にドラッグします。 - Android — v0.7.x リリースページから
ai-memory-android.tar.gzをダウンロードし、解凍して、jniLibs/ツリーをアプリモジュールのsrc/main/jniLibs/にコピーします。
モバイルアーティファクトは、公開されるすべての v0.7.x リリースの一部でもあります。Homebrew フォーミュラ + APT/RPM パッケージ (デスクトップバイナリを出荷) には、モバイルダウンロードへのリンクが記載されています。CI 実装の履歴については、issue #1068 を参照してください。
クイックスタート
ゼロから動作するメモリまで 2 分以内で。
1. インストール
curl -fsSL https://raw.githubusercontent.com/alphaonedev/ai-memory-mcp/main/install.sh | sh
2. MCP の設定 (Claude Code の例 — 他のプラットフォームでも同様に動作します)
~/.claude.json にマージ:
{
"mcpServers": {
"memory": {
"command": "ai-memory",
"args": ["--db", "~/.claude/ai-memory.db", "mcp", "--tier", "semantic"]
}
}
}
3. 最初のメモリを保存
ai-memory store -T "Project uses PostgreSQL 15" -c "Main DB is PG 15 with pgvector." --tier long
4. それを呼び出す
ai-memory recall "database"
5. 統計を確認
ai-memory stats
6. AI で使用する。 AI クライアントを再起動します。これで、MCP 経由でブート時にアドバタイズされる 7 つのデフォルトメモリツール (ランタイム拡張または --profile full 経由で到達可能な 101 のアドバタイズエントリ) が利用可能になり、会話中にネイティブにメモリを保存および呼び出すことができます。
SDK
MCP / HTTP / CLI サーフェスに加えて、ai-memory は HTTP クライアントおよびヘルパーユーティリティ (例: v0.6.4+ デーモンでのランタイムプロファイルアサーション用の requireProfile) 用のファーストパーティ言語 SDK を出荷します。
TypeScript / JavaScript — npm の @alphaone/ai-memory
npm install @alphaone/ai-memory
Python — PyPI の ai-memory-mcp (インポート名は ai_memory のままです)
pip install ai-memory-mcp
from ai_memory import AiMemoryClient, require_profile
with AiMemoryClient(base_url="http://127.0.0.1:9077", api_key="...") as client:
require_profile(client, "graph") # raises ProfileNotLoaded on miss
両方の SDK はサーバーとバージョン管理されています (0.9.0 は ai-memory 0.9.0 と一致します)。v0.6.4+ デーモンはプロファイルコントラクトを強制します。v0.6.4 より前のデーモンは、SDK のアップグレードが古いサーバーを壊さないように、許容的な警告と続行にフォールバックします。ソースは sdk/typescript/ と sdk/python/ にあります。
機能
AI アシスタントは会話間ですべてを忘れます。ai-memory はそれを修正します。
これは MCP (Model Context Protocol) ツールサーバーとして実行されます — AI がネイティブに通信するバックグラウンドプロセスです。AI が重要なことを学習すると、それを保存します。コンテキストが必要な場合は、6 要素スコアリングアルゴリズムによってランク付けされた関連メモリを呼び出します。メモリは 3 つの層に存在します:
- 短期 (デフォルト 6 時間、設定可能) — 現在のデバッグ状態などの使い捨てコンテキスト
- 中期 (デフォルト 7 日間、設定可能) — スプリントの目標や最近の決定などの作業知識
- 長期 (永続的) — アーキテクチャ、ユーザー設定、苦労して得た教訓
アクセスされ続けるメモリは、中期から長期に自動的に昇格します。各呼び出しは TTL を延長します。優先度は使用とともに増加します。システムは自己管理型です。
MCP に加えて、ai-memory は完全な HTTP REST API (ポート 9077 で 92 ルート登録 / 78 一意の URL パス) と完全な CLI (--features sal または --features sal-postgres の下に 89 のサブコマンド。デフォルトビルドでは 87。クロスセッションコンテキスト再水和のための #1389 後の L2 RecoverPreviousSession + ai-memory expand クエリ拡張サーフェスのための #1443 Expand + ai-memory reembed ベクトル空間移行サーフェスのための #1598 Reembed。SSOT は ai_memory::EXPECTED_CLI_SUBCOMMANDS_{DEFAULT,SAL} + 機械的な tests/cli_subcommand_count_invariant.rs パリティテストによって固定) を公開し、直接対話、スクリプト作成、および任意の AI プラットフォームやツールとの統合を可能にします。
機能
コア
- MCP ツールサーバー — stdio JSON-RPC 経由の 101 ツール (フルプロファイル)、任意の MCP クライアントと互換性あり
- 3 層メモリ — 短期 (デフォルト TTL 6h)、中期 (デフォルト TTL 7d)、長期 (永続的) — TTL は設定可能
- 全文検索 — ランク付き検索を備えた SQLite FTS5
- ハイブリッド呼び出し — FTS5 キーワード + コサイン類似度と適応型ブレンディング: セマンティックの重みは、埋め込みが長いテキストで情報を失うため、0.50 (短いコンテンツ) → 0.15 (長いコンテンツ) と変化します
- 6 要素呼び出しスコアリング — FTS 関連性 + 優先度 + アクセス頻度 + 信頼度 + 層ブースト + 最新性減衰
- 自動昇格 — 5 回以上アクセスされたメモリは中期から長期に昇格
- TTL 延長 — 各呼び出しで有効期限を延長 (短期 +1h、中期 +1d)
- 優先度強化 — 10 回のアクセスごとに +1 (最大 10)
- 矛盾検出 — 既存のメモリと矛盾するメモリを保存するときに警告
- 重複排除 — タイトル+名前空間でのアップサート、層は決してダウングレードされない
- 信頼度スコアリング — ランキングに考慮される 0.0-1.0 の確実性
組織化
- 名前空間 — プロジェクトごとにメモリを分離 (git リモートから自動検出)
- メモリリンク — 型付きリレーション: related_to、supersedes、contradicts、derived_from、reflects_on (再帰学習タスク 1/8)、derives_from (WT-1-A 原子化)、decomposes_into、depends_on、advances — v0.8.0 で 9 つのバリアント
- 統合 — 複数のメモリを 1 つの長期サマリーにマージ
- 自動統合 — 名前空間+タグでグループ化し、しきい値を超えるグループを自動マージ
- 矛盾解決 — あるメモリを別のメモリに取って代わるものとしてマークし、敗者を降格
- パターンによる忘却 — 名前空間 + FTS パターン + 層による一括削除
- ソース追跡 — 発信元を追跡: user、claude、hook、api、cli、import、consolidation、system
- エージェント ID (NHI) — すべてのメモリは
metadata.agent_id(主張された ID) を持ち、更新/重複排除/インポート/同期/統合にわたって多層防御の不変性を備えます。list/searchをエージェントでフィルタリング - タグ付け — フィルターサポート付きのカンマ区切りタグ
インターフェース
- 92 HTTP ルート (78 一意のパス) — 127.0.0.1:9077 での完全な REST API (任意の AI またはツールで動作)
--features salまたは--features sal-postgresの下に 89 CLI サブコマンド (デフォルトビルドでは 87) — 同一機能を備えた完全な CLI- フルプロファイルで 101 MCP ツール (デフォルト 7。
Profile::full().expected_tool_count()に対して検証済み) — 任意の MCP 互換 AI とのネイティブ統合 - インタラクティブ REPL シェル — カラー出力付きの recall、search、list、get、stats、namespaces、delete
- JSON 出力 — すべての CLI コマンドでの
--jsonフラグ - 分散コーディネーション (v0.8.0 Pillar-1 + Pillar-2) — アクション DAG (
memory_action_*)、単一ホルダーリース (memory_lease_*)、Ed25519 署名付きシグナル (memory_signal_*)、証明付きチェックポイント (memory_checkpoint_*)、パラメーター化されたルーチン (memory_routine_*)、および Goal/Plan/Step 型付き認知ライフサイクル。docs/coordination.mdを参照してください。
運用
- マルチノード同期 — データベースファイル間の pull、push、または双方向マージ
- インポート/エクスポート — メモリリンクを保持する完全な JSON ラウンドトリップ
- ガベージコレクション — 30 分ごとの自動バックグラウンド有効期限切れ
- グレースフルシャットダウン — SIGTERM/SIGINT がクリーン終了のために WAL をチェックポイント
- ディープヘルスチェック — DB アクセシビリティと FTS5 整合性を検証
- シェル補完 — bash、zsh、fish
- マニュアルページ —
ai-memory manが roff を stdout に生成 - 時間フィルター — list および search での
--since/--until - 人間が読める経過時間 — CLI 出力での「2h ago」、「3d ago」
- カラー CLI 出力 — ANSI 層ラベル (赤/黄/緑)、優先度バー、太字タイトル、シアン名前空間
品質
- 全サーフェスで約 10,000 テスト —
src/の下に約 6,712#[test]/#[tokio::test]属性 (5,759#[test]+ 953#[tokio::test])、さらにtests/の下に約 3,362 (2,138#[test]+ 1,224#[tokio::test])。v0.6.4 時代の約 2,400 テストベースライン (1,960 lib + 211 integration + 16 mcp_integration + 4 webhook_http_parity + 16 recipe_contract + 他のバイナリターゲット全体で約 150) から成長。行カバレッジは ≥92% プロジェクトバー を上回って維持。v0.6.4 のネット新規モジュールは 100% (sizes.rs)、99.50% (profile.rs)、97.58% (cli/audit.rs)、97.05% (cli/doctor.rs)、92.56% (handlers.rs)、92.26% (cli/install.rs)。v0.6.3.x ベースライン (1,809 / 93.08% および 1,886 / 93.84%) は 証拠ページ で凍結されたままです。v0.6.4 メトリクスはリリースノートと テストハブキャンペーン にあります。経験的 NHI 発見受け入れは、Discovery Gate (T1–T4 マトリックス vs. ライブ xAI Grok 4.3、6/6 PASS、GATE GREEN) によって個別に証明されています。 - LongMemEval ベンチマーク — ICLR 2025 LongMemEval-S データセットで 97.0% R@5 純粋 FTS5 キーワード (LLM 非依存、2.2 秒、232 q/s、API コストゼロ)。現行世代 Gemma 4 モデルを使用した LLM クエリ拡張は 97.2% R@5 / 99.6% R@10 / 99.8% R@20 を測定 (クラウド API 会場。#1975 により、過去の
gemma3:4b97.8% の数値は見出しとして廃止)。ベンチマーク詳細 を参照してください。 - MCP プロンプト —
recall-firstおよびmemory-workflowプロンプトは、AI クライアントにメモリをプロアクティブに使用するように教えます - TOON デフォルト — recall/list/search 応答はデフォルトで TOON コンパクトを使用 (JSON より 79% 小さい)
- Criterion ベンチマーク — 1K スケールでの挿入、呼び出し、検索
- GitHub Actions CI/CD — Ubuntu + macOS での fmt、clippy、test、build、タグでのリリース
カバレッジ下限(ハードCIゲート)
Code Coverage ジョブは必須ステータスチェックです。CIはすべてのPRで2つの不変条件を再確認します:絶対下限 >= 90% 行カバレッジ(壊滅的回帰防止策、現在の測定値を最も近い5%単位で切り捨てて設定)、および.coverage-baselineに固定された値に対するラチェット(0.5%の許容範囲付き、日々の強制)。カバレッジを向上させるPRは、同じコミットでベースラインファイルを更新し、将来のPRが新しい下限の恩恵を受けられるようにする必要があります。0.5%を超えて後退するPRはマージがブロックされます。現在の測定値: 93.13% 行。
トークン予算ゲート(ハードCIゲート、v0.7 C5)
token-budget ワークフローは必須ステータスチェックです。すべてのPRに対して、cl100k_baseで測定された3つの不変条件を強制します:
- ツールごとの上限1500トークン -- 単一のMCPツールのシリアル化されたスキーマ(名前 + 説明 + inputSchema)が1500 cl100k_baseトークンを超えてはなりません。
- フルプロファイルの健全性範囲(5K-8K) -- v0.6.4のバックストップ。異常な縮小(ツールの偶発的な削除)を検出するために維持されます。
- フルプロファイルのハード上限(v0.7 C5、D1.6/D1.7後に引き上げ) --
--profile full下のトリミングされたtools/listペイロードは、11,000 cl100k_baseトークン(tests/token_budget_guard.rsのTRIMMED_FULL_PROFILE_CEILING_TOKENS;当初のC5目標は、D1.6以前の手書きスキーマに対して3500でした — schemars由来のD1.6/D1.7拡張により固定上限が引き上げられました)を超えてはなりません。C2(ドキュメントフィールドの分割)、C3(繰り返しスキーマボイラープレートの折りたたみ)、C4(めったに使用されないオプションパラメータの非表示)が当初の圧縮を推進しました。このゲートは、サーフェスを拡大する将来のPRに対して、他の場所で予算を削減することを強制します。ツールごとのコストを確認するにはai-memory doctor --tokens --raw-tableを検査してください。.github/workflows/token-budget.ymlおよびdocs/v0.7/schema-compaction-audit.mdを参照してください。
MLおよびLLM依存関係(セマンティックティア以上)
- candle-core, candle-nn, candle-transformers -- ネイティブRust推論用のHugging Face Candle MLフレームワーク
- hf-hub -- Hugging Face Hubからモデルをダウンロード
- tokenizers -- テキスト前処理用のHugging Faceトークナイザー
- instant-distance -- 近似最近傍探索
- reqwest -- LLMバックエンド通信用HTTPクライアント(スマート/自律ティア — #1067に基づく任意のプロバイダー: Ollama、xAI、OpenAI、Anthropic、Gemini、DeepSeek、Kimi、Qwen、Mistral、Groq、Together、Cerebras、OpenRouter、Fireworks、LMStudio、vLLM、llama.cppサーバー)
アーキテクチャ
ベンチマーク
ICLR 2025 LongMemEval-S データセット(500質問、6カテゴリ)で評価。純粋なFTS5キーワードティアは、2.2秒で97.0%のR@5を達成 — LLM非依存、完全ローカル、クラウドAPI呼び出しゼロ、コストゼロ。LLMクエリ拡張(スマートティア)は、現行世代のGemma 4モデル(クラウドAPI環境)で97.2%のR@5を計測。
ベンチマークモデルに関する注記(2026-07-10更新、#1975裁定): 過去の97.8% R@5スマートティアの数値はGemma 3 4B(現在もコンパイル済みデフォルト拡張モデル)で測定されたものであり、主要指標としては廃止されました。公開されている現行世代のアンカーは、測定されたOpenRouter Gemma 4実行です:97.2% R@5 / 99.6% R@10 / 99.8% R@20(2026-05-31、500質問、拡張失敗0)。ローカルOllama Gemma-4の数値は存在しません — 参照ベンチマークホストはCPUのみであり、有効なフルプロトコルローカル実行は実行不可能です(#1983参照)。ローカルGPUでの再実行はv1.0以降も未解決です。キーワードティアの97.0% R@5はLLM非依存であり、影響を受けません。
| ティア | R@5 | 速度 | 依存関係 |
|---|---|---|---|
| キーワード | 97.0% | 232 q/s | なし |
| セマンティック | 97.4% | 45 q/s | 埋め込みモデル (~100MB) |
| スマート | 97.2% (Gemma 4、API環境; 過去の gemma3:4b 97.8%) | 12 q/s | 任意のLLMバックエンド (例: ローカルOllama + Gemma; またはxAI Grok 4.3、OpenAI gpt-5、Anthropic Claude Opus 4.7、Gemini、DeepSeekなど #1067以降) |
パフォーマンス予算 (v0.6.4)
すべてのリリースには、ホットパス操作の公開されたp95/p99予算と、測定されたp95が予算を10%以上超過するPRを失敗させるCIゲートが付属しています。ターゲットはM4リファレンスハードウェア用に調整されています。完全な表と方法論はPERFORMANCE.mdにあります。
| 操作 | ターゲットp95 | ターゲットp99 |
|---|---|---|
memory_session_start (Claude Codeフック) | < 100 ms | < 200 ms |
memory_store (埋め込みなし) | < 20 ms | < 50 ms |
memory_search (FTS5) | < 100 ms | < 250 ms |
memory_recall (ホット、深さ=1) | < 50 ms | < 150 ms |
memory_kg_query (深さ ≤ 3) | < 100 ms | < 250 ms |
memory_kg_query (深さ ≤ 5) | < 250 ms | < 500 ms |
memory_kg_timeline | < 100 ms | < 250 ms |
同じワークロードをローカルで実行:
ai-memory bench # human-readable table
ai-memory bench --json # machine-parseable
基盤はv0.6.3.x → v0.6.4で変更されていません(quiet-tools リリースは、異なるホットパスではなく、より小さなデフォルトツールサーフェスを提供します)。ここでのp99ターゲットは、次の専用ソークウィンドウが保留中であるため、情報提供のままです。最新のソークエビデンスはテストハブにあります。
統合方法
MCP (プライマリ -- MCP互換AIプラットフォーム向け)
MCPは推奨される統合方法です。AIはデフォルトでアドバタイズされる7つのネイティブメモリツール(元の5つ + memory_load_family + memory_smart_load; 常時オンの memory_capabilities ブートストラップを含む)をグルーコードなしで利用できます。他の93の呼び出し可能なツール(101のアドバタイズされたエントリ — Profile::full().expected_tool_count() に対して検証され、src/mcp/registry.rs の const_count_matches_full_profile によって固定)は、--profile graph|admin|power|full または memory_capabilities --include-schema family=<name> を介したランタイム拡張を通じて引き続き到達可能です。AIプラットフォームの設定でMCPサーバーを構成します:
{
"mcpServers": {
"memory": {
"command": "ai-memory",
"args": ["--db", "~/.claude/ai-memory.db", "mcp"]
}
}
}
HTTP API (ユニバーサル -- 任意のAIまたはツール向け)
REST APIアクセス用にHTTPサーバーを起動します。HTTP呼び出しを行える任意のAI、スクリプト、または自動化がこれを使用できます:
ai-memory serve
# 92 REST route registrations (78 unique URL paths) at http://127.0.0.1:9077/api/v1/
CLI (ユニバーサル -- スクリプティングおよび直接使用向け)
CLIはスタンドアロンで、またはシェルコマンドを実行するAI統合のビルディングブロックとして機能します:
ai-memory store --tier long --title "Architecture decision" --content "We use PostgreSQL"
ai-memory recall "database choice"
ai-memory search "PostgreSQL"
機能ティア
ai-memoryは4つの機能ティアをサポートし、起動時に ai-memory mcp --tier <tier> で選択します。上位ティアはディスクとRAMを消費する代わりにML機能を追加します:
| ティア | リコール方法 | 追加機能 | 概算オーバーヘッド |
|---|---|---|---|
| キーワード | FTS5のみ | ベースライン101エントリサーフェス — ティアはアドバタイズされたツールサーフェスではなく、モデル/機能をゲートします | 0 MB |
| セマンティック | FTS5 + コサイン類似度 (ハイブリッド) | MiniLM-L6-v2埋め込み (384次元)、HNSWインデックス、セマンティックティア (101エントリサーフェスのサブセット) | ~256 MB |
| スマート | ハイブリッド + LLMクエリ拡張 | + nomic-embed-text (768次元) + LLM支援 memory_expand_query、memory_auto_tag、memory_detect_contradiction、完全な101エントリサーフェス。LLMプロバイダーは AI_MEMORY_LLM_BACKEND (#1067) を介してオペレーターが選択 — ローカルOllama、xAI、OpenAI、Anthropic、Gemini、DeepSeek、Kimi、Qwen、Mistral、Groq、Together、Cerebras、OpenRouter、Fireworks、LMStudio、vLLM、またはllama.cpp。 | ~1 GB (ローカルOllama) / ~0 GB (リモートAPI) |
| 自律 | ハイブリッド + LLM拡張 + クロスエンコーダーリランキング | + ニューラルクロスエンコーダー (ms-marco-MiniLM)、メモリリフレクション、完全な101エントリサーフェス。スマートティアと同じLLMプロバイダーの自由度。 | ~4 GB (ローカルOllama) / ~3 GB (リモートLLM、ローカルクロスエンコーダーのみ) |
機能マトリックス
すべての機能は、その最小ティアにマッピングされています。各ティアには、その下位ティアのすべての機能が含まれます。
| 機能 | キーワード | セマンティック | スマート | 自律 |
|---|---|---|---|---|
| 検索とリコール | ||||
| FTS5キーワード検索 | はい | はい | はい | はい |
| セマンティック埋め込み (コサイン類似度) | -- | はい | はい | はい |
| ハイブリッドリコール (FTS5 + コサイン、コンテンツ長に応じた適応型0.50→0.15セマンティック重み) | -- | はい | はい | はい |
| HNSW最近傍インデックス | -- | はい | はい | はい |
LLMクエリ拡張 (memory_expand_query) | -- | -- | はい | はい |
| ニューラルクロスエンコーダーリランキング | -- | -- | -- | はい |
| メモリ管理 | ||||
| 保存、更新、削除、昇格、リンク | はい | はい | はい | はい |
| 手動統合 | はい | はい | はい | はい |
| 自動統合 (LLM要約) | -- | -- | はい | はい |
自動タグ付け (memory_auto_tag) | -- | -- | はい | はい |
矛盾検出 (memory_detect_contradiction) | -- | -- | はい | はい |
| 自律メモリリフレクション | -- | -- | -- | はい |
| モデル | ||||
| 埋め込みモデル | -- | MiniLM-L6-v2 (384d) | nomic-embed-text (768d) | nomic-embed-text (768d) |
| 埋め込みバックエンドオーバーライド (#1598) | -- | 任意: ローカルOllama、APIベンダーエイリアス、またはセルフホストOpenAI互換 ([embeddings].backend / AI_MEMORY_EMBED_*) | 同じ | 同じ |
| LLM | -- | -- | オペレーター選択 (#1067) — デフォルト gemma3:4b ローカル; リモートエンドポイントはローカルフットプリントなし | オペレーター選択 (#1067) — デフォルト gemma3:4b ローカル; リモートエンドポイントはローカルフットプリントなし |
| リソース | ||||
| RAM | 0 MB | ~256 MB | ~1 GB | ~4 GB |
| 外部依存関係 | なし | なし | LLMバックエンド (Ollama / xAI / OpenAI / Anthropic / Gemini / DeepSeek / Kimi / Qwen / Mistral / Groq / Together / Cerebras / OpenRouter / Fireworks / LMStudio / vLLM / llama.cpp — #1067) | LLMバックエンド (スマートと同じ選択肢) |
公開MCPツール (--profile full で) 1 | 101 | 101 | 101 | 101 |
セマンティックティア(デフォルト)はCandle MLフレームワークをバンドルし、初回実行時にall-MiniLM-L6-v2モデル(~90 MB)をダウンロードします。スマートおよび自律ティアはLLMバックエンドを必要とします — #1067(v0.7.0)以降、それはローカル(Ollama、LMStudio、vLLM、llama.cppサーバー)または任意のOpenAI互換リモートエンドポイント(xAI、OpenAI、OpenAI shim経由のAnthropic、Google Gemini、DeepSeek、Kimi、Qwen、Mistral、Groq、Together、Cerebras、OpenRouter、Fireworks)にできます。選択は AI_MEMORY_LLM_BACKEND 環境変数によって行われます。ベンダーごとのAPIキーは XAI_API_KEY / OPENAI_API_KEY / ANTHROPIC_API_KEY / GEMINI_API_KEY / DEEPSEEK_API_KEY / MOONSHOT_API_KEY / DASHSCOPE_API_KEY / など、または標準の AI_MEMORY_LLM_API_KEY を介して設定します。
ティアはモデルではなく機能をゲートします — そして#1067(v0.7.0)以降、ティアはベンダーもゲートしません。 --tier フラグは、どのツールが公開されるかを制御します。LLMバックエンドとモデルは、AI_MEMORY_LLM_BACKEND + AI_MEMORY_LLM_MODEL 環境変数(または ~/.config/ai-memory/config.toml の標準 [llm] セクションを介して — v0.7.xエンタープライズスキーマと移行ツールについてはdocs/CONFIG_SCHEMA.mdを参照)を介して独立して設定可能です。例えば、自律ティア(完全な101エントリサーフェス + リランカー)をOpenAI互換エイリアス経由でxAI Grok 4に対して実行します:
# Quick path: env vars
export AI_MEMORY_LLM_BACKEND=xai
export AI_MEMORY_LLM_MODEL=grok-4.3
export XAI_API_KEY=xai-… # or AI_MEMORY_LLM_API_KEY
ai-memory mcp --tier autonomous
# Enterprise path: ~/.config/ai-memory/config.toml (v0.7.x schema v2, #1146)
schema_version = 2
tier = "autonomous"
[llm]
backend = "xai"
model = "grok-4.3"
base_url = "https://api.x.ai/v1"
api_key_env = "XAI_API_KEY" # mutually exclusive with api_key_file;
# inline `api_key = "..."` is REJECTED.
# Legacy v0.6.x shape — still works, deprecation WARN at load; run
# `ai-memory config migrate` to upgrade in place.
tier = "autonomous"
llm_model = "gemma3:4b" # default Ollama model at v0.7.0
--tier フラグはMCP引数で渡す必要があります — サーバーがAIクライアントによって起動される場合、config.toml ティア設定は使用されません。
# Semantic is the default tier
ai-memory mcp
# Keyword -- FTS5 only, no models
ai-memory mcp --tier keyword
# Semantic -- hybrid recall with embeddings (explicit)
ai-memory mcp --tier semantic
# Smart -- adds LLM-powered query expansion, auto-tagging, contradiction detection
ai-memory mcp --tier smart
# Autonomous -- adds cross-encoder reranking
ai-memory mcp --tier autonomous
memory_capabilities ツールは、アクティブなティア、ロードされたモデル、および利用可能な機能を実行時に報告します。
MCPツール
これらの101ツール(フルプロファイル。src/profile.rsの Profile::full().expected_tool_count() による正規のカウント)は、MCPサーバーとして構成された場合、任意のMCP互換AIで利用可能です(v0.6.4固定のエビデンスページには63ツールのベースラインがリストされています。以下の表は、ほとんどのクライアントが日常的に使用するコアサブセットを文書化しています):
| ツール | 説明 |
|---|---|
memory_store | 新しいメモリを保存(タイトル+名前空間で重複排除、矛盾を報告) |
memory_recall | コンテキストに関連するメモリを想起(ファジーOR検索、6つの要素でランク付け) |
memory_search | 完全なキーワード一致でメモリを検索(ANDセマンティクス) |
memory_list | オプションのフィルタ(名前空間、階層、タグ、日付範囲)でメモリを一覧表示 |
memory_get | IDで特定のメモリとそのリンクを取得 |
memory_update | IDで既存のメモリを更新(部分更新) |
memory_delete | IDでメモリを削除 |
memory_promote | メモリを長期に昇格(永続化、有効期限をクリア) |
memory_forget | パターン、名前空間、または階層による一括削除 |
memory_link | 2つのメモリ間に型付きリンクを作成 |
memory_get_links | メモリのすべてのリンクを取得 |
memory_consolidate | 複数のメモリを1つの長期サマリーにマージ |
memory_stats | メモリストアの統計情報を取得 |
memory_capabilities | アクティブな機能階層、ロードされたモデル、利用可能な機能を報告 |
memory_expand_query | LLMを使用して検索クエリを関連用語に拡張(smart+階層) |
memory_auto_tag | LLMを使用してメモリのタグを自動生成(smart+階層) |
memory_detect_contradiction | LLMを使用して2つのメモリが矛盾しているかチェック(smart+階層) |
memory_archive_list | アーカイブされたメモリを一覧表示(オプションの名前空間/階層/タグフィルタ付き) |
memory_archive_restore | アーカイブされたメモリをアクティブストアに復元 |
memory_archive_purge | フィルタに一致するアーカイブされたメモリを完全に削除 |
memory_archive_stats | アーカイブ統計情報を取得(階層、名前空間、経過時間別のカウント) |
HTTP API
127.0.0.1:9077 上に92のルート登録 / 78の一意なURLパス。ai-memory serve から開始します。以下の表は最も一般的に使用されるRESTエンドポイントを示しています。全容(ガバナンス、フェデレーション、サブスクリプション、ナレッジグラフ、クォータ、承認SSE)については docs/API_REFERENCE.md を参照してください。
セキュリティ: HTTPサーバーは127.0.0.1にバインドされ、デフォルトでは認証が設定されておらず、許可的なCORSが設定されています。すべてのリクエストに
x-api-keyヘッダーを要求するにはconfig.tomlでapi_keyを設定し(レガシーな?api_key=クエリパラメータ形式はv0.7.0で非推奨 — #1574)、キーなしでの起動を強制的に拒否するにはAI_MEMORY_REQUIRE_API_KEY=1を設定します(#1458)。認証なしでネットワークに公開しないでください(--tls-cert/--tls-keyまたはリバースプロキシ経由のTLSを推奨)。
| メソッド | エンドポイント | 説明 |
|---|---|---|
| GET | /api/v1/health | ヘルスチェック(DB + FTS5の整合性を検証) |
| GET | /api/v1/memories | メモリを一覧表示(名前空間、階層、タグ、since、until、limitをサポート) |
| POST | /api/v1/memories | メモリを作成 |
| POST | /api/v1/memories/bulk | メモリを一括作成(制限付き) |
| GET | /api/v1/memories/{id} | IDでメモリを取得 |
| PUT | /api/v1/memories/{id} | IDでメモリを更新 |
| DELETE | /api/v1/memories/{id} | IDでメモリを削除 |
| POST | /api/v1/memories/{id}/promote | メモリを長期に昇格 |
| GET | /api/v1/search | ANDキーワード検索 |
| GET | /api/v1/recall | コンテキストによる想起(クエリパラメータ付きGET) |
| POST | /api/v1/recall | コンテキストによる想起(JSONボディ付きPOST) |
| POST | /api/v1/forget | パターン/名前空間/階層による一括削除 |
| POST | /api/v1/consolidate | メモリを1つに統合 |
| POST | /api/v1/links | メモリ間にリンクを作成 |
| GET | /api/v1/links/{id} | メモリのリンクを取得 |
| GET | /api/v1/namespaces | すべての名前空間を一覧表示 |
| GET | /api/v1/stats | メモリストアの統計情報 |
| POST | /api/v1/gc | ガベージコレクションをトリガー |
| GET | /api/v1/export | すべてのメモリとリンクをJSONとしてエクスポート |
| POST | /api/v1/import | JSONからメモリとリンクをインポート |
| GET | /api/v1/archive | アーカイブされたメモリを一覧表示(オプションのフィルタ付き) |
| POST | /api/v1/archive/{id}/restore | アーカイブされたメモリをアクティブストアに復元 |
| DELETE | /api/v1/archive | フィルタに一致するアーカイブされたメモリを削除 |
| GET | /api/v1/archive/stats | アーカイブ統計情報(階層、名前空間、経過時間別のカウント) |
CLIコマンド
--features sal または --features sal-postgres の下に89のトップレベルサブコマンド(デフォルトビルドでは87。2つのバリアントの差は Migrate + SchemaInit で、どちらも src/daemon_runtime.rs::Command::{Migrate,SchemaInit} に従って #[cfg(feature = "sal")] で制御されます。v0.6.4では40でした)。任意のコマンドの詳細は ai-memory <command> --help を、全リストは ai-memory --help を実行してください。
| コマンド | 説明 |
|---|---|
mcp | stdio経由でMCPツールサーバーとして実行(主要な統合パス) |
serve | ポート9077でHTTPデーモンを起動 |
store | 新しいメモリを保存(タイトル+名前空間で重複排除) |
update | IDで既存のメモリを更新 |
recall | ランク付けされた結果と自動タッチ付きのファジーOR検索(ハイブリッド想起のための --tier をサポート)。パイプラインはリクエストごとに結果を50に制限します。 |
search | 正確なキーワード一致のためのAND検索。 |
get | IDで単一のメモリを取得(リンクを含む) |
list | フィルタ(名前空間、階層、タグ、日付範囲)でメモリをブラウズ。リクエストごとに最大1000アイテムに制限(LIST_MAX_LIMIT; HTTPのlist/bulkはさらに AI_MEMORY_MAX_PAGE_SIZE を尊重します)。 |
delete | IDでメモリを削除 |
promote | メモリを長期に昇格(有効期限をクリア) |
forget | パターン+名前空間+階層による一括削除 |
link | 2つのメモリをリンク(related_to, supersedes, contradicts, derived_from) |
consolidate | 複数のメモリを1つの長期サマリーにマージ |
resolve | 矛盾を解決:勝者をマークし、敗者を降格 |
shell | カラー出力付きのインタラクティブREPL |
sync | 2つのデータベースファイル間でメモリを同期(pull/push/merge) |
auto-consolidate | 名前空間+タグでメモリをグループ化し、しきい値を超えるグループをマージ |
gc | 期限切れメモリのガベージコレクションを実行 |
stats | メモリ状態の概要(カウント、階層、名前空間、リンク、DBサイズ) |
namespaces | メモリカウント付きですべての名前空間を一覧表示 |
export | すべてのメモリとリンクをJSONとしてエクスポート |
import | JSONからメモリとリンクをインポート(stdin) |
completions | シェル補完を生成(bash, zsh, fish) |
man | roff manページをstdoutに生成 |
mine | 過去の会話(Claude、ChatGPT、Slackエクスポート)からメモリをインポート |
archive | メモリアーカイブを管理(一覧表示、復元、削除、統計) |
トップレベルの ai-memory バイナリは、グローバルフラグも受け付けます:
| フラグ | 説明 |
|---|---|
--db <path> | データベースパス(デフォルト: ai-memory.db、または $AI_MEMORY_DB) |
--json | すべてのコマンドでJSON出力(機械可読な出力) |
store サブコマンドは追加のフラグを受け付けます:
| フラグ | 説明 |
|---|---|
--source / -S | このメモリを作成した主体(user, nhi, hook, api, cli, import, consolidation, system)。デフォルト: cli。後方互換性のため "claude" も受け付けます(src/validate.rs::VALID_SOURCES 参照) |
--expires-at | RFC3339形式の有効期限タイムスタンプ |
--ttl-secs | 秒単位のTTL(--expires-at の代替) |
mcp サブコマンドは追加のフラグを受け付けます:
| フラグ | 説明 |
|---|---|
--tier <keyword|semantic|smart|autonomous> | 機能階層(デフォルト: semantic)。機能階層 を参照。 |
想起スコアリング
すべての想起クエリは、6つの要素でメモリをランク付けします:
score = (fts_relevance * -1)
+ (priority * 0.5)
+ (MIN(access_count, 50) * 0.1)
+ (confidence * 2.0)
+ tier_boost
+ recency_decay
| 要素 | 重み | 備考 |
|---|---|---|
| FTS関連性 | -1.0x | SQLite FTS5ランク(負の値 = より良い一致) |
| 優先度 | 0.5x | ユーザーが割り当てた1-10のスケール |
| アクセス数 | 0.1x | 想起された頻度(スコアリング上限は50) |
| 信頼度 | 2.0x | 0.0-1.0の確信度スコア |
| 階層ブースト | +3.0 / +1.0 / +0.0 | long / mid / short |
| 新しさの減衰 | 1/(1 + days*0.1) | 最近のメモリほど高くランク付け |
メモリ階層
| 階層 | TTL | ユースケース | 例 |
|---|---|---|---|
short | 6時間(設定可能) | 使い捨てのコンテキスト | 現在のデバッグ状態、一時変数、エラートレース |
mid | 7日間(設定可能) | 作業知識 | スプリントの目標、最近の決定、現在のブランチの目的 |
long | 永続 | 苦労して得た知識 | アーキテクチャ、ユーザー設定、修正、規約 |
自動動作
- 想起時のTTL延長: shortメモリは+1時間、midメモリは+1日
- 自動昇格: 5回以上アクセスされたmid階層のメモリはlongに昇格(有効期限クリア)
- 優先度強化: 10回アクセスごとに優先度が1増加(上限10)
- 矛盾検出: 新しいメモリが同じ名前空間の既存のメモリと競合する場合に警告
- 重複排除: タイトル+名前空間でupsert。更新時に階層がダウングレードされることはありません
設定可能なTTL
デフォルトのTTL(shortは6時間、midは7日間)は、~/.config/ai-memory/config.toml の [ttl] セクションで上書きできます:
[ttl]
short_ttl_secs = 21600 # short-tier TTL in seconds (default: 21600 = 6 hours)
mid_ttl_secs = 604800 # mid-tier TTL in seconds (default: 604800 = 7 days)
long_ttl_secs = 0 # long-tier TTL in seconds (default: 0 = never expires)
short_extend_secs = 3600 # TTL extension on recall for short-tier memories in seconds (default: 3600 = +1h)
mid_extend_secs = 86400 # TTL extension on recall for mid-tier memories in seconds (default: 86400 = +1d)
5つのフィールドはすべてオプションです。省略するとデフォルトが維持されます。値を0に設定すると、その階層の有効期限が無効になります。値は最大10年に制限され、負の延長値は0に制限されます。
注意: 設定はプロセス起動時に一度だけ読み込まれます。
config.tomlへの変更を有効にするには、ai-memoryプロセス(MCPサーバー、HTTPデーモン、またはCLI)の再起動が必要です。
アーカイブ
ガベージコレクションがメモリを期限切れにする際、完全に削除する代わりにアーカイブすることができます。アーカイブされたメモリは別のストアに移動され、後で参照、復元、または完全に削除できます。
設定
~/.config/ai-memory/config.toml でアーカイブを有効にします:
archive_on_gc = true # archive expired memories instead of deleting them (default: true)
CLIコマンド
archive サブコマンドでアーカイブを管理します:
ai-memory archive list # list archived memories
ai-memory archive list --namespace my-project # filter by namespace
ai-memory archive restore <id> # restore an archived memory to active store
ai-memory archive purge --older-than-days 90 # permanently delete archives older than 90 days
ai-memory archive stats # show archive statistics
注意: 復元されたメモリの
expires_atはクリアされます(次のTTL割り当てまで永続化されます)。
MCPツール
MCPクライアントは4つのアーカイブツールを利用できます:
| ツール | 説明 |
|---|---|
memory_archive_list | アーカイブされたメモリを一覧表示(オプションの名前空間/階層/タグフィルタ付き) |
memory_archive_restore | アーカイブされたメモリをアクティブストアに復元 |
memory_archive_purge | フィルタに一致するアーカイブされたメモリを完全に削除 |
memory_archive_stats | アーカイブ統計情報を取得(階層、名前空間、経過時間別のカウント) |
HTTPエンドポイント
| メソッド | エンドポイント | 説明 |
|---|---|---|
| GET | /api/v1/archive | アーカイブされたメモリを一覧表示(オプションのフィルタ付き) |
| POST | /api/v1/archive/{id}/restore | アーカイブされたメモリをアクティブストアに復元 |
| DELETE | /api/v1/archive | フィルタに一致するアーカイブされたメモリを削除 |
| GET | /api/v1/archive/stats | アーカイブ統計情報(階層、名前空間、経過時間別のカウント) |
セキュリティ
ai-memoryは、すべての入力パスにわたる堅牢化を含みます:
- トランザクション安全性 -- すべての複数ステップにわたるデータベース操作はトランザクションを使用し、失敗時に部分的な書き込みは発生しません
- FTSインジェクション防止 -- ユーザー入力はFTS5クエリに到達する前にサニタイズされ、特殊文字はエスケープされます
- エラーサニタイズ -- 内部データベースパスやシステム詳細はエラーレスポンスから除去され、クライアントには構造化されたエラータイプ(NOT_FOUND、VALIDATION_FAILED、DATABASE_ERROR、CONFLICT)が表示されます
- ボディサイズ制限 -- HTTPリクエストボディはAxumのDefaultBodyLimitにより50MBに制限されます
- バルク操作制限 -- バルク作成エンドポイントはリソース枯渇を防ぐため最大バッチサイズを強制します
- CORS -- localhost開発ワークフロー向けに寛容なCORSレイヤーが有効化されています
- 入力検証 -- すべての書き込みパスで、タイトル長、コンテンツ長、名前空間形式、ソース値、優先度範囲(1-10)、信頼度範囲(0.0-1.0)、タグ形式、階層値、リレーションタイプ、ID形式が検証されます
- 同期時のリンク検証 -- 同期操作中のインポート前に、すべてのリンクが検証されます(両方のID、リレーションタイプ、自己リンクなし)
- スレッドセーフな色 -- 端末の色検出は安全な同時アクセスのために
AtomicBoolを使用します - ローカルのみのHTTP -- HTTPサーバーはデフォルトで127.0.0.1にバインドされ、ネットワークに公開されません
- WALモード -- 書き込み中の安全な同時読み取りのためのSQLite先行書き込みログ
ドキュメント
| ガイド | 対象者 |
|---|---|
| Changelog v0.9.0 | 現在のリリース (secure-default hardening) — デフォルトでstore-pathエージェント証明が必要 (#1751)、デュアルMCP+HTTPフック強制ゲート (#1885/#1924)、スキーマv78 |
| リリースノート v0.8.0 | 以前のリリース (distributed-coordination) — コーディネーション基盤、型付き認知、フェデレーション強化、ガバナンス強制、スキーマv58→v70 |
| コーディネーションツールリファレンス | v0.8.0のアクション/リース/シグナル/チェックポイント/ルーチンプリミティブ (memory_action_* / _lease_* / _signal_* / _checkpoint_* / _routine_*) |
| 移行ガイド v0.7 | v0.6.xからのアップグレード (attested-cortex、フック、トランスクリプト、AGE、権限、G1継承修正をカバー) |
| v0.7の新機能 | attested-cortex基盤のビジュアルウォークスルー |
attested-cortex RFC | v0.7の4つのアーキテクチャ決定に関する設計根拠 |
| v0.7互換性マトリックス | 機能ごとのデフォルトvsオプトインマトリックス |
| インストールガイド | 実行開始 (複数のAIプラットフォーム向けMCPセットアップを含む) |
| ユーザーガイド | 永続メモリを求めるAIアシスタントユーザー向け |
| 開発者ガイド | ai-memoryの構築または貢献 |
| 管理者ガイド | デプロイ、監視、トラブルシューティング |
| エンジニアリング標準 | コード、テスト、セキュリティ、リリース標準 (正式) |
| AI開発者ワークフロー | このリポジトリに貢献するAIコーディングエージェント向けのステップバイステップワークフロー |
| AI開発者ガバナンス標準 | AI参加ポリシー: 権限、帰属、レビュー、監査 |
| GitHub Pages | アニメーション図付きのビジュアル概要 |
ライセンス
Copyright 2026 AlphaOne LLC。
Apache License, Version 2.0 (以下「ライセンス」) に基づいてライセンスされています。 本ファイルは、ライセンスに準拠する場合を除き、使用できません。 ライセンスのコピーは以下で入手できます。
適用される法律で要求される場合または書面で合意した場合を除き、ライセンスに基づいて配布されるソフトウェアは、 「現状有姿」で提供され、明示または黙示を問わず、いかなる保証も条件も付されません。 ライセンスに基づく権限と制限を規定する特定の言語については、ライセンスを参照してください。
Footnotes
-
MCP ツールサーフェスはリコールティアと直交しています — すべてのティアは
--profile fullで同じ101ツールを認識します(デフォルトの--profile coreは、ティアに関係なく起動時に8つをアドバタイズします — 7つのCoreファミリツールと常時オンのmemory_capabilitiesブートストラップ。他の93はオンデマンドでロードされます)。ティアがゲートするのはモデル(埋め込み、クロスエンコーダー、LLM)と機能動作(コサイン類似度、LLM拡張、リランキング)であり、アドバタイズされたツール数ではありません。src/mcp/registry.rsのProfile::full().expected_tool_count()+const_count_matches_full_profileによって固定。 ↩