Ariadne について
Ariadneは、Codex、Claude Code、MCPクライアント向けのローカル優先・多言語メモリサーバーです。プライベートなコーディングエージェント用メモリを必要とするユーザーに向け、GoとQdrantでローカル保存と監査可能なアクセス承認を提供します。
主な機能
- 01ローカル優先の多言語メモリ
- 02複数MCPセッション向けQdrantストレージ
- 03プロジェクト間アクセスの人による承認
- 04アクセス要求と判断の監査記録
- 05CLIとデスクトップトレイで管理
活用シーン
- 01コーディングエージェント間で決定事項や知見を保持
- 02複数MCPセッションのメモリアクセスを管理
- 03プロジェクト間のメモリ要求を承認・監査
MCP 対応
Ariadneは、Codex、Claude Code、その他のMCPクライアントにメモリ検索とアクセス制御を提供するMCP サーバーです。プロジェクト間アクセスにはトレイでの承認を求められ、要求、判断、許可の使用が記録されます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
ariadne
English · Українська
Codex、 Claude Code、およびあらゆる MCP クライアント向けの、 ネイティブでローカルファースト、多言語対応のメモリーサーバーです。 Go + Qdrant + bge-m3 — Docker、クラウド、API キーは不要です。
プライベートなコーディングエージェント用メモリーに特化して設計されています。ホスト型のマルチテナントメモリープラットフォームではなく、小型のネイティブアプライアンスです。デフォルトではオフラインで動作し、言語をまたいで利用でき、検索コストを確認でき、アカウントにも依存しません。
プロジェクトサイト · Hugging Face Space · 最新リリース
複数の MCP セッションが同時に動作するとクラッシュしたり、リソース不足に陥ったりする、組み込み型ベクトル DB メモリーバックエンドの代替として開発されました。ariadne はサーバーです。単一の Qdrant が複数の書き込みをネイティブに処理するため、単一書き込み元やロック待ちによる枯渇という問題は発生しません。
v0.8.18 の新機能
- 判断が必要な項目を先頭に表示。 アクセスセクションをトレイの上部に配置しました。アクティブなキューには、判断が必要なリクエストのみが表示されます。
- 履歴をページ分け。 保持された判断は新しい順に、1 ページあたり 10 件表示されます。新しいリクエストが長い履歴の下に埋もれることはありません。
- 読みやすい行。 用途と簡潔なステータスがすぐに確認できます。プロジェクトの完全な範囲、リソース、作成時刻、ID は詳細に表示されます。
- リクエストごとの操作。 承認と拒否は特定のリクエストに紐づいたままです。履歴の行は読み取り専用で、すべての監査記録が保持されます。
v0.8.17 の新機能
- すべてのアクセスリクエストが表示されたままになります。 トレイには、保留中、承認済み、拒否済み、期限切れ、消費済みのステータスと、各リクエスト ID に紐づいた操作とともに、保持されたキューと履歴全体が表示されます。
- プロンプトが公平に順番に表示されます。 各システムダイアログは 30 秒に制限されます。回答されなかったリクエストは保留のままになり、新しいリクエストにも順番が回ってきます。
- 処理の再開方法を明示。 承認時に、
approval_idを指定して再試行するようクライアントに伝えます。テストでは、処理の正常な再開と、再利用された一度限りの許可の拒否を検証します。 - 読み取り専用の履歴。
ariadnectl approvals --allは、アクセスを許可したり消費したりせずに、保持されたリクエストとそのライフサイクルを一覧表示します。
v0.8.16 の新機能
修正
- Windows のリリースチェックにランチャーを安全に含めます。 macOS の動作テストをプラットフォーム別に実行するようにし、リリースアーカイブには Windows で安全に使えるランチャースタブを残しました。これにより、サポート対象のすべてのターゲットでビルドとテストが問題なく完了します。
v0.8.15 の新機能
- Ariadne が正式な macOS アプリケーションになりました。 インストーラーは、システムの Applications フォルダーに署名済みの
Ariadne.appを作成します。書き込みができない場合はユーザーレベルの~/Applicationsにフォールバックし、ネイティブのプロジェクトアイコンを使用します。 - ワンクリックで管理対象のトレイを復元。 Finder、Spotlight、または Launchpad から、既存のトレイ LaunchAgent を起動できるようになりました。必要に応じて正規の plist を再登録し、管理対象外のプロセスが重複して作成されることはありません。
v0.8.14 の新機能
v0.8.14 では、確認済みの macOS 更新ヘルパーをトレイのシャットダウンから切り離し、update.log で引き継ぎを確認できるようにしました。
v0.8.13 の新機能
v0.8.13 では、統合期限に達した場合もメンテナンスの失敗ではなく、安全な延期処理として扱うようになりました。追記専用の延期メタデータによって、すべてのソース日記が保持されます。
v0.8.12 の新機能
v0.8.12 では、メンテナンススーパーバイザーに上限を設け、推論機能を持つ Ollama モデル向けのスキーマに準拠した統合 JSON を決定的に生成するようにし、所有者が承認した認証情報の信頼を、正確かつ追記専用の方式で追加しました。
v0.8.11 の変更点
v0.8.11 では、デスクトップトレイを真の単一インスタンスにし、正規および 従来の launchd による所有状態を調整し、置き換えられた plist ファイルを アーカイブに保存し、実際のトレイプロセス診断を追加しました。
v0.8.10 の変更点
v0.8.10 では、ロスレスな Qdrant ページネーション、 想起可能データと履歴データのカバレッジ、測定済みと推定の来歴の分離、 明示的なギャップ分類、安全なオプトイン方式の属性バックフィルにより、 トークンの帰属を監査可能にしました。
v0.8.9 の変更点
修正
- 多数のエージェントセッションが同時に実行されても、Qdrant を利用できます。 各 MCP プロセスは、クライアントライブラリの暗黙的な 3 接続プールではなく、 1 つの永続的な gRPC 接続を使用するようになりました。また、macOS の launchd サービスには、256 を継承させるのではなく、ファイルディスクリプターの上限として 明示的に 8192 を設定します。
- 起動時にペイロードインデックスの作成を繰り返さなくなりました。 Ariadne は 既存のスキーマを確認し、不足しているインデックスのみを作成します。実際の ストレージエラーは、黙って無視されず、起動を失敗させます。
- 短時間実行されるすべてのクライアントが正常に終了します。 フック、インポート、 インストール、メンテナンスは、処理の終了時に Qdrant 接続を解放します。
追加
- ディスクリプターの負荷状況を可視化します。
ariadnectl status、トレイ、 フルスタック診断は、Qdrant のオープンディスクリプター数と設定済み上限を報告し、 上限に達する前に警告を表示します。
v0.8.8 の変更点
追加
- リモート Qdrant 認証をフェイルクローズにしました。 リモート gRPC では API キーと TLS が必要です。REST では同じキーと HTTPS が必要です。長時間実行される クライアントが保持するのは保護されたキーファイルのパスのみで、キーの値は保持しません。 ユーザー管理の SSH トンネルなどを使用する場合に備え、明示的な安全でない接続の オーバーライドも引き続き利用できます。
- 検索結果の比較を正確にしました。
cmd/evalは、コーパスの根拠なしに SPLADE の改善を主張するのではなく、評価済みの BM25 と学習済みスパース実行に対し、 決定論的なマクロ Recall、MRR、nDCG を計算します。
変更
- メトリクススキーマ v3 は、履歴を破棄せずに拡張できます。 すべての想起イベントは 追記専用のまま維持され、インデックス付きの 30 日間のパスとトランザクション方式の 日次集計により、生涯合計を有界かつ高速に扱えます。既存の v2 データベースは、 生の行や合計を変更せずに移行されます。
- コレクションのスキャンが完全になりました。 Memfile の調整では、固定の上限に 頼らず、すべての Qdrant ポイントをページ分割して取得します。
- メンテナンスの再利用可能なコアを追加しました。 有界の再試行とバックオフの
オーケストレーションは
internal/maintenanceに配置されます。ariadnectlは、 確立済みの CLI とアクティビティのセマンティクスを維持します。
修正
- リモート設定がインストール後やセルフアップデート後も保持されます。 macOS、Linux、 Windows のランチャーは、同じ非機密の Qdrant トランスポート設定を引き継ぎます。 Windows インストーラーに明示的に指定した引数は、引き続き優先されます。
- リポジトリのツールが
site/node_modulesの依存関係をコンパイルしなくなりました。 サイトは独立した Go モジュールであり、make cleanは生成されたアセットを削除せず、 復元用マニフェストとともにアーカイブします。
v0.8.7 の変更点
修正
- launchd の制限された環境でもトレイを再起動できるようになりました。
brewが launchd の最小限のPATHに含まれていない場合、Ariadne は macOS の標準的な場所から Homebrew を解決するため、Qdrant と Ollama の両方が実際に再起動します。 - 再起動時には常に復旧を試みます。
ariadnectl restartは、いずれかのサービスの 停止時にエラーが報告されても、起動フェーズを実行し、すべての失敗を返します。 これにより、一部の停止後にスタック全体が停止したままになることを防ぎます。 - 完了メッセージがトレイの再起動後も保持されます。 検証済みの結果は、古いトレイが 終了する前に追記されます。launchd によって起動された後継プロセスが最終通知を表示し、 配信済みマーカーを追記します。
追加
- サービス操作を検証します。 トレイは Qdrant と Ollama の状態を Start、Stop、Restart の前後に確認し、要求された状態になるまで待機します。再起動時には PID の変更を検証し、コレクションが正常でない場合は成功を報告しません。
- PID と操作の診断情報を表示します。 トレイの行と
ariadnectl statusにサービスの PID が表示されます。構造化ログには、処理時間、操作前後の状態、コマンド出力、検証に失敗した正確な理由が記録されます。
変更
- サービス操作中は競合する操作をロックします。 サービス操作の進行中は、Start、Stop、Restart、メンテナンス、更新、バックアップ、エクスポートを同時に実行できません。
- プラットフォームのコマンドエラーでも有用な出力を保持します。 macOS、Linux、Windows でのサービス制御エラーでは、診断に役立つ stderr/stdout が保持されるようになりました。
v0.8.6 以前
修正
- macOS でトレイの再起動が安定するようになりました。 launchd 管理下のトレイは、メニューバーに別のプロセスが起動する競合を起こしたり、アイコンが表示されなくなったりすることなく、スーパーバイザーに正常な置き換えを 1 回だけ要求するようになりました。
- サービスの失敗を正しく報告します。
start、stop、restartで発生したプラットフォームエラーが CLI とトレイに伝わり、成功と誤って表示されなくなりました。 - Claude のアップグレード後に古い統合ファイルが残らなくなりました。 インストーラーが、同梱スキルに加え、正確なフックパス、マッチャー、タイムアウトを検証して更新します。
追加
- Claude のコンテキスト切り替えをまたいだ永続的なリコール。 自動リコールは
startup、resume、clear、compact、forkで実行されるようになり、永続化すべき決定事項、注意点、検証済みの結果をすぐに保存するよう明示的に促します。
変更
- 承認には常に明示的なクリックが必要です。 システム警告に表示されるのは Approve と Deny のみです。どちらもデフォルト選択やフォーカス状態にならず、Return/Enter キーや Escape キーでリクエストを決定または閉じることはできません。
- フックのインストールが更新に対応しました。 既存の Ariadne フックはその場で更新され、無関係な Claude フックは保持されます。
v0.8.5 以前
macOS の承認警告が前面に表示されます。 ネイティブダイアログは表示前にアクティブになるため、アクセスリクエストがアクティブなコーディングウィンドウの背後に隠れて見落とされることがありません。アクティブ化によって変わるのは表示状態だけであり、権限ではありません。
Hugging Face への公開が有効になりました。 Space のメタデータが Hub の short_description の上限である 60 文字以内に収まります。
v0.8.4 以前
承認リクエストが目に見える形で割り込みます。 新しいウィング間リクエスト、または保護対象リソースへのリクエストが発生すると、トレイバッジとデスクトップ通知だけに頼らず、システム警告ダイアログがすぐに開きます。ダイアログには、制限された範囲と目的が表示され、Approve、Deny、安全側のデフォルト動作となる Later を選べます。ダイアログを閉じる、Escape キーを押す、または Later を選んでも権限は付与されません。保留中のリクエストは 1 分後に再度表示されます。トレイのキューも引き続き利用でき、代替手段および監査ビューとして機能します。
プロンプトには、macOS のネイティブ警告ダイアログ、Windows のシステムポップアップ、または Linux で利用可能な KDialog/Zenity プロバイダーが使われます。明示的に Approve/Deny を選択した場合に限り、追記専用の決定記録が書き込まれます。
v0.8.3 の新機能
実際の人間による承認を伴うプロジェクト横断メモリ。 all_wings: true は検索を実行する代わりに、承認待ちのリクエストを作成するようになりました。Ariadne のトレイには、アクティブな wing、目的、範囲が限定されたクエリが表示されます。「Approve」をクリックした場合にのみ、その MCP クライアントセッション、アクティブな wing、コレクションに限定された15分間の許可が付与されます。その後、クライアントは approval_id を指定して再試行します。正確な ID を指定する wing 横断の想起も、同じ手順に従います。
ローカルコンテキストが優先されます。 承認後、外部候補には0.70のオリジン重みが設定され、通常は5件中最大2件を占めます。レスポンスでは、ローカルと wing 横断のオリジンをラベルで示し、適用された重みを開示します。この重みは認可後に適用され、許可として扱われることはありません。
認証情報には、別途1回限りの承認が必要です。 credential_access は、特定のソース wing、ターゲット wing、認証情報名/パス、目的を指定した独立したトレイリクエストを作成します。承認は5分後に期限切れとなり、1回だけ使用できます。Ariadne が値を読み取ったり返したりすることはありません。リクエスト、判断、使用は、それぞれ別個の追記専用監査レコードとして記録されます。
ariadnectl approvals には、未決定のリクエストのみが表示されます。リクエストが一覧から消えても、拒否されたことを意味するわけではありません。状態とタイムスタンプを確認するには、ariadnectl approvals -id REQUEST_ID -json をポーリングしてください。状態は pending、approved、denied、consumed、expired のいずれかです。この読み取り専用の診断コマンドが許可を承認または使用することはありません。人間による承認後も、MCP クライアントは元のリクエストを approval_id 付きで再試行する必要があります。
所有者が繰り返しの使用を明示的に指定した認証情報ファイルについては、ariadnectl credential trust --source-wing ... --target-wing ... --resource ... --purpose ... --yes を使って、正確なローカルバインディングを一度登録します。以降、完全に一致するタプルに対する credential_access 呼び出しではポップアップが省略されますが、使用記録は引き続き追加されます。credential revoke は、バインディングを追記専用方式で無効化します。それ以外のリソースと wing の組み合わせは、デフォルトで拒否されます。
v0.8.2 の新機能
プロジェクトの分離は、デフォルトで拒否する方式になりました。 セマンティックな memory_recall では、プロジェクトの wing が必須です。すべてのプロジェクトを検索するには、ユーザーが要求したプロジェクト横断監査を想定した all_wings: true の明示的なオプトインが必要です。セッションフックは最も近いリポジトリルートを解決し、安定した .ariadne-wing マーカーを使用する場合もあります。そのため、ネストされた作業ディレクトリが暗黙のうちに新しい名前空間になることはありません。共有の Codex および Claude Code スキルも、アクティブなワークスペースをファイルシステムの境界として扱います。読み取り可能な隣接プロジェクトであっても、その .env、認証情報、エンドポイント、設定を借用する許可にはなりません。
認証情報のデータはブロックされ、隔離できます。 MCP の保存処理とストアは、信頼度の高い秘密鍵、認証情報 URI、既知のトークン形式、明示的なシークレットの代入を拒否します。インポートとフックによる取得では検出された値を秘匿化し、統合時には出力を再検証します。また、想起では隔離されたレコードを除外し、正確な ID を指定した出力にも防御的な秘匿化を適用します。ariadnectl quarantine-secrets は、デフォルトでメタデータのみのドライランを実行します。--apply は元のペイロード、ベクトル、以前のステータスを保持したまま、通常の想起からレコードを除外します。--apply --reconcile を使うと、隔離の監査証跡を消去せずに、検出機能の改善後に以前のステータスを復元できます。
v0.8.1 の新機能
サービス所有者を一本化し、状態を可視化。 Ariadne は、macOS の Qdrant ジョブが重複して、HTTP のヘルスチェックが正常を示している陰に隠れる前に検出します。ariadnectl は、古い plist ファイルとメモリ履歴のすべてのバイトを保持しながら、起動、停止、インストーラーの所有権を単一の正規ジョブに統一します。機能が拡張された doctor は、現在有効な不変のランタイムを解決し、Codex と Claude の両方の MCP パスを確認し、メンテナンスと launchd の状態を報告し、帰属情報の網羅率を示して、ログの暴走を警告します。
再試行と要確認を区別するメンテナンス。 取り込んだ各セッションは、同日分の出力を統合・重複排除する前に、原子的に精査されます。独立したローカル品質チェックにより、無関係な懸念事項を融合したメモリを拒否し、モデルの無効な出力に対しては、対象を絞った修正を一度だけ行います。 一時的なネットワーク障害や Ollama の障害には、引き続き上限付きのバックオフを適用します。一方、スキーマ、言語、ローカルパス、品質に関する決定的な失敗は、ステージ全体を再実行する代わりに、明示的な保留作業として扱います。同じモデルとパイプラインのリビジョンで、変更のないソースを再試行することはありません。ソースダイアリーは、処理中も有効な追記専用の状態を維持します。また、安全な保留レビューによって、それ以外は正常に完了したメンテナンスを不健全と誤って報告することもありません。
取り込み負荷を増やさずに、より強力な精査を実現。 取り込みと統合には、それぞれ ARIADNE_CONSOLIDATION_MODEL と ARIADNE_CONSOLIDATION_JUDGE_MODEL を使って、異なるローカルモデルを使用できます。固定された 11 バッチの検証では、qwen2.5:7b は 5 バッチを保留にした一方、qwen2.5:14b は 11 バッチすべてを処理しました。そのため、メモリに余裕がある場合は 14B の精査モデルをローカル環境で推奨します。取り込みには引き続き小型モデルを使用できます。
高い回復力と説明可能性を備えたトレイ。 macOS の LaunchAgent は、異常終了後にトレイを再起動しますが、明示的に正常終了した場合は尊重します。ライフサイクルの理由はトレイのログに追記されるため、アイコンが消えても、調査の手がかりが何も残らないことはありません。インストーラーは Ariadne.app も「アプリケーション」に追加します。Finder、Spotlight、Launchpad から起動すると、管理対象のトレイが復元され、管理対象外の重複プロセスは起動しません。
v0.8.0 の新機能
スコープ付きの追記専用メモリライフサイクル。 同一のテキストが、異なるプロジェクトやルームにそれぞれ独立して存在できます。移動時には、移動先のレコードを先に書き込み、元のレコードは置き換えられた履歴として保持します。セッションの取り込みでは、実際のイベント時刻と取り込み時刻を分けて記録し、安定した不透明なソース系譜を割り当てます。日次統合では、永続メモリを先に保存し、その後、メタデータに基づいてソースダイアリーをアーカイブします。削除は行いません。初回の出力ゼロのレビューは candidate_empty として有効なまま保持され、猶予期間後の確認パスを経てからアーカイブされます。通常の検索ではアーカイブ済み/置き換え済みのレコードは非表示になりますが、明示的な監査手段として、正確な ID による検索または include_archived: true を利用できます。
過去の情報を保守的に順位付け。 Qdrant は引き続き、dense+BM25 RRF の候補セットを提供します。上限付きの小規模な第 2 パスでは、ソース品質、明示的な時間的意図、コンテキストサイズのシグナルを追加します。古い決定や注意事項は、古いという理由だけでは減衰しません。新しい情報、現在の情報、または履歴を考慮した回答をクエリが求める場合に限り、鮮度が適用されます。また、メタデータによって、意味的に明確に優位な情報を覆すことはできません。
非破壊的で、状態を把握できるメンテナンス。 Memfile の同期では、埋め込み処理の前に変更のないソースリビジョンをスキップし、変更されたリビジョンをインポートしてから古いチャンクを superseded としてマークし、元の観測タイムスタンプを保持します。消失したソースは削除せず、orphaned として扱います。統合はバッチサイズとコンテキストサイズに上限を設け、モデルの出力を検証します。昇格に失敗した場合は、ソースダイアリーを保持します。ランナーは、一時的な失敗を上限付きバックオフで再試行し、追記専用のアクティビティを記録して、失敗、一部失敗、停滞、または古い状態をステータスとトレイに表示します。バックアップのローテーションでは、古いスナップショットをアーカイブします。
決定論的な回帰評価。 go run ./cmd/eval を実行すると、Qdrant や Ollama に触れることなく、evaluation/coding-memory.json にある多言語のコーディングメモリ順位付けスイートを実行できます。
v0.7.0 の変更点
正確な検索と即時の永続メモリ。 memory_recall でスコープ付きコンテンツの正確な id を指定できるようになりました。これにより、エージェントは埋め込み呼び出しや近似ランキングを使わずに、1つのメモリを取得して検証できます。セマンティック検索では、プロジェクト(wing)とカテゴリ(room)の両方でスコープを絞ることもできます。
共有 Ariadne スキルでは、リリース、デプロイ、移行、監査、インシデント解決、検証済みステータスに関するレポートについて、結果が判明した時点ですぐに reference へ保存するようエージェントに求めるようになりました。これはプロアクティブな処理です。エージェントは SessionEnd、PreCompact、日次の統合処理、または別途「これを記憶して」というコマンドを待ちません。決定事項や、苦労して得た注意点にも、同じ即時保存のルールが適用されます。
トークン指標では、ソースに基づく測定値と不明な配信量を分け、従来の検索をすべて節約効果なしとして扱うことはありません。
- 測定済みの節約額/純額 — 帰属コストを差し引いた、ソースに基づくコンテキストの利点です。
- 帰属範囲 — 出所情報がある、観測済み検索コストの割合です。
- 帰属なし — 利点を捏造せずに可視化した、従来の手動配信です。
トレイには、測定済みの節約額、帰属範囲、検索回数、帰属なしのコストが表示されます。ariadnectl metrics と JSON には、観測済みコストのカウンターがすべて保持されます。
{
"id": "2704862554782470108"
}
v0.6.0 の変更点
日記の自動蒸留。 SessionEnd による記録では、実質的なセッションごとに、ローカルモデルを使って簡潔な日記メモリを1件作成します。日次メンテナンスでは、24時間以上前の日記エントリを再確認し、プロジェクトと日付ごとにまとめて、理由を伴う永続的な決定事項、検証済みの注意点、重要な制約、重要な未解決リスクを昇格させます。監査に備え、ソースの時系列記録は破棄せず、アーカイブに残します。
この処理はフェイルセーフで追記専用です。Ariadne はアーカイブ前に、期限を迎えた Qdrant の週次スナップショットを作成し、蒸留したメモリをすべて保存してから、ソースグループをアーカイブ済みにします。初回の結果が空の場合は、後で再確認できるようアクティブな状態を維持し、失敗した場合は再試行できるようソースグループをアクティブな状態のままにします。サマリーエンドポイントは、リモート記録が明示的に有効化されていない限り、ローカルのみで動作します。
プレビューまたは手動で実行するには:
ariadnectl consolidate --before 24h --dry-run
ariadnectl maintenance # memfile sync + consolidation, with bounded retries
ariadnectl consolidate --before 24h # consolidation only
ariadnectl requeue-empty --dry-run # inspect records archived by the legacy one-pass empty policy
インストーラーは、macOS と Linux で毎日 04:30 に実行するメモリメンテナンスジョブをスケジュールします。失敗したステージは、上限付き指数バックオフを使って最大3回再試行されます。不完全なインポートの失敗はゼロ以外の終了コードを返し、統合処理をブロックします。systemd では Persistent=true を使用します。読み込み済みの launchd カレンダーエージェントは、スケジュール時刻を過ぎてから Mac が復帰した場合、キャッチアップとして1回起動します。トレイには最新の結果が表示され、メンテナンスが失敗した場合、不完全な状態の場合、停止している場合、または36時間以上経過している場合に警告が表示され、今すぐメンテナンスを実行を選択できます。complete_with_deferred の結果は確認できますが、サービスインジケーターがオレンジ色になることはありません。出力は ~/.ariadne/logs/maintenance.log に書き込まれます。追記専用の結果は ~/.ariadne/state/activity.jsonl に保存されます。
v0.5.0 の変更点
- Windows クライアントとの明示的な統合 — インストーラーは Claude Code と Codex CLI を検出し、どちらを設定するかを尋ねます。存在しないクライアントの設定は作成せず、非対話型のインストールでは選択を明示する必要があります。
- コアのみのモードと後から設定するモード —
-CoreOnlyを使ってローカルの Ariadne スタックをインストールし、後から-ConfigureClientsを使って Claude または Codex を接続できます。同意が必要な更新では、既存のクライアント設定は変更されずに保持されます。 - 物理マシンと VM の事前チェック — PowerShell が Windows、CPU、RAM、ディスク、マシンの種類を報告するようになりました。既定のモデルに必要な最小リソースを確認し、Proxmox/KVM 向けの CPU ガイダンスを提供するほか、サービス登録の前に
qdrant.exe --versionを直接実行します。
v0.4.0 の新機能
- ローカルでのトークン効率メトリクス — Ariadne は、自動リコールと MCP リコールによる確認済みの節約量、リコールのオーバーヘッド、符号付きの純コンテキスト利得を推定します。合計値は
ariadnectl metrics、その JSON 形式、およびトレイメニューから確認できます。 - コンテンツを含まない計測 — ローカルに保存されるのは、数値カウンターと不透明なイベントハッシュのみです。フックの配信が繰り返された場合はオーバーヘッドとして計上しますが、同じセッションコンテキストが二重に表現されたとは扱いません。
v0.3.1 の新機能
- Windows の前提条件をクリーンに修復 — インストーラーが、公式の Qdrant Windows バイナリに必要な Microsoft Visual C++ Runtime を検出するようになりました。これが未インストール、またはバージョン 14.44 より古い場合、Ariadne は Microsoft 公式の再頒布可能パッケージをダウンロードし、Authenticode の署名者を検証したうえで、この前提条件に限って管理者の承認を求めます。
- Qdrant の障害に対する具体的な情報 — 起動時に最大 60 秒間待機し、ローダーおよびプロセスのエラーを
~/.ariadne/logs/qdrant.logに保持します。また、インストーラーは一般的なタイムアウトだけを返すのではなく、スケジュールされたタスクの結果とログの末尾を表示します。 - 実環境での Windows Qdrant テスト — CI が、正確にバージョンを固定した Qdrant アーカイブをダウンロードして SHA-256 ダイジェストを検証し、Ariadne のループバック/ストレージ設定で起動したうえで、Windows ランナー上の
/healthzを待機するようになりました。
v0.3.0 の新機能
- Windows へのネイティブインストール —
install.ps1は、リリースバイナリ、ネイティブ Qdrant、署名済み Ollama、ユーザーレベルのスタートアップタスク、Codex/Claude Code の MCP バインディング、スキル、セッションフックをインストールします。Docker は不要です。管理者の承認が必要なのは、Windows に Qdrant の Microsoft VC++ Runtime がない場合のみです。 - Windows の自動アップデート — バージョン対応のトレイで、macOS および Linux と同じ明示的な確認と自動再起動の手順を Windows でも利用できるようになりました。
- 5 種類のリリースターゲット — Windows x64、Linux x64/ARM64、macOS Intel/Apple Silicon 向けのアーカイブが、GitHub Actions によってタグからビルドされます。
- 検証可能なアーティファクト — リリースには、SHA-256 チェックサム、CycloneDX SBOM、チェックサムマニフェスト用のキーレス Sigstore バンドルが含まれます。
- MCP の検出 — リリースバイナリからクロスプラットフォーム対応の MCPB と
server.jsonを生成し、GitHub OIDC を使って公式 MCP Registry に公開します。 - 公開プロジェクトサイトとローンチキット — 構造化メタデータ、
llms.txt、プラットフォーム別のインストール手順、アーキテクチャ、セキュリティに関する注記、すぐに使えるローンチ文面により、ユーザーにも AI システムにも Ariadne を見つけやすくします。
理由
- 安定性 — コンパクション時に SIGSEGV が発生する組み込み HNSW ではなく、Qdrant サーバーを使用します。
- 多言語対応 — bge-m3 は 100 以上の言語に対応し、言語をまたいだリコールが機能します(英語のクエリでウクライナ語のメモを検索できます。uk/ru/en/es/de/it/pl/ro/hu/lt/lv/et/fi/fr/ar 間のコサイン類似度は約 0.8〜0.94)。
- ハイブリッド検索 — 密ベクトル(bge-m3)と BM25 疎ベクトル(純粋な Go トークナイザー。IDF は Qdrant サーバー側で計算)を RRF で統合し、続いて履歴品質に基づく範囲制限付きの再ランク付けを行います。完全一致する用語/コード/名前は明確に上位表示されます。明示的な時間指定クエリでは、永続的な決定を機械的に減衰させることなく、日付の正しいイベントが優先されます。
- デフォルト拒否のスコープ付きリコール — セマンティック検索にはプロジェクト(
wing)の指定が必要で、カテゴリ(room)を指定してさらに絞り込むこともできます。プロジェクトをまたぐリコールには、明示的な目的と、人間が承認したトレイリクエストが必要です。 - ネイティブ対応 — Windows、macOS、Linux で Qdrant バイナリと Ollama を利用できます。対応する NVIDIA/AMD アクセラレーション、Apple Silicon 上の Metal、CPU フォールバックをサポートしています。
コンポーネント
| パス | 内容 |
|---|---|
cmd/ariadne | MCP サーバー(stdio)。ツール:memory_save、memory_recall、credential_access、memory_delete、memory_move。 |
cmd/import | chromadb sqlite、Markdown メモリファイル、または JSONL からのバックフィル(埋め込みをバッチ処理)。 |
cmd/hook | Claude Code セッションフック(ariadne-hook):SessionStart での自動リコールと、SessionEnd/PreCompact での自動キャプチャ。 |
cmd/install | ワンショットインストーラー(macOS/Linux):事前確認、Qdrant の再利用またはインストール、サービス、MCP、スキル、フック。Windows では install.ps1 を使用します。 |
cmd/ariadnectl | 制御とヘルス管理の中核:ステータス/メトリクス、ライフサイクル、バックアップ/復元/エクスポート、メンテナンス/統合、隔離と承認の確認。 |
cmd/eval | 読み取り専用のランキング回帰テストと、評価済み検索実行結果の比較。 |
internal/store | ストレージの中核:埋め込み(Ollama)、BM25 スパース検索、Qdrant ハイブリッド検索。 |
internal/maintenance | UI に依存しない、メンテナンス段階向けの上限付き再試行エンジン。 |
internal/qdrantauth | API キーの読み込みと、フェイルクローズ方式のリモート Qdrant 通信ポリシー。 |
internal/retrievaleval | 比較可能なランキング実行結果に対する Recall/MRR/nDCG のスコアリング。 |
cmd/ariadne-tray | クロスプラットフォームのトレイモニター(macOS/Linux/Windows)— Pure Go 製、ローカライズ済みで、ariadnectl コア上で動作します。 |
skills/ariadne | Codex および Claude Code のスキル:スコープを限定したリコール/保存の規律と、doctor.sh/recall.sh。 |
deploy/ | LaunchAgent/systemd テンプレート:Qdrant サービス、毎日の memfiles-sync、トレイの自動起動。 |
poc/ | スタックの検証に使用したスタンドアロン実験。 |
セットアップ
Windows
通常のユーザーとして PowerShell を開きます。実行前にスクリプトをダウンロードし、内容を確認できる状態にしておきます。
irm https://raw.githubusercontent.com/mclaut/ariadne/main/install.ps1 -OutFile install.ps1
powershell -ExecutionPolicy Bypass -File .\install.ps1
Windows インストーラーは、対応する GitHub リリースアーカイブをダウンロードし、SHA256SUMS と照合します。Ollama が見つからない場合は、公式の OllamaSetup.exe をダウンロードし、Authenticode 署名者が Ollama Inc. であることを確認してから、昇格なしでインストールします。固定バージョンのネイティブ Qdrant x64 アセットを SHA-256 ダイジェストの検証後にインストールし、Qdrant と ariadne-tray を現在のユーザーのスケジュールされたタスクとして登録し、bge-m3 と要約モデルをプルした後、検出された Codex および/または Claude Code CLI に Ariadne を登録するかどうかを確認します。クライアントの設定は常に明示的に行います。インストーラーが、インストールされていないソフトウェアの設定を作成することはありません。
無人セットアップの場合は統合先を直接指定するか、コアのみをインストールするか、後でクライアントを設定します。
.\install.ps1 -Yes -Integration Claude
.\install.ps1 -Yes -Integration Codex
.\install.ps1 -Yes -Integration Both
.\install.ps1 -Yes -CoreOnly
.\install.ps1 -ConfigureClients -Integration Codex
-Integration None と -CoreOnly を指定すると、すべてのクライアント設定は変更されません。トレイからの更新でも既存のクライアント設定は保持されます。更新時に、新たに検出されたクライアントが登録されることはありません。
公式の Qdrant Windows バイナリには、Microsoft Visual C++ Runtime 14.44 以降が必要です。Ariadne は Qdrant の起動前にこれを確認します。存在しない場合、または古い場合は、Microsoft の公式 x64 再頒布可能パッケージをダウンロードし、Microsoft Authenticode 署名者であることを確認します。この前提条件のインストールには、Windows から管理者の承認が求められます。プロンプトをキャンセルした場合は、同じインストールコマンドを再実行してください。それでも Qdrant を起動できない場合、インストーラーは診断情報と ~/.ariadne/logs/qdrant.log の末尾を PowerShell に直接表示します。
Ariadne がインストールする Qdrant は、常に 127.0.0.1 にバインドされます。意図的に再利用するリモート Qdrant は、キーをクライアントのファイルに記載せずに設定できます。
.\install.ps1 -QdrantHost qdrant.example -QdrantRestPort 6333 `
-QdrantGrpcPort 6334 -QdrantApiKeyFile C:\secure\qdrant.key -QdrantTls
インストーラーは認証済みのヘルスエンドポイントを検証し、キーのファイルパスとトランスポート設定のみを Codex、Claude、フック、トレイに渡します。-AllowInsecureRemoteQdrant は、独立して暗号化されたプライベートトンネルを使用する場合に限り、明示的な例外として指定できます。Ollama はネイティブの Windows アプリで引き続き管理され、http://localhost:11434 でサービスを提供します。要件:Windows 10 22H2 以降、x64、Windows PowerShell 5.1 以降、RAM 8 GiB 以上、デフォルトのローカルモデル用に空きディスク容量 15 GiB 以上(RAM 16 GiB を推奨、CPU コア数 4 以上を推奨)。仮想マシンにも同じゲストリソースが必要です。Proxmox/KVM では、host などの最新の CPU タイプを公開してください。インストーラーはダウンロード前に検出したハードウェアを表示し、qdrant.exe がそのマシンで実行できることを検証します。依存関係を別途用意する場合は、-SkipOllama または -SkipModels を使用してください。
1 つのコマンド(Linux + macOS)
curl -fsSL https://raw.githubusercontent.com/mclaut/ariadne/main/install.sh | sh
既存のインストールのアップグレード
トレイは6時間ごとに GitHub Releases を確認し、確認後、選択したリリースを正確にインストールします。macOS では、v0.8.16以降のインストーラーは毎回、Applications に Ariadne.app を作成または更新するため、その後のアップデートでもアプリ、ランチャー、トレイ、コマンドラインバイナリのバージョンが揃います。
現在実行中のトレイが v0.8.13以前 の場合、v0.8.14以前のアップデート引き継ぎ処理が、インストーラーの起動前に終了することがあります。次の固定コマンドを一度実行してください。
curl -fsSL https://raw.githubusercontent.com/mclaut/ariadne/v0.8.16/install.sh | sh
既存の Qdrant コレクション、バックアップ、設定、ログはそのまま再利用されます。v0.8.16が有効になった後は、通常の同意確認付きトレイアップデートが再び動作します。アップデートの診断が必要な場合は、~/.ariadne/logs/update.log を確認してください。
手作業は不要です。install.sh が Go とソース(GitHub tarball — git は不要です)をブートストラップし、以下のインストーラーを実行します。このインストーラーは Ollama、Qdrant、モデル、サービスを自動でインストールし、Linux ではトレイとそのデスクトップ依存関係もインストールします。インストーラーのフラグをそのまま渡せます。たとえば、より軽量な要約モデルを指定したり、プレビューを実行したりできます。
curl -fsSL https://raw.githubusercontent.com/mclaut/ariadne/main/install.sh | sh -s -- -summary-model qwen2.5:3b
curl -fsSL https://raw.githubusercontent.com/mclaut/ariadne/main/install.sh | sh -s -- -dry-run
curl -fsSL https://raw.githubusercontent.com/mclaut/ariadne/main/install.sh | sh -s -- -strict-supply-chain
(Linux でディストリビューションのパッケージと Ollama の公式インストーラーを使う場合、sudo の確認プロンプトはターミナルに表示されるため、パイプを使っても問題ありません。)
サプライチェーン関連の既定値は固定されています。install.sh は、ARIADNE_GO_VERSION が設定されていない場合は go1.26.2 をインストールし、展開前に Go の tarball の SHA256 を検証します。また、Go インストーラーは GitHub リリースアセットのダイジェストを確認したうえで、固定された -qdrant-version リリース(既定値は v1.18.2)から Qdrant をインストールします。制限の厳しい環境では、-strict-supply-chain を渡してください。Linux では、Ollama の curl | sh によるブートストラップが拒否され、先に Ollama を手動でインストールするよう求められます。
Linux と Ollama
Ariadne は、bge-m3 の埋め込みと、セッションフックが有効な場合のローカル要約モデルに Ollama を使用します。既存のローカル Ollama インストールがあれば再利用されます。ollama コマンドが見つからない場合、既定のインストーラーは Ollama の公式 Linux インストールスクリプトを実行し、http://localhost:11434 が利用可能になるまで待ってから、bge-m3 と設定済みの要約モデルをプルします。
Ollama はインストール済みでもデーモンが停止している場合は、Ariadne インストーラーを実行する前に起動してください。
sudo systemctl enable ollama
sudo systemctl start ollama
sudo systemctl status ollama
curl -fsS http://127.0.0.1:11434/api/version
Linux では、Ollama は OS が管理するシステムサービスとして動作し続けます。ariadnectl start、ariadnectl stop、ariadnectl restart コマンドは Ariadne の Qdrant ユーザーユニットを管理し、Ollama には意図的に干渉しません。systemd のないシステムでは、ローカルのサービスマネージャーの下で ollama serve を実行してください。手動パッケージ、ARM64、NVIDIA、AMD/ROCm のセットアップについては、Ollama の公式Linux インストールガイドを参照してください。
-strict-supply-chain を指定すると、Ariadne は Ollama の curl | sh インストーラーを実行しません。Ollama を自分でインストールして起動してから、Ariadne を再実行してください。-skip-deps を指定した場合も、Ollama と Linux のトレイ依存関係はすべて自分で用意する必要があります。別のマシン上の Ollama を再利用するには、そのマシンに必要なモデルを用意し、-skip-model-pull とともに -ollama http://host:11434 を渡してください。
クローンからのセットアップ(macOS/Linux、または開発する場合)
go run ./cmd/install -dry-run # preflight + plan, changes nothing
go run ./cmd/install -yes # do it
インストーラーは、既存のインフラに影響を与えないよう慎重に動作します。
- すでに実行中の Qdrant は再利用され、再起動も再設定もされません —
Ariadne は独自のコレクションを追加するだけです。Qdrant ではないプロセスが使用中のポートがある場合、インストールは中止されます。リモートインスタンスを指定するには
-qdrant-host/-qdrant-rest/-qdrant-grpcを、リモートの埋め込みモデルを指定するには-ollamaを使います。API キー認証と TLS が設定されていないリモート Qdrant は、(すでに暗号化されたプライベートトンネル用に明示的な安全でない接続の上書きを設定した場合を除き)フェイルクローズになります。 - GPU/RAM/ディスク容量を事前に確認し、不足があれば明確に通知します(GPU がない場合は「CPU で埋め込みを実行するため、約 10 倍遅くなります」と正直に警告し、RAM が 6GiB 未満、またはディスク容量が 5GiB 未満の場合はハード FAIL になります)。
- 冪等性があり、再実行すると、すでにセットアップ済みの項目はすべてスキップされます。
Qdrant のバイナリとサービス(macOS LaunchAgent/Linux systemd ユーザーユニット、ループバックのみ)をインストールし、Go バイナリを ~/.ariadne/bin にビルドし、bge-m3 を取得してコレクションを作成します。また、MCP サーバーを ~/.claude.json に登録し(バックアップを保持)、Claude Code のスキルをインストールします。
Codex やその他の MCP クライアントでは、~/.ariadne/bin/ariadne を stdio MCP サーバーとして登録することで、同じインストールを利用できます。
リリースアーカイブと MCPB
すべての安定版リリースには、5 つのターゲット向けネイティブアーカイブ、クロスプラットフォーム対応のポータブルな .mcpb、server.json、SHA256SUMS、CycloneDX SBOM、Sigstore バンドルが含まれています。MCPB には、サポート対象のすべてのプラットフォーム向け MCP サーバーが含まれています。Qdrant と Ollama は、引き続きネイティブ OS インストーラーで先にインストールする必要があります。手動でのダウンロードと検証ファイルについては、GitHub Releases をご覧ください。
手動セットアップ(macOS の例)
ランタイムは ~/.ariadne にあります(バイナリ、データ、バックアップ、ログ)。リポジトリにはソースのみを格納します。macOS では、これは単なる好みの問題ではありません。launchd エージェントは ~/Desktop/~/Documents の下にあるプログラムを実行したり、ログを書き込んだりできないため(TCC)、EX_CONFIG と空のログを残して終了します。ランタイムはこれらのフォルダーの外に置いてください。
mkdir -p ~/.ariadne/{bin,backups,logs}
# 1. Qdrant (native binary — no Docker)
curl -sL https://github.com/qdrant/qdrant/releases/latest/download/qdrant-aarch64-apple-darwin.tar.gz \
| tar xz -C ~/.ariadne/bin
# 2. Ollama + bge-m3 (native, Metal)
brew install ollama && brew services start ollama
ollama pull bge-m3
# 3. Build + install
go build -o ~/.ariadne/bin/ariadne ./cmd/ariadne
go build -o ~/.ariadne/bin/ariadnectl ./cmd/ariadnectl
go build -o ~/.ariadne/bin/import ./cmd/import
# 4. Qdrant as a service (see the TCC note above)
sed "s|__HOME__|$HOME|g" deploy/com.ariadne.qdrant.plist > ~/Library/LaunchAgents/com.ariadne.qdrant.plist
launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.ariadne.qdrant.plist
# 5. Register with Claude Code — add to ~/.claude.json mcpServers:
# "ariadne": { "type": "stdio", "command": "<home>/.ariadne/bin/ariadne" }
セキュリティ: Qdrant はデフォルトで認証がありません。テンプレートでは 127.0.0.1 にバインドしています(QDRANT__SERVICE__HOST)。LAN 上に公開しないでください。メモリは平文のペイロードとして保存されます。意図的にリモート Qdrant を使う場合は、サーバーに管理者またはコレクション単位の API キーを設定し、ARIADNE_QDRANT_API_KEY_FILE(推奨、モード 0600)またはプロセス限定の ARIADNE_QDRANT_API_KEY と、ARIADNE_QDRANT_TLS=1 を使って Ariadne を設定してください。Go クライアントは gRPC メタデータを通じてキーを送信し、Qdrant へのすべての REST リクエストで api-key ヘッダーを使用します。Qdrant 自体も、API キーを使用する場合は TLS を推奨しています。インストーラーではファイル形式を受け付けるため、生成される MCP 設定にはシークレットの値ではなくパスだけが保持されます。生成されるメンテナンス用、フック用、トレイ用ランチャーにも、同じ非シークレットのクライアント設定が渡されます。ARIADNE_QDRANT_ALLOW_INSECURE_REMOTE=1 は、プライベートトンネルなど、別途暗号化された通信に使うための明示的な回避策です。通常の LAN では使用しないでください。
環境変数による設定(角括弧内はデフォルト値):ARIADNE_QDRANT_HOST [localhost]、ARIADNE_QDRANT_PORT [6334]、ARIADNE_QDRANT_REST
[http://localhost:6333]、ARIADNE_QDRANT_API_KEY_FILE、
ARIADNE_QDRANT_API_KEY、ARIADNE_QDRANT_TLS [0]、
ARIADNE_QDRANT_ALLOW_INSECURE_REMOTE [0]、ARIADNE_OLLAMA
[http://localhost:11434]、ARIADNE_MODEL [bge-m3]、
ARIADNE_COLLECTION [ariadne]。
Codex と Claude Code のスキル
skills/ariadne/ は、エージェントに、いつ想起するか、何を保存しないか、スタックをどのように操作するかを教えます。tools/doctor.sh は一連の構成要素(バイナリ → サービス → モデル → コレクション → バインディング → MCP 登録)を確認し、tools/recall.sh "query" は MCP を使わずに CLI で想起します。インストールしてください(実体のコピーが必要です。シンボリックリンクされたスキルはセッション開始時に検出されません)。
cp -R skills/ariadne ~/.claude/skills/ariadne
cp -R skills/ariadne ~/.codex/skills/ariadne
セッションフック — 自動呼び出しと自動キャプチャ
インストーラーは、Claude Code のライフサイクルフックを 2 つ登録します(cmd/hook、バイナリは
ariadne-hook。-skip-hooks でスキップできます)。
- SessionStart → 自動呼び出し。 メモリがあるプロジェクト(wing = 最も近いプロジェクトルートまたはその
.ariadne-wingマーカー)でセッションが開始すると、上位の検索結果がコンテキストとして挿入されます — Claude は最初のメッセージを送る前にプロジェクトを「記憶」します。メモリのないプロジェクトは完全にクリーンな状態で開始され、エラーは通知されず、セッションを妨げることもありません。 - SessionEnd → 自動キャプチャ。 切り離されたワーカー(セッションの終了が妨げられることはありません)がトランスクリプトを解析し、決定論的な事実(ブランチ、
コミット、所要時間)を抽出して、ローカル Ollama チャットモデルに 4~8 文の要約(理由を含む決定、修正、未解決項目)を作成するよう依頼します。セッションごとに、厳選された日誌メモリを 1 件作成します。生のトランスクリプトは保存されません。些細なセッションはスキップされます(最小ターン数のガードに加え、要約モデルが
SKIPと回答できます)。 ログ:~/.ariadne/logs/capture.log。
環境変数で設定します。ARIADNE_CAPTURE=0 でキャプチャを無効にできます。
ARIADNE_SUMMARY_OLLAMA [デフォルトは ARIADNE_OLLAMA または localhost]、
ARIADNE_SUMMARY_MODEL [qwen2.5:7b]、ARIADNE_CAPTURE_MIN_TURNS [3]。デフォルトでは要約エンドポイントはローカルでなければなりません。リモートの要約モデルを意図的に使用する場合は、ARIADNE_SUMMARY_OLLAMA と ARIADNE_CAPTURE_REMOTE=1 を設定してください。要約のために、短縮されたトランスクリプトのテキストがそのエンドポイントに送信されるためです。
要約モデルはキャプチャ時にのみ読み込まれ、直後にアンロードされます
(keep_alive:0)。そのため、RAM を使用するのは短時間だけです。使用量をさらに抑えるには、ARIADNE_SUMMARY_MODEL=qwen2.5:3b を設定します(約 2GB 対 約 4.7GB。要約の品質は多少低下します) —
または、インストーラーに -summary-model を渡して、そのモデルをダウンロードしてください。
キャプチャの遅延を増やさずに、統合ではより高性能なモデルを使用できます。
ARIADNE_CONSOLIDATION_MODEL は ARIADNE_SUMMARY_MODEL にフォールバックし、
ARIADNE_CONSOLIDATION_JUDGE_MODEL は統合モデルにフォールバックします。24GB のマシンでは、両方の役割に qwen2.5:14b(約 9GB)を実行できます。定期メンテナンスを変更する前に、ドライランで検証してください。
日次日誌の統合
ariadnectl consolidate は、短期的なセッションの時系列情報を、コンパクトな長期知識に変換します。デフォルトでは、24 時間より前の room=diary エントリを選択し、キャプチャされた各セッションをアトミックに処理した後、各プロジェクト(wing)内で同日に作成された検証済みの出力をまとめ、重複を排除します。設定されたローカル統合モデルは、decisions、gotchas、reference のメモリのみを生成します。リクエストは、上限のあるソーストークン予算に合わせて分割されます。
結果が空の場合、まずソースに candidate_empty のマークが付けられます。その後、デフォルトの 7 日間の猶予期間を過ぎてから実行した処理でも結果が空の場合に限り、アーカイブできます。その際は empty_confirmed として記録されます。
自動統合では、アーカイブが必要で、かつ最新のバックアップが 7 日より古い場合にのみ、ネイティブ Qdrant バックアップを作成します(ARIADNE_BACKUP_MIN_INTERVAL で変更できます)。手動の ariadnectl backup は常に実行されます。新しいメモリはソースの日誌エントリにアーカイブ済みのマークを付ける前に保存されます。ソースのテキストとベクトルは保持されます。決定論的な失敗はアクティブなままとなり、モデルとパイプラインのリビジョンマーカーが付与されるため、入力に変更がなければ、モデルまたはキュレーションパイプラインが変更された場合にのみ再検討されます。より長いレビュー期間を指定するには --before 48h を使用し、ストアや本番環境のアクティビティ履歴を変更せずに出力を確認するには --dry-run を使用してください。アーカイブ済みの履歴を検索するには include_archived: true を指定します。ARIADNE_CAPTURE_REMOTE=1 が明示的に設定されていない限り、リモートの要約エンドポイントは引き続きブロックされます。
コーディングメモリーの評価
チェックイン済みのテストスイートでは、稼働中のデータベースやモデルを使わずに、過去のランキング不変条件を検証します。
go run ./cmd/eval -cases evaluation/coding-memory.json
現在は、明示的に時間を指定したクエリに対する新しさ、永続的な判断に対する無条件の減衰がないこと、セマンティック優位性の上限、サイズ超過のレガシーペイロード、ソースの品質、多言語の時間的意図を対象としています。実際の BM25 と学習済みスパース出力を比較するには、同じ評価済みクエリについて、順序付きポイント ID をエクスポートして次を実行します。
go run ./cmd/eval \
-retrieval-runs evaluation/retrieval-runs.example.json \
-baseline bm25
比較では、各カットオフにおけるマクロ平均の Recall、MRR、nDCG、nDCG の差分が報告されます。-json を指定すると、機械可読なスコアが出力されます。チェックイン済みのファイルは説明用のスキーマであり、製品の根拠ではありません。実際に結論を出すには、同じコーパス、クエリセット、フィルター、カットオフを使用し、関連性の判定と実行結果を固定する必要があります。評価ツールが Qdrant、Ollama、リモートモデルに接続することはなく、メモリーを変更することもありません。
モニター
トレイ/メニューバーのモニターは、5 秒ごとに ariadnectl status -json をポーリングし、緑/オレンジ/赤/グレーのアイコン、サービスごとの詳細、起動/停止/再起動/バックアップの操作を表示します。また、サービスが停止したときに通知します。メニューとツールチップには、現在の Ariadne バージョンが表示されます。バックグラウンドで 6 時間ごとに GitHub Releases を確認し、Windows、macOS、Linux で新しい安定版がある場合、同意を得たうえでアップデートを提案します。アップデートの出力は ~/.ariadne/logs/update.log に書き込まれます。ariadne-tray UI は 7 言語(English、Українська、Deutsch、Italiano、Español、Français、Polski)にローカライズされており、現在の言語をひと目で確認できるライブ 🌐 言語切り替え機能を備えています。選択した言語は ~/.ariadne/lang に保存され、ariadnectl もその設定に従うため、インターフェース全体で言語が統一されます。言語の追加は internal/i18n にブロックを 1 つ追加するだけです。
推定トークン削減量
Ariadne は、観測された想起コンテキストのうちどれだけを提供したか、および各メモリーが表す、上限のあるソースコンテキスト量をローカルで記録します。トレイには、これまでに測定された削減量、帰属カバレッジ、想起回数、帰属されない提供量が表示されます。すべてのカウンターは次のコマンドで確認できます。
ariadnectl metrics
ariadnectl metrics -json
ソースに裏付けられた想起では、測定上の純削減量は、表現されたソースコンテキスト量から、観測された全コスト(クエリと応答)のうち帰属される割合を差し引いて算出します。同じクライアントセッション中に同じメモリーを 2 回想起した場合、ソースのクレジットは 1 回だけ加算されますが、提供回数は 2 回としてカウントされます。ソースサイズのメタデータがないレガシー/手動メモリーには、根拠のないメリットを付与しません。負のオーバーヘッドとしてではなく、unattributed として別途コストを報告します。memory_save では、上限のあるソースサイズが分かるインテグレーション向けの任意の source_tokens と、過去の事実向けの occurred_at を受け付けます。取得と統合では、来歴が自動的に記録されます。決定論的な多言語推定では、クライアントやモデルによって正確なトークナイザーが異なるため、UTF-8 バイト数を使用します。~ は保守的なコンテキスト再利用の推定値を示すものであり、プロバイダーへの課金額や A/B テストによる反実仮想のカウンターではありません。メトリクスには数値カウンターと不透明なハッシュのみが含まれ、メモリーやトランスクリプトのテキストは含まれません。また、ユーザーのみがアクセスできる権限で ~/.ariadne/metrics.db に保存されます。生イベントは追記専用です。スキーマ v3 では、読み取り量に上限を設けた長期参照に対応するトランザクション処理付きの日次サマリーを維持し、ローリング時間ウィンドウにインデックスを付けます。新規レコードを無効にするには ARIADNE_METRICS=0 を設定します。
ariadne-tray(純粋な Go 製、fyne.io/systray)は、すべてのプラットフォームでモニターとして動作します。インストーラーはこれを~/.ariadne/binにビルドし、自動起動に登録します。Linux では~/.config/autostartエントリー、macOS ではcom.ariadne.trayLaunchAgent を使用します(旧 Swift モニターがあれば移行し、アイコンが 1 つだけ表示されるようにします)。Linux では StatusNotifierItem ホストが必要です(KDE/XFCE では標準で対応しています。GNOME では "AppIndicator and KStatusNotifierItem" 拡張機能をインストールしてください)。Windows では、現在のユーザーのスケジュール済みタスクから起動し、署名済みリリースアーカイブを通じて更新されます。
バックアップとポータビリティ
異なる2つの概念があります。
- バックアップ/復元 — 高速な、Qdrant ネイティブの完全なスナップショットです(ベクトルを含みます。復元は1対1で、埋め込みモデルに依存します)。破損後の復旧に使用します。
ariadnectl backup # 10 recent snapshots; older ones move to backups/archive ariadnectl restore <file> # recover the collection from a snapshot (destructive) - エクスポート/インポート — テキスト、スコープ、来歴、履歴ステータス、タイムスタンプ、ソースの記録を含む、ポータブルな JSONL です(ベクトルを含まないため、マシン間で移動でき、任意のモデルで再度埋め込みできます)。移行や調査に使用します。
ariadnectl export [file] # all memories → JSONL import -source jsonl -file export.jsonl # re-embed + upsert an export
import では、アーカイブされた chromadb の sqlite(-source chroma -db <file>)や、Markdown のメモファイル(-source memfiles)からのバックフィルも行えます。
すべてのインポートは、(wing, room, text) のスコープ内で冪等です。同一のテキストが、異なるプロジェクトやルームに意図的に存在してもかまいません。memfiles では、-sync はプライバシーに配慮したソースキーと相対ソースパスを使用し、埋め込みの前に変更のないファイルをスキップします。変更されたリビジョンを先にインポートし、元のイベント時刻を保持して、以前のチャンクを superseded、消失したソースのチャンクを orphaned としてマークします。履歴は削除しません。
インストーラーは、リトライ回数に上限を設けた memfile の同期と日記の統合を実行する日次エージェント(com.ariadne.sync/ariadne-sync.timer)を登録します。大量のメモを編集した後は、ariadnectl maintenance またはトレイボタンを使用してください。
-force フラグは、明示的な移行/修復処理に限って使用します。通常の同期では省略し、変更のないリビジョンが埋め込みキューに追加されないようにしてください。
ステータス
v0.8.18 — 最新リリースです。アクセスセクションはトレイの上部近くに配置され、保留中の項目のみを表示する判断キュー、10件ずつのページに分けて保持される履歴、詳細画面で全スコープを確認できる、読みやすい目的/ステータス行を備えています。
v0.8.16 では、ネイティブアイコンを備えた署名済み macOS Ariadne.app を Applications に追加しました。ワンクリックで、管理対象のトレイ LaunchAgent を復元または再登録できます。また、プラットフォーム別のランチャーテストにより、Windows CI のゲートを維持しています。
v0.8.14 では、トレイの終了前に macOS トレイ更新ヘルパーが独立して実行され、明示的な引き継ぎ診断が追記されるようになりました。これにより、更新が確定したのにインストーラーが使用されないままになる問題を防ぎます。
v0.8.13 では、上限付きの統合期限を新しい永続化コンテキストで安全に延期できるようになりました。これにより、変更されていないソース日記はそのまま保たれ、トレイは誤ったメンテナンス失敗ではなく、正常な complete_with_deferred の結果を報告します。v0.8.12 では、所有者が正確に承認した認証情報の信頼機能(追記専用の信頼・使用・取り消し記録付き)、推論能力のある Ollama モデル向けの決定論的な JSON 専用統合、スケジュールされた子プロセスが停止して数時間も実行中のままになるのを防ぐ20分のメンテナンス監視期限を追加しました。また、クロスプラットフォームの単一インスタンス・トレイ制御、正規の launchd 所有権調整、履歴を保持したレガシー plist のアーカイブ、実際のトレイプロセス診断、情報損失のない Qdrant 帰属情報のページネーション、想起可能なコーパスと履歴コーパスの集計、実測値と推定値の来歴の区別、明示的で安全な帰属情報のバックフィル、エージェント側での上限付きソース集計、単一接続の MCP クライアント、launchd の記述子容量、ペイロードインデックスの調整、Qdrant クライアントのグレースフルなシャットダウン、記述子の逼迫に関する診断、認証失敗時に閉じるリモート Qdrant 認証、追記専用の metrics v3 ロールアップ、ページネーション対応の完全なコレクションスキャン、決定論的な BM25/学習型スパース評価、再利用可能なメンテナンスオーケストレーション、元に戻せるサイトのクリーンアップ、検証済みの Qdrant/Ollama ライフサイクル操作、launchd に安全な Homebrew の解決、再起動後も保持される通知、PID の可観測性、競合のないサービス制御、意図的な二ボタン承認警告、信頼性の高い監視下でのトレイ再起動、正確なサービス制御エラー、コンテキスト遷移をまたいで保持される Claude の想起、更新を考慮したフックとスキル、macOS のフォアグラウンド承認警告、ユーザー承認に基づくウィング間想起、オリジンの重み付け、1回限りの認証情報付与、追記専用の承認監査、デフォルト拒否のプロジェクト想起、決定論的な認証情報のブロック/秘匿化、追記専用のシークレット隔離、安定したプロジェクトマーカー、実行時の所有権診断、修復を考慮したメンテナンス、トレイのライフサイクルログ、正確なフルスタック doctor チェック、正確な ID 取得、ルームスコープのハイブリッド想起、追記専用のソース履歴、保守的な時間順位付け、スコープ付き ID、増分的でタイムスタンプ安全な memfile 同期、2段階の空の統合、履歴/ストレージの可観測性を備えた再試行回数制限付きメンテナンス、参照/レポートの即時かつ永続的な取り込み、正確なトークン効率の集計、自動日次日記蒸留、明示的な Windows クライアント設定、ローカルのトークン効率メトリクス、ネイティブデスクトップインストール、セッションフック(自動想起+厳選された自動取り込み)、時系列順の日記もすべて稼働中です。数千件のメモリが日常的に使われています。一括インポートでは埋め込みをまとめて処理し、大規模なバックフィルを大幅に高速化します。形態論が豊かな言語で BM25 の性能が不十分な場合は、学習型スパースへのアップグレード(CUDA マシン上の bge-m3 SPLADE)をオプションで利用できます。
貢献とセキュリティ
再現可能なバグ報告、ネイティブ Windows インストーラーに関するフィードバック、対象を絞った機能リクエストは、 issue chooser からお寄せください。セットアップや使い方に関する質問は、 GitHub Discussions で受け付けています。ローカルでのチェックやプルリクエストの手引きについては、CONTRIBUTING.md をご覧ください。
生成されたサイトの成果物は、データを失わずに作業ツリーから削除できます。make clean は、復元マニフェストとともにビルド出力を ~/.ariadne/archive/site/ に移動します。make clean-all では site/node_modules も対象に含まれます。
脆弱性について、公開 issue を作成しないでください。SECURITY.md に従い、代わりに GitHub の非公開の脆弱性報告機能をご利用ください。
貢献者
- プロジェクトメンテナー — アーキテクチャ、製品の方向性、検証、リリースの判断。
- OpenAI Codex — 実装、テスト、ドキュメント、クロスプラットフォームのパッケージング、リリースエンジニアリング。
- Claude Code — 実装、ローカライズ、インストーラーの強化、クロスプラットフォームのランタイム改善。
AI の支援による変更はすべて、メンテナーがレビューして承認しています。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。