Show HN:AIエージェントにあなた自身を理解させる——ローカルファーストなMCPセルフモデル
Almaは、AIエージェントにユーザー管理下の安全な記憶を提供するローカルファーストのMCPサーバーです。個人の好みや事実をデバイス上に保存し、書き込みには人間の承認が必要で、エージェントが知り得る情報を細かく制御できます。
AIエージェントが長期にわたる協働パートナーとなるにつれ、ユーザーの好みや文脈を記憶させる方法が重要になっています。現行のソリューションはデータを特定のベンダーアカウントに閉じ込めがちで、ツール間での共有が難しく、ユーザーによる監査や制御が不十分です。Almaプロジェクトはこの課題に取り組み、エージェントがユーザーを理解できるようにしながら、データの支配権を完全にユーザーに取り戻すことを目指しています。
Almaの核となる概念は「セルフモデル」で、これは「ファセット」と呼ばれる一連の事実で構成されます。各ファセットは、表示名や作業スタイルの好みなど特定の次元に対応し、ステータス、信頼度、ソース、証拠を持ちます。すべてのデータは追記専用のイベントログに保存され、現在の状態はログから再構築されるため、すべての変更を監査可能で、ロールバックも容易です。
セキュリティとプライバシー面では、AlmaはデフォルトでAIエージェントを信頼せず、ローカルユーザーを権威と見なします。読み取りは許可と目的によって制限され、デフォルトは最小権限です。機密性の高いレイヤーやレンズ名前空間はオプトインです。管理操作はCLIまたはコンパニオンインターフェースを介して行います。すべての読み取りリクエストは監査され、完全エクスポートは管理者のみ可能です。
エージェントはMCPプロトコルを介してAlmaと通信します。読み取りツールalma_get_readingはユーザーの質問に基づいて関連する次元を抽出し、書き込みには提案と承認の2段階が必要です。エージェントがalma_propose_facetを呼び出すと、Almaは確認質問を返します。ユーザーがCLIまたはコンパニオンで承認すると、エージェントはワンタイムトークンを使用してalma_record_facetを実行できます。承認トークンなしでは永続的な書き込みはできません。
現在、Almaは3つのローカルバイナリを提供しています:alma-server(MCPサーバー)、alma(CLI管理ツール)、alma-companion(TUIインターフェース)。これらはすべて同じデータストアを共有し、環境変数でパスを上書きできます。まだパッケージリリースはなく、ソースからコンパイルする必要があります。コンパニオンインターフェースでは、ファセットの閲覧と確認、エージェントが受け取る読み取り内容のプレビュー、許可と監査イベントの確認などが行えます。
移植性にも配慮しており、alma_export_bundleコマンドでイベントログ全体をJWS署名付きのコンパクトバンドルとしてエクスポートできます。公開鍵はヘッダーに埋め込まれ、事前の鍵交換なしで検証可能です。また、alma deleteコマンドでローカルデータを完全に消去できます。この操作は人間のみが実行でき、MCPツールとしては公開されていません。
プロトコル仕様はリポジトリ内のJSON Schemaと適合性テストスイートで提供されています。プロジェクトはRustで書かれ、Apache-2.0ライセンスで公開されています。まだ実験段階でAPIは変更される可能性がありますが、AIエージェントの記憶を真にユーザーのものにするという方向性は注目に値します。