BHGBrainは一週間前にオープンソースMCPメモリサーバーとしてローンチされました: SQLiteとQdrant上に構築されたAIエージェント向けの共有ベクトルブレインで、セマンティックリコール、自動重複排除、ハイブリッド検索を備えています。初回リリースはコアアーキテクチャをカバーしました — デュアルストア書き込みパイプライン、メモリ型、名前空間、コレクション、エンタープライズ認証、マルチエージェントシナリオ。

今回のアップデートはそれ以降に出荷された内容をカバーします: 完全なメモリライフサイクルシステム、大幅に改善された検索、運用安全性機能、多言語ドキュメント。これらは小さな追加ではありません — 特に段階的リテンションシステムはフラットストレージをインテリジェントライフサイクル管理に置き換え、時間と共にエージェントがメモリと相互作用する方法を変えるものです。


メモリライフサイクル: ティア、スライディングウィンドウ、自動昇格

段階的リテンション(T0〜T3)

BHGBrainのすべてのメモリは書き込み時にリテンションティアが割り当てられます。4つのティアが恒久的な参照ナレッジからエフェメラルなワーキングコンテキストまで全スペクトラムをカバーします:

ティアラベルTTL典型的なコンテンツ
T0基盤的期限切れなしアーキテクチャ参照、コンプライアンス要件、企業ポリシー
T1制度的ゼロアクセスから1年設計決定、API契約、ランブック、コーディング標準
T2運用ゼロアクセスから90日プロジェクト状況、スプリント成果、技術調査
T3エフェメラルゼロアクセスから30日障害チケット、メール要約、デバッグセッション

ティア割り当ては優先チェーンに従います: 明示的な呼び出し元指定retention_tierが優先、それ以外はカテゴリは常にT0、次にソースベースのヒューリスティック(プロシージャルエージェントメモリ→T1、エピソディック→T2)、抽出パイプラインがアクティブな場合はLLM分類、最後に何も一致しない場合はT2デフォルト。

T0メモリは期限切れになりません。すべてのクリーンアップジョブから除外され、ベクターストアの再構築が必要な場合に備えてSQLiteに完全コンテンツで保存され、ハイブリッド検索結果で+0.1スコアブーストを受けます。

スライディングウィンドウTTL

TTLは作成日ベースではなくアクセスベースです。メモリがリコールまたは検索されるたびに、その期限時計はその瞬間から完全TTLにリセットされます。28日前に作成されたT3メモリが今日リコールされると今から30日に延長されます。

つまりメモリ劣化は実際の使用量に駆動されます。エージェントが積極的に参照するメモリは生き続けます。本当に使われなくなったメモリは手動管理なしに自然に劣化します。事前にどのメモリが長期重要か推測する必要はありません。

自動昇格

TTLウィンドウ内に5回以上アクセスされたT2またはT3メモリは自動的に1ティア昇格します — T3はT2へ、T2はT1へ。運用ナレッジが一貫して有用だと証明されれば、システムがそれを認識し介入なしにより耐久性のあるストレージを与えます。

スライディングウィンドウTTLと組み合わさることで、リテンションシステムは事前分類が完璧であることを要求せず、実際のエージェント振る舞いに適応します。


検索の改善

ハイブリッドRRF検索

検索エンジンは現在**Reciprocal Rank Fusion(RRF)**を使用して2つの独立した検索パスからの結果を統合します:

  • セマンティックベクトル検索 — Qdrant埋め込みに対するコサイン類似度(デフォルト70%重み)
  • 全文BM25検索 — SQLite内FTS5インデックス(デフォルト30%重み)

RRFは各システムからの結果を独立にランク付けし、両リストでの各結果の位置に基づいて combined スコアを計算します。セマンティックで3位・全文で8位のメモリは、セマンティックで1位・全文で圏外のメモリより高スコアになります。

{
  "tool": "bhgbrain.search",
  "params": {
    "query": "authentication architecture decisions",
    "mode": "hybrid",
    "limit": 10
  }
}

3つの検索モードが利用可能です: semanticfulltexthybrid。ワークロードが正確一致検索や純セマンティックリコールに偏る場合、config.jsonで重みを設定できます。

recallツール(searchとは別)はセッション開始時のコンテキスト注入に最適化されています — ティアブースト付きセマンティック検索を使用し、最低スコア閾値を適用します。searchは完全フィルタとモードサポート付きの汎用ツールです。

改良されたセマンティック重複排除

重複排除は新規メモリ保存前に2パスを実行します:

  1. SHA-256チェックサムマッチング — ハッシュ前にコンテンツを正規化(空白省略、大文字小文字畳み込み、句読点除去)。軽微なフォーマット差異のある機能的に同一のコンテンツは埋め込み計算前にここで捕捉されます。

  2. コサイン類似度閾値 — 新メモリの埋め込みを既存メモリと比較します。ベースライン閾値は0.92で、ティア調整閾値を適用: T0とT1メモリはより厳しい閾値(耐久ナレッジに対する重複排除が困難)、T3はより緩い閾値(エフェメラルコンテンツはより積極的に重複排除)。

重複が検出された場合、受信メモリは既存レコードに統合されます — 第2エントリを作成する代わりに、アクセス時間を更新しタグを統合し、より高いリテンションティアを保持します。ベクトル空間はクリーンに保たれます。

重要度スコアリング

