IT2026年5月23日

エージェント群のための共有メモリ: hermes-memory-pgvector

Andrea Borghi による
エージェント群のための共有メモリ: hermes-memory-pgvector

エージェント群のための共有メモリ: hermes-memory-pgvector

複数の AI エージェント(マーケティング用ミニオン、トレーディング用ミニオン、インシデント対応用ミニオンなど)を運用する場合、それぞれにメモリが必要になります。組み込みのメモリツールは各エージェントに個別のメモリを与えます。エージェント間で共有したい場合や、6 週間前にエージェントが学んだことを LLM のラウンドトリップを支払って検索せずに思い出したくなるまでは、それで問題ありません。

hermes-memory-pgvector は、エージェントのメモリ書き込みを共有・埋め込み済み・検索可能なストアにミラーリングする小さな Postgres + pgvector プラグインです。PyPI での現行リリース: v1.0.0。

v1.0.0 の新機能 — 安定した公開インターフェース

1.0.0 は、セマンティックバージョニングに基づき、公開インターフェースを安定として宣言します。具体的には、設定キー、ツール名、CLI コマンドと終了コード、テーブル名です。データ損失バグ 1 件と一連の小さな問題を修正した複数回にわたるプレリリースレビューを経てリリースされており、0.6.0 からのスキーマ変更はありません。v0.5.0 以降、プレーンな pip install でエントリポイント経由でプロバイダが登録されるため、以下で説明する検出用シムは古いホストでのみ必要です。詳細: hermes-memory-pgvector 1.0: 安定したメモリインターフェース

v0.4.2 の新機能 — pip ネイティブインストール

hermes-agent は、メモリプロバイダをプラグインのディレクトリ (plugins/memory/<name>/ 同梱、$HERMES_HOME/plugins/<name>/ ユーザー) をスキャンして検出します。site-packages 内は決して見ないため、pip install だけだとプラグインは正しくインストールされますが、完全に不可視のままでした。v0.4.2 ではこのギャップを埋めました。pip install でコードをマシンに配置し、hermes-pgvector install コマンドを 1 回実行することで、フレームワークが実際に読み取る検出用シムが生成されます。

v0.4.1 の新機能 — ハイブリッド検索(ベクトル + 全文)

recall_memory と recall_conversation は、Reciprocal Rank Fusion(k=60) を使用して HNSW コサインランキングと PostgreSQL 全文ランキングを融合するようになりました。行はいずれかのランカーがそれを好めば浮上するため、ベクトル検索のみの 2 つの死角、すなわちコサイン検索でならされて消える厳密な字面一致(エラーコード、ホスト名、フラグ、稀少な識別子)と、ベクトルインデックスが一切参照できない NULL 埋め込みのテキストのみの行(埋め込みエンドポイントがダウンしている間に書き込まれたもの) を修正します。ハイブリッド検索は、次の backfill 実行までの間、これらの行に対する最善努力のリカバリも兼ねます。

v0.4.0 で追加された機能

このリリースは「hot path に LLM を介さない」という原則を維持しつつ、ストレージ層の機能を 4 つ追加しました。

  • アイデンティティガバナンス。 ダイレクトメッセージのセッションキーは、単一のプライバシーに配慮したバケットに集約されます。連絡先ごとのテーマの乱立はなく、PII もなく、ベンチマークトラフィックは隔離されます。オプションの許可リストにより、タイプミスされたテーマ名は、新しいテーマ名を黙って発行する代わりに、安全なデフォルトにルーティングされます。
  • エージェント帰属と委任。 新しいレジストリと来歴エッジにより、どのエージェントが何の処理を誰に委任したかを記録し、データベースビューで検索可能にします。純粋に「誰が・いつ」の来賠情報であり、ファクトストアではありません。
  • 埋め込みバックフィル。 埋め込みエンドポイントの障害中にテキストのみで書き込まれた行が孤立することはもうありません。べき等なコマンドを 1 回実行すれば再埋め込みされ、再び検索可能になります。
  • 会話 TTL とコスト管理。 オペレーター実行のプルーンにより古いチャットターンが削除されます(永続メモリは決して削除されません)。埋め込みポリシーにより、埋め込みコストを上下に調整できます。

これらはすべて、保守用 CLI(hermes-pgvector) を通じて提供され、破壊的なコマンドはデフォルトでドライランとなります。0.4.x ラインは v0.3.x からドロップインアップグレードです。加算的マイグレーションを適用すれば新しいフックが点灯し、適用しなくても他のすべては変更なく動作します。

実際に何をするか

一言で言えば、*「組み込みメモリモデルに、永続的でマルチテナントかつ意味検索可能なバッキングを与え、hot path に LLM を介さないストレージ層」*です。

HNSW ベクトルインデックスを持つ 2 つのテーブル。memory_entries は、エージェントの MEMORY.md/USER.md ファイルへの書き込みをミラーリングします。conversations は実質的なチャットターン(40 文字以上、定型文は除外)を保存します。埋め込みは 768 次元で、外部エンドポイント(Ollama、OpenAI 互換、お好みで) によって計算されます。エージェントはそれを待つ必要はありません。書き込みはマイクロ秒単位で返され、バックグラウンドキューに残りの処理を埋め込みワーカーが行います。

デフォルトでエージェント別テーマ

すべてのリクエストには agent_identity でデータをスコープする X-Hermes-Session-Key ヘッダーが含まれます。マーケティングのメモがトレーディングの検索結果を汚染することはありません。テーマを横断した検索が実際に行いたい場合は、明示的に scope='all' を渡してください。デフォルトは安全な方です。

なぜフォークではなくスタンドアロンか

hermes-agent はポリシーにより組み込みメモリプロバイダのリストを閉鎖しているため、これは上流フォークではなく別個の /plugins ディレクトリスキャンとして存在します。エージェントの隣に配置し、いくつかの設定キーを設定して再起動します。ロールバックも対称的です。プロバイダを無効化し、必要に応じてテーブルを削除します。移行する長寿命状態はなく、保守するカーネルパッチもありません。

何ではないのか

Honcho の代替ではありません。ナレッジグラフではありません。RAG フレームワークでもありません。意図的に、組み込みメモリツールを共有・永続・ベクトル検索可能なストアに変換するという 1 つのことだけを行い、邪魔にならない薄い層です。LLM 派生機能もなく、弁証法的なループもなく、チャンク分割やリランキングの意見もありません。ただベクトル演算だけです。

入手方法

pip install hermes-memory-pgvector
hermes-pgvector install

ソース、マイグレーション、設定は GitHub で:

👉 github.com/andreab67/hermes-memory-pgvector