关于 RCLL
RCLL 是面向 AI Agent 团队的可自托管共享记忆系统,在基于 Hindsight 的存储上加入主题房间和分层记忆。记忆读取路径不会调用大模型;项目包含独立 MCP 服务,但尚无打包发布版本。
主要功能
- 01按主题划分房间并为知识分类
- 02四级记忆优先层级
- 03无需大模型的关键词分类
- 04带来源指针的压缩摘要
- 05跨存储区记忆桥接
适用场景
- 01按项目主题隔离 Agent 记忆
- 02仅检索高优先级或指定类型的记忆
- 03将累积事实压缩为摘要
- 04在不同 Agent 存储区间共享相关记忆
MCP 相关
独立的 stdio MCP 服务提供五种工具,用于保存、读取、反思、压缩和桥接记忆。`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 Agent 提供可自托管的共享记忆。一个系统,兼具存储与结构。
RCLL — 面向 Agent 集群的团队记忆。基于 Hindsight(github.com/vectorize-io/hindsight,MIT)构建。
重要
你正在查看一个只读镜像。 权威仓库位于
godcrm.ai/git/holetron-lab/fleet-memory— 可自托管、公开,且无需链路上任何环节的账号即可匿名克隆。这里的所有内容 都从那里推送过来,因此在 GitHub 上执行的合并会在下一次同步时被覆盖,通常在一小时内。 问题和星标归属于这里,并会在这里查看。也欢迎在这里提交拉取请求 — 它会在权威仓库一侧合并,并在下一次 同步时回到这里。
RCLL 是 vectorize-io/hindsight(MIT)的分支。它保留了 Hindsight 的存储引擎,并添加了房间 — 在一个共享存储上按主题划分范围,这强调的是选择性,而非隔离 — 以及分层深度模型(L0–L3)。房间/大厅/层级这套分类法是分层记忆领域的既有成果;这里的实现则由我们自行开发。
RCLL 是 recall 去掉元音后的写法 — 这是集群中的每个 Agent 在执行任何其他操作前都会进行的操作。该工具的名称就是 memory_recall;产品也因此操作而得名。
值得记住的一项结构特性是:读取路径永远不会调用大模型。 一次召回消耗 CPU,但不消耗任何模型令牌 — 详见架构。
状态
源代码公开,采用 MIT 许可证。目前尚无打包发行版:fleet-memory-mcp 尚未发布到 npm,也没有推送容器镜像。如今运行 RCLL 需要基于此代码树构建,下面的快速入门便是如此。请不要将安装命令说成可用,除非 rcll.ai 已经提供了相关命令。
| 网站、实测数据 | rcll.ai · 基准测试 |
| 为 AI Agent 而非人类撰写 | 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)
房间 — 按主题隔离。认证、流水线、基础设施、架构 — 每个主题各自拥有一个房间。搜索认证信息的 Agent 不必在 500 条部署记忆中翻找。
大厅 — 在房间内对知识进行类型划分。事实、事件、决策、流程、警告。系统在读取前就知道自己要查看什么 — 就像记忆的 Content-Type。
L0–L3 层级 — 四个优先级层级。L0(核心)始终加载。L3(归档)仅通过深度搜索访问。类似 CPU 缓存层级:L1 快速且容量小,RAM 较慢但能容纳所有内容。
储藏室 — 由 AI 压缩的摘要,并附带来源指针。在知识层面进行去重:10 条相关事实 → 1 段文字 + 引用。
隧道 — Agent 之间跨存储区的桥梁。Agent A 发现一条见解 — Agent B 通过隧道即可看到,无需重复数据。
此分支新增内容
以下列出的是相较于我们的分支起点新增的内容(d054b884,2026 年 4 月),并非声称上游 Hindsight 当前的功能。自我们分支以来,上游已发布约 1,700 次提交和 4 个小版本;请假设下文提到的所有内容在上游都已有对应方案,只是我们尚未评估。将此处内容视为对比之前,请先阅读 FORK.md。
| 此处新增 | 内容 |
|---|---|
| Rooms | 每次写入和读取都进行主题范围限定——用于筛选,而非隔离 |
| Halls | 在 room 内对知识进行类型标注(事实、事件、决策、流程、警告) |
| Layers L0–L3 | 持久性层级;始终召回 L0,仅通过深度搜索查找 L3 |
| Classification | 基于关键词,耗时不到 1 毫秒,不调用大模型——分类体系不消耗任何 token |
| Closets | 按 room + hall 生成压缩摘要,并附带指向来源的指针 |
| Tunnels | 跨存储库桥接 |
| MCP server | 独立服务,通过 MCP 暴露 5 个工具 |
所有新增内容都是增量式的:截至我们的分支起点,上游 /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%”这类数据相比较;后者是在存储库之上使用阅读器和评判器进行测量的。我们没有公布准确率数据,因为我们尚未运行阅读器和评判器。
基准测试页面也列出了对我们不利的两项结果,并未将其隐去:对于多跳问题,我们的默认融合方案不如 vector-plus-reranker;对于单跳问题,单独使用 BM25 优于稠密检索。
无 GPU 时的 CPU 延迟:搜索约 0.29 秒;包括交叉编码器重排序器时约 3.0 秒。重排序器占用 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 上监听。
针对截至我们的分支起点的上游 Hindsight API 编写的客户端仍可继续使用——新增参数均为可选参数。但它不能直接替代当前的上游 Hindsight;上游已领先此分支好几个版本。
嵌入
内置 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 | 在相关记忆之间创建跨库隧道 |
在这五个工具中,只有 memory_recall 不会调用模型。memory_reflect 是一个会重复调用大模型的 Agent 循环——如果要将此服务开放给不可信对象,请仅开放 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 和旧版 bank 变量仍会作为回退选项读取,因此现有配置仍可正常使用——启动时只会显示弃用通知。
完整文档和环境变量请参阅 mcp-server/README.md。
上游 API 变更
在我们的分支点,上游基础 /retain 和 /recall 端点保持向后兼容。新增参数均为可选。
新增参数
| 端点 | 参数 | 类型 | 描述 |
|---|---|---|---|
/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),在未提供房间和大厅时会自动分配。无需调用大模型——分类即时完成且免费。
可扩展:向 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— 数据库迁移:从扁平结构转为层级结构,添加 room/hall 和layer列(新增)mcp-server/— 包含 5 个工具的独立 MCP 服务(新增)- 存储层 — 每次写入都会添加 room/hall/layer 元数据
- 检索 — 按房间范围搜索,并按大厅筛选
- 压缩 — 生成带有来源链接的壁橱
- 隧道 — 跨知识库记忆共享协议
完整架构规范: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 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。