メモリは現在importanceフィールド(0.0〜1.0、デフォルト0.5)を持ち、検索結果ランキングに影響します。重要度の高いメモリはリコール結果でスコアブーストを受け、正確なクエリマッチで取得されなくても重要なナレッジが目立つようになります。

メモリ保存時に重要度を明示的に設定:

{
  "tool": "bhgbrain.remember",
  "params": {
    "content": "All database writes must go through the repository layer. No direct ORM calls in service code.",
    "type": "procedural",
    "retention_tier": "T1",
    "importance": 0.9,
    "category": "coding-standards"
  }
}

運用安全性

容量予算

各ティアに名前空間単位のメモリ制限があります:

ティアデフォルト制限
T0無制限
T1100,000メモリ
T2200,000メモリ
T3200,000メモリ

ティアが制限に近づくと/healthエンドポイントが報告します。制限はconfig.jsonで設定可能です。これにより、T2/T3の高ボリュームエージェントワークロードによる無制限増大がベクトル空間でT0/T1ナレッジを圧迫するのを防ぎます。

事前期限切れ警告

メモリが期限切れになる7日前にメタデータストアにフラグが付きます。エージェントとオペレーターはヘルスエンドポイントをクエリするかCLIを使用して期限切れ接近のメモリをリストできます:

bhgbrain list --expiring-within 7d

このウィンドウが介入時間を与えます — メモリを手動昇格する、TTLをリセットする、またはアーカイブ準備完了と判断する。

削除前アーカイブ

期限切れメモリは直接削除されません。アクティブメモリストアとQdrantから削除前にSQLiteのarchiveテーブルに移動されます。アーカイブはCLI経由でクエリ可能で、完全コンテンツ、メタデータ、アクセス履歴を保持します。

メモリが誤ってアーカイブされた場合 — またはエフェメラルに見えたものが重要だった場合 — 復元できます。明示的削除なしに完全に失われることはありません。

原子書き込みと遅延フラッシュ

リテンションシステムに並行して2つのパフォーマンス・信頼性改善が出荷されました:

原子書き込み — すべてのSQLiteディスクI/Oがtemp書き込み後にリネームするパターンを使用します。ディスク上のデータベースファイルが部分的書き込み状態になることはありません。プロセスが書き込み途中でクラッシュしても、以前の有効状態が保持されます。

遅延フラッシュ — アクセスメタデータ更新(最終アクセスタイムスタンプ、自動昇格用アクセス数)は最大5秒間メモリにバッチ化されてからディスクにフラッシュされます。読み取り heavy パス — セッション開始時に大量コンテキスト注入を行うエージェント — では、TTL精度に実質的影響を与えずにリコールごとのデータベース書き込みを排除します。


カテゴリ: 永続ポリシースロット

カテゴリは、名前空間内のすべてのエージェントが一貫してアクセスできる構造化参照コンテンツ向けの名前付きストレージスロットです。通常のメモリとは異なり、カテゴリはティアに関わらずすべてのクリーンアップサイクルを生き残り、TTLがなく、予測可能なスロット形式でコンテキストに注入されます。

ユースケースにはアーキテクチャ決定記録、コーディング標準、セキュリティポリシー、運用ルールがあります:

{
  "tool": "bhgbrain.category",
  "params": {
    "action": "set",
    "name": "database-access-policy",
    "slot": "coding-standards",
    "content": "All database access must use the repository pattern. Direct ORM calls in service layer are not permitted. Repositories must return domain objects, not ORM entities."
  }
}

カテゴリは個別に取得またはグループでリストできます。T0メモリとは、ベクトルインデックスされたセマンティックメモリではなくキー・バリューのポリシースロットとして構造化される点で異なります — 重複排除や埋め込みパイプラインを経由しません。


多言語ドキュメント

完全なREADMEが5言語で公開されました:

  • 英語(README.md)
  • 簡体字中国語(README.zh-CN.md)
  • ドイツ語(README.de.md)
  • フランス語(README.fr.md)
  • スペイン語(README.es.md)

これらは機械翻訳のスタブではなく完全翻訳です — アーキテクチャ図、設定リファレンス、CLIコマンド、MCPツールパラメータが各言語でカバーされています。


次のステップ

段階的リテンションとハイブリッド検索システムは、今後のリリースで予定されているいくつかのものの基盤です: 抽出LLMパイプラインによる自動ティア分類(現在は手動またはヒューリスティック駆動)、マルチテナントシナリオ向けクロス名前空間メモリ連携、メモリヘルス監視ダッシュボード。

リポジトリのROADMAP.mdが計画中・進行中のものを追跡します。


BHGBrainはオープンソース(MITライセンス)で、github.com/Big-Hat-Group-Inc/BHGBrainで利用できます。本番でAIエージェントを実行しコンテキスト税に対処している場合 — エージェントが以前見た状態を再発見し、毎セッションアーキテクチャを再説明し、実行間で決定を失う — これが解決対象の問題です。

Star、issue提出、PR送信をお願いします。より多くの本番ワークロードに触れるほど、ティア分類ヒューリスティックが改善されます。


Kevin KaminskiはBig Hat Groupのプリンシパルで、エンタープライズAIインフラ、Microsoft 365、Windows 365に注力しています。彼は職場でAIエージェントを実行するチーム向けのオープンソースツールを構築しています。