agentcairn
公式ローカルファーストのエージェントメモリ:プレーンMarkdownのObsidianボールトを真実の源泉とし、再構築可能なDuckDBインデックスによりBM25+ベクトル+グラフのハイブリッド検索を実現します。
Agentcairn MCPで何ができますか?
- 関連記憶の呼び出し — アシスタントにMarkdown保管庫から永続的な事実を
recallするよう依頼し、プロジェクトを考慮したランキングと引用付きパーマリンクを取得します。 - 新しい知識の保存 —
rememberを使用してMarkdownノートを原子的に書き込み、インデックスを更新し、即座に呼び出し可能にします。 - Claude Codeメモリのインポート —
cairn import claude-memoryを実行して、既存のMEMORY.mdファイルをプレビューまたは共有保管庫にプロvenance付きで移行します。 - トランスクリプトのスイープによる取得 —
cairn sweepをトリガーして、サポートされているトランスクリプトストアを帯域外で読み取り、永続的なコンテキストを保管庫に蒸留します。 - 保管庫の健全性管理 —
cairn doctorまたはcairn index-statusを実行して保管庫の整合性を検証し、cairn reindexで使い捨てのDuckDBキャッシュを再構築します。 - 関連ノートのリンク —
cairn linkを実行して、[[wikilinks]]に基づく決定論的なrelated:ネイバーを書き込み、Obsidianネイティブのグラフを実現します。
ドキュメント
サポートされているコーディングエージェント間で共有される、永続的な単一のメモリ。
あなたのMarkdownボールトが正規の情報源です。DuckDBは置き換え可能な検索キャッシュです。
ウェブサイト · PyPI · Obsidianコンパニオン · ベンチマーク
ケルン(石塚)は、次に来る者のために道しるべを示します。agentcairn はコーディングエージェントに対して同じことを行います。使用するツールから永続的なコンテキストを取得し、それを検証可能なMarkdownとして出典付きで保存し、別のエージェントが必要としたときに最も関連性の高い部分だけを呼び出します。
検証可能な証拠
メモリは管理コンソールやホスト型データベースの背後に隠されていません。別個の agentcairn-obsidian コンパニオンは、エージェントと同じMarkdownファイルを読み取り、出典、鮮度、重要度、置換、および related: リンクを公開します。
Obsidian内の実際のagentcairnボールト。リストはファイルに対するビューであり、2番目のメモリストアではありません。
ドッグフードスナップショット · 2026-07-15。 417回のローカル呼び出しにわたって、メンテナのボールトは毎回ボールト全体を読み込むよりも
262× smallerコンテキストを返しました。これは合計で推定136.6M tokens of full-vault context avoidedに相当します。トークン数は1トークンあたり約4文字を使用しています。これは請求対象トークンの節約ではなく、agentcairnはテレメトリを送信しません。
インストール
最も簡単な方法は、ファーストクラスのプラグインを使用することです。MCPサーバー、メモリスキル、ホスト固有のアンビエントフックがバンドルされており、別途agentcairnパッケージのインストールは不要です。プラグインは uvx を通じて起動するため、uvx --version がまだ利用できない場合は、先に uv をインストールしてください。
Claude Code
claude plugin marketplace add ccf/agentcairn
claude plugin install agentcairn@agentcairn
Claude Codeは、ターンごとのプロジェクトスコープの呼び出し、セッション/コンパクションキャプチャ、および /agentcairn:recall、/agentcairn:remember、/agentcairn:memory、/agentcairn:savings、/agentcairn:ingest コマンドを取得します。
Codex
codex plugin marketplace add ccf/agentcairn
codex plugin add agentcairn@agentcairn
Codexは、バンドルされたMCPツールとメモリスキル、ライブ検証されたSessionStart呼び出し、および cairn sweep を帯域外バックストップとするSessionEndキャプチャを取得します。
エージェント支援セットアップ
すでに skills.sh または find-skills ワークフローを使用していますか?公開セットアップアシスタントをインストールしてください:
npx skills add ccf/agentcairn --skill agentcairn-setup -g
次にエージェントに依頼してください:Use $agentcairn-setup to preview, install, and verify AgentCairn for this coding agent.
これはセットアップガイダンスのみをインストールします。AgentCairnランタイム、MCPサーバー、プラグイン、フックはインストールしません。アシスタントはそれらの変更をAgentCairnのプレビュー優先のネイティブインストーラーに委任し、結果の統合を検証します。上記のClaude CodeおよびCodexプラグインコマンドが最も簡単な方法です。
デフォルトのボールトは ~/agentcairn で、初回使用時に作成されます。新しい空のボールトにはまだ呼び出す価値のあるものがないため、ループ全体を明示的に証明してください:
You → Remember this durable fact: staging deploys use blue-green.
Agent → written and indexed
You → Recall the staging deploy strategy.
Agent → staging deploys use blue-green. ↳ <memory permalink>
remember はMarkdownノートとインデックスエントリを一緒に書き込むため、即時の呼び出しが契約の一部です。最初のローカル実行では、設定された埋め込み/再ランキングモデルをダウンロードしてウォームアップする場合があります。
契約
| 約束 | 実際の意味 |
|---|---|
| Markdownが正規 | ノート、フロントマター、および [[wikilinks]] が永続的なメモリです。事実を手動で編集してください。次の調整済み読み取りでそれが尊重されます。 |
| インデックスは使い捨て | DuckDBは派生キャッシュです。削除または再構築してもMarkdownボールトは削除されません。 |
| 1つのボールトがエージェントを横断 | サポートされているホストは、ツールごとに分離されたメモリを構築する代わりに、同じ設定済みボールトを共有します。 |
| 履歴は非損失 | 派生ノートは保存されたノートを静かに消去しません。置換および期限切れの事実は検査可能なままであり、非表示ではなく降格されます。 |
| すべての結果にコンテキスト | プロジェクト、有効性ステータス、パーマリンクが呼び出しとともに移動するため、エージェントは現在のローカル証拠とクロスプロジェクト履歴を区別できます。 |
仕組み
- キャプチャ: ホストフックは即時性を向上させます。
cairn sweepは、永続的なバックストップとして、サポートされているトランスクリプトストアを帯域外で読み取ります。AgentCairnは、認識された資格情報を編集し、重複排除し、重要度でゲートし、自動化されたプレーンテキスト書き込みの前に蒸留します。 - 調整: 最初の読み取りトランザクションは、ボールトスコープのインデックスをMarkdownと同期させます。再構築が失敗した場合、最後の良好なキャッシュが保持され、永続ファイルは変更されません。
- 呼び出し: BM25とセマンティックベクトルはReciprocal Rank Fusionで融合され、オプションで再ランク付けされます。モデル/プロバイダーの障害は、互換性のないベクトルを返す代わりに、診断付きでBM25に明示的にフォールバックします。
- 記憶: MCPツールは、1つのライターロックの下でMarkdownノートを原子的に書き込み、インデックスを更新するため、成功した保存はすぐに呼び出し可能になります。
信頼のために設計
- デフォルトでローカル。 FastEmbedはローカルで実行され、MCPサーバーはstdioを使用し、必須のデーモンや外部データベースはなく、テレメトリもありません。
- 明確な境界。 同期されたボールトにはMarkdownが含まれます。デフォルトでは、再構築可能な
.duckdbインデックスはその外側にあります。設定されたルートから逃れるボールトシンボリックリンクは拒否されます。 - 時間認識の修正。
valid_from、valid_until、およびsuperseded_byは、現在の事実を最初にランク付けしながら、古い証拠を表示可能に保ちます。 - 決定論的グラフ。
[[wikilinks]]とオプションのcairn linkネイバーは、LLMにエンティティを発明させることなく、Obsidianネイティブのグラフを作成します。 - プロジェクト認識の呼び出し。 現在のプロジェクトはデフォルトでブーストされます。クロスプロジェクトの結果は利用可能なままでラベル付けされます。自動呼び出しは、明示的にすべてのプロジェクトをオプトインしない限り、プロジェクトスコープです。
サポートされているエージェント
すべてのホストは同じ設定済みボールトを解決します。cairn install は、書き込まずに検出されたホストをプレビューします。MCP設定の書き込みはバックアップ優先で、無関係なサーバーを保持します。プラグインホストのインストールは、ホスト自身のCLIに委任します。
| ホスト | 統合 | セットアップ方法 | アンビエントメモリ |
|---|---|---|---|
| Claude Code | プラグイン + MCP + スキル | cairn install claude-code | ✅ ターンごと + SessionStart呼び出し; SessionEnd/PreCompactキャプチャ |
| Codex | プラグイン + MCP + スキル | cairn install codex | ✅ SessionStart呼び出し; SessionEndキャプチャ + スイープ |
| Cursor | MCP + スキル + 取り込み | cairn install cursor | ◐ 帯域外スイープ |
| OpenCode | プラグイン + MCP + 取り込み | cairn install opencode | ✅ ターンごとの呼び出し + アイドル/コンパクトキャプチャ |
| Hermes Agent | ネイティブ MemoryProvider | integrations/hermes/ | ✅ 自動呼び出し + セッション終了キャプチャ |
| Antigravity | プラグイン + 取り込み | cairn install antigravity --source <dir> | ◐ 帯域外スイープ |
| VS Code (Copilot) | MCPサーバー | cairn install vscode | — |
| Claude Desktop | MCPサーバー | cairn install claude-desktop | — |
| その他のMCPホスト | ポータブルMCPサーバー | uvx agentcairn | ホスト依存 |
Codex SessionStartは、agentcairn 0.24.2 / プラグイン 0.1.2でライブエンドツーエンドで検証されました。インストールされたSessionEndコマンドディスパッチとデタッチされたスイープは、正確なハンドラープローブに合格します。cairn sweep は帯域外キャプチャのバックストップのままです。ネイティブのライフサイクル詳細については、OpenCode統合 と Hermes統合 を参照してください。
直接使用する
プラグインが最も簡単なルートですが、agentcairnはスタンドアロンのCLIおよびオンデマンドMCPサーバーでもあります。スタンドアロンインストールにはPython 3.11+が必要です。
uv tool install agentcairn
cairn init ~/agentcairn
cairn sweep --vault ~/agentcairn
cairn recall "how did we fix the auth bug?" --vault ~/agentcairn
cairn doctor --vault ~/agentcairn
Claude Codeのメモリを持ち運ぶ
Claude Codeの自動メモリは、ソースファイルを変更せずに共有ボールトをシードできます。コマンドはデフォルトで現在のリポジトリのみをプレビューします。編集されたノートを書き込み、インデックスを更新するには --apply を追加してください。
cairn import claude-memory # preview; writes nothing
cairn import claude-memory --apply # import this repository
cairn import claude-memory --project ../other --apply
一方向インポートは MEMORY.md とそのトピックMarkdownファイルを読み取ります。CLAUDE.md や .claude/rules/ は決して読み取りません。インポートされたノートは、Claude Code、プロジェクト、ソースファイルの出典を保持します。ソースが変更されると、以前のバージョンは検査可能なままですが置換されます。ソースが消えると、インポートされたバージョンは期限切れになります。小さな .agentcairn/native-memory/ レジストリは、ソースコンテンツを2回インデックス化せずにそのライフサイクルを保持します。カスタム、管理、またはセッションオーバーライドされたClaudeメモリディレクトリには --source <dir> を使用し、インポートをバッチ処理する場合は --no-reindex を使用します。
一時的なプロセスを好む場合:
uvx agentcairn # MCP server
uvx --from agentcairn cairn recall "..." # CLI; plain `uvx cairn` is a different package
CLIメンテナンスと自動化
cairn schedule install --vault ~/agentcairn # launchd on macOS / user crontab on Linux
cairn schedule status
cairn link --vault ~/agentcairn # write deterministic related: neighbors
cairn reindex ~/agentcairn # rebuild the disposable cache
cairn savings # local context-efficiency estimate
cairn index-status --vault ~/agentcairn
他のオペレーティングシステムでは、選択したスケジューラから cairn sweep を実行してください。
設定とオプションのクラウドティア
設定は ~/.agentcairn/config.toml にあります。優先順位はCLIフラグ → 環境 → 設定ファイル → デフォルトです。
cairn config --init
cairn config
auto_recall = true
auto_recall_k = 3
auto_recall_scope = "project" # use "all" only as an explicit cross-project opt-in
ローカルの nomic-embed-text-v1.5 埋め込みがデフォルトです。Voyage、OpenAI互換の埋め込み、およびAnthropic耐久性ジャッジはオプトインです。クラウドプロバイダーが有効な場合、シークレットが編集された残りのノートチャンクとクエリがマシンを離れます。埋め込みモデルを変更すると、ボールトが再埋め込みされ、実際のレイテンシまたはAPIコストが発生する可能性があります。
測定されたベンチマーク
リポジトリには、リビジョンピン留めされた再現可能な LongMemEval-S + LoCoMoハーネス が同梱されています。デフォルトはローカルの nomic-embed-text-v1.5 とクロスエンコーダー再ランカーです。
| データセット / 粒度 | メトリック | BM25のみ | ハイブリッドRRF | ハイブリッド + 再ランカー |
|---|---|---|---|---|
| LoCoMo · ターン | recall@5 | 0.527 | 0.562 | 0.662 |
| LongMemEval-S · セッション | recall@5 | 0.920 | 0.954 | 0.969 |
| LongMemEval-S · ターン | recall@5 | 0.680 | 0.640 | 0.788 |
デフォルトの k=10 で返されるコンテキストは、完全なインデックス履歴よりもはるかに小さいです:
| データセット | 平均完全履歴 | 平均呼び出し | 削減 |
|---|---|---|---|
| LoCoMo (3会話) | 25,646トークン | 529トークン | 51.1× |
| LongMemEval-S (完全500) | 136,552トークン | 2,207トークン | 64.7× |
数字を正直に読んでください:
- 検索リコールはQA精度ではありません。これらの表は、エンドユーザーの回答品質や別の製品のリーダーボードスコアではなく、制御された検索アームを比較しています。
- トークン数は、1トークンあたり約4文字のヒューリスティックを使用しています。削減は、インデックス化された干し草の山と返されたチャンクを比較しています。これは請求対象コストの節約ではありません。
- グラフブーストは、ネイティブの
[[wikilink]]グラフが含まれていないため、これらのチャットコーパスでは効果がありません。実際の相互リンクされたボールト向けに設計されています。 - オプションのQAジャッジは、論文のGPT-4oセットアップではなくAnthropicを使用しているため、これらのQA結果は相対的なアブレーションに役立ちます。公開されたリーダーボード比較には使用できません。
完全なメトリック、埋め込みスイープ、レイテンシ測定、ライセンス、コマンド、および注意事項は benchmarks/README.md にあります。
プライバシーと制限
- 保管庫は設計上プレーンテキストであり、暗号化ストレージではありません。 AgentCairnは、自動化された本文・タイトル・タグの書き込み前に、認識された認証情報パターンを編集(redact)します。未知のパターンや手動編集は、利用者の責任となります。
- 保管庫ファイルは所有者のみアクセス可能です(
0600/0700)。 保管庫はプレーンテキストであり、編集はベストエフォートであるため、ファイルモードが実質的に唯一のアクセス制御です。共有GID構成(例:同じグループだが異なるUIDの2つのDockerコンテナ)ではグループアクセスが必要なため、vault_group_writable = trueは新しい保管庫ノートとディレクトリを0660/0770に拡張します。これは意図的にオプトイン方式です。macOSではすべてのローカルユーザーのプライマリグループがstaffであるため、グループ読み取り可能なデフォルト設定は、マシン上の他のアカウントにあなたのメモリを公開してしまいます。この設定は保管庫外のもの(インデックス、台帳、ロックファイル、~/.agentcairn/config.toml)を決して拡張しません。これらはプライベートのままです。 - クラウド機能は明示的な外部送信です。 デフォルトはローカルのままです。クラウド埋め込みモデルやLLM判定機能をオプトインすると、編集後の残りのテキストがそのプロバイダーに送信されます。
- プロジェクトはベータ版です。 スタンドアロン利用にはPython 3.11以上が必要で、最初のローカルモデルの読み込みには時間がかかる場合があります。公開されている検索エビデンスは、会話メモリに対して最も強力であり、汎用的なコード検索の主張ではありません。
- 環境による動作はホストによって異なります。 上記のマトリックスは意図的です。CursorとAntigravityはスイープキャプチャに依存しています。一般的なMCPホストでは、ライフサイクルフックなしでツールを公開する場合があります。
- 自動化はプラットフォーム固有です。 管理スケジューリングはmacOSのlaunchdとLinuxのユーザーcrontabを対象としています。その他の環境では、独自のスケジューラを使用してください。
開発
agentcairnは依存関係管理とツールにuvのみを使用します。
uv sync
uv run pre-commit install
uv run pytest
uv run ruff format .
uv run ruff check --fix .
uv run pre-commit run --all-files
APIキーなしでオフラインベンチマーク回帰テストを実行します:
uv run pytest benchmarks/tests/
ライセンス
Apache License 2.0 — 寛容なライセンスで、明示的な特許付与を含みます。著作権 © 2026 Charles C. Figueiredo.