RCLL について
RCLLは、AIエージェントチーム向けのセルフホスト可能な共有メモリシステムです。Hindsightベースのストアにトピック別のルームと階層型メモリを追加し、読み取り時にLLMを呼び出しません。スタンドアロンMCPサーバーを含みますが、パッケージ版はまだ公開されていません。
主な機能
- 01トピック別ルームと知識タイプ分類
- 024段階のメモリ優先度
- 03LLMを使わないキーワード分類
- 04参照元付きの圧縮サマリー
- 05バンク間のメモリブリッジ
活用シーン
- 01プロジェクトのトピック別にエージェントの記憶を分離
- 02高優先度または指定タイプの記憶だけを検索
- 03蓄積した事実をサマリーに圧縮
- 04エージェントのバンク間で関連記憶を共有
MCP 対応
スタンドアロンのstdio MCPサーバーが、記憶の保存、検索、考察、圧縮、ブリッジに使う5つのツールを提供します。`memory_recall`ツールはモデルを呼び出しません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y fleet-memory-mcpFLEET_URLBase URL of the fleet-memory backend (self-hosted). Defaults to http://127.0.0.1:5100. The pre-rebrand name HINDSIGHT_URL is still read as a fallback.FLEET_BANKDefault memory bank ID for retain/recall. The pre-rebrand variable MEMPALACE_BANK is still read as a fallback. Migrating from hindsight-mempalace-mcp? Set this to mempalace-main to keep reading your existing bank; see mcp-server/README.md.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
5掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| hall | enum | いいえ | 知識の種類(省略時は自動分類)fact | event | decision | preference | discovery | procedure | warning |
| room | string | いいえ | トピックの部屋(省略時は自動分類) |
| tags | array | いいえ | 分類用タグ |
| text | string | はい | 記憶するテキスト — 事実、観察、またはドキュメントの内容 |
| layer | enum | いいえ | 優先度レイヤー(デフォルト:L2)L0 | L1 | L2 | L3 |
| bank_id | string | いいえ | メモリーバンク ID(デフォルト:fleet-main) |
| context | string | いいえ | コンテキストラベル(例:"meeting notes"、"client call") |
| document_id | string | いいえ | 関連する事実をまとめるドキュメント ID |
詳細
RCLL
AI エージェントの チーム で共有するセルフホスト型メモリです。ストレージと構造を1つのシステムに統合しています。
RCLL — エージェント群のためのチームメモリです。Hindsight(github.com/vectorize-io/hindsight、MIT)を基盤としています。
重要
ここは読み取り専用のミラーです。 正式なリポジトリは
godcrm.ai/git/holetron-lab/fleet-memoryです — セルフホスト可能で公開されており、チェーン上のどこにもアカウントを作らずに匿名でクローンできます。ここにある内容は すべて正式なリポジトリから反映されるため、GitHub で行ったマージは次回の同期で上書きされます。通常は1時間以内です。Issue とスターはここに紐づき、確認されます。プルリクエストも こちらで歓迎します — 正式なリポジトリ側でマージされ、次回の同期でこちらに反映されます。
RCLL は vectorize-io/hindsight(MIT)のフォークです。Hindsight のストレージエンジンを維持し、ルーム — 共有ストア上のトピック別スコープ。これは分離ではなく選択性を実現します — と、階層型の深度モデル(L0~L3)を追加しています。ルーム/ホール/レイヤーの分類法は階層型メモリの分野で先行して確立されたものであり、ここでの実装は独自のものです。
RCLL は recall から母音を取り除いた名前です — エージェント群の各エージェントが、ほかのことをする前に必ず実行する操作です。ツールの名前は文字どおり memory_recall で、製品名はこの呼び出しにちなんでいます。
覚えておくべき構造上の特性は1つです。読み取りパスでは言語モデルを一切呼び出しません。 リコールに必要なのは CPU だけで、モデルのトークンはゼロです — アーキテクチャをご覧ください。
ステータス
ソースは公開されており、MIT ライセンスです。パッケージ化されたリリースはまだありません。 fleet-memory-mcp は npm に公開されておらず、コンテナイメージもプッシュされていません。現在 RCLL を実行するには、このツリーからビルドする必要があります。以下のクイックスタートではその方法を説明します。rcll.ai にインストールコマンドが掲載されるまでは、インストールコマンドが動作すると案内しないでください。
| サイト、実測値 | rcll.ai · ベンチマーク |
| 人間ではなく AI エージェント向けの説明 | rcll.ai/agents.md |
| 上流から分岐した場所と、次のリリースを取り込む方法 | FORK.md |
| アーキテクチャ仕様 | RCLL.md |
仕組み
┌──────────────────────────────────────────────────────┐
│ RCLL │
│ │
│ ┌─── Room: auth ───┐ ┌─── Room: pipeline ──┐ │
│ │ Hall: facts │ │ Hall: decisions │ │
│ │ Hall: procedures │ │ Hall: events │ │
│ │ Hall: warnings │ │ Hall: facts │ │
│ │ │ │ │ │
│ │ L0 ████ always │ │ L0 ████ always │ │
│ │ L1 ███░ warm │ │ L1 ███░ warm │ │
│ │ L2 ██░░ cold │ │ L2 ██░░ cold │ │
│ │ L3 █░░░ archive │ │ L3 █░░░ archive │ │
│ └──────────────────┘ └─────────────────────┘ │
│ │ │ │
│ └──── Tunnel ──────────┘ │
│ (cross-bank bridge) │
│ │
│ Closets: compressed summaries + source pointers │
└──────────────────────┬───────────────────────────────┘
│
Hindsight vector store
(embeddings + semantic search)
ルーム — トピックの分離です。認証、パイプライン、インフラストラクチャ、スキーマなど、各トピックをそれぞれ独自のルームに格納します。認証に関する事実を検索するエージェントは、500件ものデプロイに関するメモリを読み進める必要がありません。
ホール — ルーム内で知識を分類します。事実、イベント、決定、手順、警告などです。システムは読み取る前に、対象が何であるかを把握します — メモリにおける Content-Type のようなものです。
レイヤー L0~L3 — 4段階の優先度です。L0(コア)は常に読み込まれます。L3(アーカイブ)はディープサーチでのみ検索されます。CPU キャッシュ階層と同じ考え方です。L1 は高速で小さく、RAM は低速ですがすべてを保持します。
クローゼット — ソースへのポインターを含む、AI が圧縮した要約です。知識レベルで重複を排除します。関連する10件の事実を、1つの段落と参照にまとめます。
トンネル — エージェント間のバンクをまたぐブリッジです。エージェント A が洞察を発見すると、エージェント B はデータを複製することなく、トンネルを通じてその内容を確認できます。
このフォークで追加されたもの
これは、分岐元から当ブランチに追加した内容の一覧です(d054b884、2026年4月)。現在の upstream Hindsight の機能について述べたものではありません。分岐後、upstream ではおよそ1,700件のコミットと4回のマイナーリリースが行われています。以下の各項目には、当方で評価していない upstream の対応機能があるものと想定し、比較として扱う前に FORK.md をお読みください。
| ここでの追加機能 | 内容 |
|---|---|
| Rooms | すべての書き込みと読み取りに適用されるトピックのスコープ設定 — 分離ではなく選択性 |
| Halls | room 内でのナレッジの種類分け(fact、event、decision、procedure、warning) |
| Layers L0–L3 | 耐久性の階層。L0 は常に想起され、L3 はディープサーチでのみ検索されます |
| Classification | キーワードベースでミリ秒未満、LLM 呼び出しなし — 分類体系にトークンコストはかかりません |
| Closets | room + hall ごとの圧縮要約と、情報源へのポインター |
| Tunnels | バンク間のブリッジ |
| MCP server | MCP 経由で5つのツールを公開するスタンドアロンサーバー |
すべて追加機能です。分岐時点の upstream の /retain と /recall の契約は変更なく引き続き機能し、新しいパラメーターはすべて省略可能です。
測定結果
検索品質について、公開されている LoCoMo データセットで独自のモデルを評価しました。自作ではなく、サードパーティーのハーネスを使用しています。手法の全容、成績が劣った構成、注意事項については、rcll.ai/docs/benchmarks/ をご覧ください。
| 構成 | nDCG@10 | BM25 比 |
|---|---|---|
| BM25 | 0.3885 | ベースライン |
| vector | 0.4244 | +0.036 |
| hybrid fusion | 0.4722 | +0.084 |
| hybrid fusion + reranker(デフォルト) | 0.5862 | +0.198 |
これは検索品質であり、回答精度ではありません。 ストアの上でリーダーと評価器を動かして測定する「LoCoMo で77%」のような数値とは比較できません。リーダーと評価器を実行していないため、精度の数値は公開していません。
当方に不利な結果も2つ、除外せずベンチマークのページに掲載しています。マルチホップ質問では、デフォルトの fusion は vector-plus-reranker より性能が劣り、シングルホップでは BM25 単体が dense retrieval を上回ります。
GPU を使用しない CPU でのレイテンシーは、検索に約0.29秒、cross-encoder reranker を含めると約3.0秒です。reranker は処理時間の85%を占め、測定できた中で品質を最も大きく向上させます。
クイックスタート
git clone https://github.com/holetron-lab/fleet-memory.git
cd rcll
cp .env.example .env
# edit .env with your config
docker compose -f docker-compose.rcll.yml up -d
これはこのツリーからイメージをビルドします。取得できる公開イメージはないため、初回実行時にコンパイルが行われ、時間がかかります。その後、API は http://localhost:5100 で待ち受けます。
分岐時点の upstream Hindsight の API を使って作成されたクライアントは、そのまま引き続き動作します。追加されたパラメーターは省略可能です。upstream Hindsight の現行版とはリリースが数回分異なるため、そのまま置き換えて使うことはできません。
Embeddings
BAAI/bge-small-en-v1.5(384次元)が付属しています。高速で CPU に適しており、イメージに組み込み済みのため、初回実行時にネットワークからダウンロードする必要はありません。英語に最適化されており、他の言語では想起品質が低下します。
多言語メモリー(例:ロシア語、複数の文字体系)には、多言語モデルを指定してください。
HINDSIGHT_API_EMBEDDINGS_LOCAL_MODEL=BAAI/bge-m3 # 1024-dim, multilingual
次元は自動的に検出されます。⚠️ モデルを切り替えるとベクトルの次元が変わります。既存のベクトルは異なる次元間で混在できないため、空のメモリーストアで切り替えるか、データを消去して再埋め込みを行ってください。
LLM キーなしで実行する
LLM_PROVIDER=none はサポートされている構成ですが、同じ製品を無料で使えるのではなく、機能を縮小した製品になります。retain はチャンクモードになり、チャンク全体を保存して埋め込みます。事実抽出、エンティティ解決、因果関係のリンクは行われず、統合とリフレクションも無効になります。ハイブリッドなベクトル・字句チャンクストアを利用できます。読み取りではモデルを一切呼び出さないため、影響はありません。この構成は意図的に選択するか、抽出処理にローカルモデルを指定してください。フィールドを空欄にしたまま使わないでください。
MCP サーバー
mcp-server/ ディレクトリには、stdio 経由で動作するスタンドアロンの MCP サーバーが含まれています。
実際に確認済みの内容は、2026-08-24 時点で、稼働中のバックエンドに対して、プロトコルバージョン
2025-06-18、initialize、tools/list、tools/call の往復処理、および memory_recall
が実際の結果を返すことです。これは stdio 経由で直接実行したプロトコルレベルの確認であり、クライアントごとの互換性マトリクスではありません。
したがって、stdio 経由で MCP を話すクライアントであれば動作するはずですが、すべてのクライアントで実際に確認したわけではありません。以下に記載しているのは、私たち自身が使用している設定(Claude Code)のみで、ほかの設定はありません。別のクライアントで動作させることができた場合、このセクションへの PR をぜひお寄せください。
ツール
| ツール | 説明 |
|---|---|
memory_retain | 部屋/ホールの自動分類を行い、メモリーを保存します |
memory_recall | 部屋/ホール/レイヤーのフィルターを使ったスコープ付きセマンティック検索 |
memory_reflect | 深い推論 — 事実を統合し、パターンを見つけ、引用付きで回答します |
memory_compress | 蓄積された事実からクローゼットの要約を作成します |
memory_bridge | 関連するメモリー間にバンクをまたぐトンネルを作成します |
5 つのうち、モデルを呼び出さないのは memory_recall だけです。memory_reflect は LLM 呼び出しを繰り返すエージェント型ループです。このサーバーを信頼できないものに公開する場合は、memory_recall のみを公開してください。
コンテキストの予算を見積もる前に知っておくとよい点があります。バックエンドは、recall の limit を結果数の上限ではなく、検索のヒントとして扱います。独自のトークン予算内にあるすべての内容を返すため、約 110 件の事実が返されます。MCP レイヤーは返却時に limit を適用するため、limit: 2 の recall で消費するのは約 1 KB で、43 KB ではありません。Recall ではモデル呼び出しは発生しませんが、コンテキストは消費します。
セットアップ
cd mcp-server
npm install
FLEET_URL=http://localhost:5100 node server.js
Claude Code の設定
~/.claude/mcp.json に追加します。
{
"mcpServers": {
"rcll": {
"command": "node",
"args": ["/path/to/mcp-server/server.js"],
"env": {
"FLEET_URL": "http://localhost:5100",
"FLEET_BANK": "my-agent-bank"
}
}
}
}
古いパッケージ名からアップグレードしていますか? HINDSIGHT_URL とレガシーのバンク変数は引き続きフォールバックとして読み込まれるため、既存の設定はそのまま動作します。起動時に非推奨の通知が表示されるだけです。
詳しいドキュメントと環境変数については、mcp-server/README.md をご覧ください。
upstream からの API 変更
基本の /retain および /recall エンドポイントは、当ブランチの分岐時点で upstream と後方互換性があります。新しいパラメーターはすべて省略可能です。
新しいパラメーター
| エンドポイント | パラメーター | 型 | 説明 |
|---|---|---|---|
/retain | room | string | トピックの部屋(省略時は自動分類) |
/retain | hall | string | 知識の種類(省略時は自動分類) |
/retain | layer | int | 優先度 0~3(デフォルト:2) |
/recall | room | string | recall を特定の部屋に絞り込みます |
/recall | hall | string | recall を特定のホールに絞り込みます |
/recall | max_layer | int | 検索するレイヤーの最大深度 |
新しいエンドポイント
| メソッド | エンドポイント | 説明 |
|---|---|---|
| POST | /bridge | バンクをまたぐメモリーブリッジを作成します |
| GET | /tunnels | 既存のトンネルを一覧表示します |
| POST | /tunnels | バンク間にトンネルを作成します |
| GET | /closets | 圧縮されたメモリーの要約を一覧表示します |
| POST | /closets | L3 メモリーをクローゼットに圧縮します |
部屋/ホールの分類体系
部屋(トピック)
auth · pipeline · infrastructure · deployment · schema · api · ui · tax · hr · legal · compliance · monitoring · agent · general
ホール(知識の種類)
warning · decision · procedure · event · preference · discovery · fact
レイヤー
| レイヤー | 名前 | 動作 |
|---|---|---|
| L0 | クリティカル | 常に呼び出されます |
| L1 | 重要 | デフォルトで呼び出されます |
| L2 | 通常 | 標準(新しいメモリーのデフォルト) |
| L3 | アーカイブ | 詳細検索のみ。クローゼットに圧縮されます |
自動分類
RCLL には、部屋とホールが指定されていない場合に自動で割り当てる、キーワードベースの分類器(room_hall_classifier.py)が含まれています。LLM の呼び出しは不要で、分類は即座に無料で行われます。
拡張可能です。ROOM_KEYWORDS / HALL_KEYWORDS 辞書にキーワードを追加してください。
例
メモリを保存する
curl -X POST http://localhost:5100/retain \
-H "Content-Type: application/json" \
-d '{
"bank": "project-alpha",
"text": "Never restart PROD without confirming staging works first.",
"room": "deployment",
"hall": "warning",
"layer": 0
}'
スコープを指定した検索
curl -X POST http://localhost:5100/recall \
-H "Content-Type: application/json" \
-d '{
"bank": "project-alpha",
"query": "deployment safety rules",
"room": "deployment",
"hall": "warning",
"max_layer": 1
}'
バンク間ブリッジ
curl -X POST http://localhost:5100/bridge \
-H "Content-Type: application/json" \
-d '{
"source_bank": "project-alpha",
"target_bank": "project-beta",
"room": "infrastructure",
"hall": "procedure"
}'
既知の制限
正直な一覧を、サイトだけでなくここにも記載しています。
- まだメモリをエクスポートできません。 上流の
exportコマンドが出力するのは、バンクのテンプレート(設定、メンタルモデル、指示)であり、保存されたコンテンツは含まれません。部屋、ホール、レイヤー、リンクグラフを含む完全なダンプは、私たちの最優先課題です。セルフホスト可能なストアに欠けていてはならないものだからです。 - 精度ベンチマークはありません。 検索品質は測定して公開していますが、読み手と判定者による実行結果は公開していません。
- 敵対的な質問や回答不能な質問(正解が「分かりません」となる質問)は、報告している検索メトリクスの対象外であり、私たちが最も恥をかきかねないカテゴリです。
- 後から
MEMORY_MODEを切り替えても、すでに保存した内容は移行されません。 蓄積を始める前に選択してください。
変更点
Hindsight のベクトルストアに分類体系レイヤーを追加し、スタンドアロンの MCP サーバーを用意しました。
主な追加点:
room_hall_classifier.py— キーワードベースの分類体系エンジン(新規)aa1_add_room_hall_to_memory_units.py— DB マイグレーション:フラット構造から階層構造へ変更し、部屋/ホールとlayer列を追加(新規)mcp-server/— 5 つのツールを備えたスタンドアロンの MCP サーバー(新規)- ストレージレイヤー — 書き込みごとに部屋/ホール/レイヤーのメタデータを追加
- 検索 — ホールフィルタリングを備えた部屋スコープ検索
- 圧縮 — ソースへのリンクを含むクローゼットの生成
- トンネル — バンク間のメモリ共有プロトコル
アーキテクチャの詳細仕様:RCLL.md。フォークの変更をコミットごとにまとめた内容:FORK.md。
上流
このフォークは d054b884 から分岐しており、そのコミットへの変更が追いやすい一連の差分としてまとめられているため、新しい上流リリースの取り込みは、発掘作業ではなくリベースで済みます。
git remote add upstream https://github.com/vectorize-io/hindsight.git
git fetch upstream --tags
git rebase --onto <upstream-tag> d054b884 main
実際に競合が発生することを想定してください。部屋の機能は、上流側で大幅に書き換えられた同じエンジンファイルに手を加えています。FORK.md に、対象のファイルとその理由を記載しています。
クレジット
ライセンス
MIT — 上流の Hindsight と同じです。LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。