抛弃向量数据库:用BM25为LangChain智能体构建记忆层

CogniCore用BM25替代向量数据库,为LangChain智能体提供零外部依赖的持久化记忆层,并支持跨平台记忆迁移。
一位开源开发者发布了CogniCore,一个为LangChain智能体设计的轻量记忆层,核心创新是用经典BM25检索算法替代向量嵌入方案,完全基于Python标准库实现,无需向量数据库、嵌入服务器或云依赖。在LongMemEval基准测试中,小上下文规模下BM25准确率反超嵌入方案(10个chunk时92.8% vs 87.2%),直至20个chunk后两者才收敛于约95%。项目还附带一套智能体记忆迁移系统,允许将经过验证的记忆连同内容哈希和监管链打包传递给其他智能体,信任机制松散借鉴了强化学习中经验回放缓冲区与折扣因子的概念。该项目已开源并发布至PyPI,为追求低延迟与零外部依赖的场景提供了一个值得参考的轻量替代方案。
智能体的"失忆"难题
用 LangChain 搭过智能体的开发者,大多都遇到过同一个尴尬:智能体在一次会话中做了有用的事,下一次却完全忘光。行业里的标准解法是外挂一个向量数据库——配置嵌入模型、切分文本,然后指望余弦相似度能返回正确的上下文。
这套方案确实能用,但代价不小。你需要跑一个常驻服务、一个嵌入模型,还要承担实实在在的延迟与成本。一位开源开发者在 Reddit 上分享了他的另辟蹊径:一个名为 CogniCore 的记忆层,用 BM25 检索加多跳图谱为智能体提供持久化记忆,完全不需要向量数据库、嵌入服务器或云依赖。

BM25 替代嵌入:轻量却不失效
CogniCore 最核心的设计取舍,是用经典的 BM25 检索算法替代嵌入向量。作者强调,其检索引擎完全基于 Python 标准库实现——pip install 之后,智能体就能存储记忆、检索记忆,并对过往经验进行反思,没有额外的重型基础设施。
对 LangChain 用户而言,最实用的一点是它作为记忆后端与现有链路协同工作。你不需要替换掉自己的智能体,而是在其"底层"加一层记忆:智能体在每一步之后存下所学,下一次会话时先检索这些记忆再行动。
基准测试:小上下文下反超嵌入
作者在 LongMemEval 基准上做了对比,结果颇具反直觉意味。在小上下文规模下,BM25 的表现实际上优于嵌入方案:
- 5 个 chunk 时,准确率从 78.8% 提升到 85.2%
- 10 个 chunk 时,从 87.2% 提升到 92.8%
- 20 个 chunk 时,两者收敛于约 95%
作者的解释是,到 20 个 chunk 时暴力检索"补上了差距",嵌入的优势才逐渐追平。这一数据提醒开发者:在上下文规模不大的场景里,简单的词频检索未必逊于昂贵的语义嵌入,反而在延迟和成本上占优。
意料之外的收获:智能体记忆迁移
项目中最令作者意外的部分,是他顺带构建出的"智能体记忆迁移"系统。一个智能体可以导出自己经过验证的记忆——这些记忆有"证据"支撑:运行了什么命令、得到什么结果、退出码是多少——另一个智能体则可以导入它们。
接收方拿到的是一个封装好的记忆包,附带用于篡改检测的内容哈希,以及一条完整的"监管链"(chain of custody),标明每条记忆的来源。作者称他跨 Figma、Groq、ElevenLabs 和 Claude 做了测试,在完全不同的平台与模态之间搬运记忆。
借鉴强化学习的信任模型
这套迁移系统的信任机制松散地借鉴了强化学习的概念:
- 验证过的记忆类似经验回放缓冲区(experience replay buffer),只有被证明可行的动作才会被存储;
- 当记忆在不受信任的智能体之间流转时,其置信度会衰减,类似 RL 中的折扣因子(discount factor);
- 接收方可以设定策略,直接拒绝低置信度或未经验证的记忆。
这种设计把"记忆可信度"变成了可量化、可传递、可拒绝的资产,为多智能体协作提供了一个新颖的思路。
一点评估
作者坦承自己是该项目的创建者,项目开源于 GitHub(cognicore-dev/cognicore-env),并已发布至 PyPI(cognicore-env)。他表示无意推销,只是分享构建过程中关于智能体记忆的心得。
从工程视角看,CogniCore 的价值在于它挑战了"智能体记忆必须依赖向量数据库"的默认假设。对于上下文规模有限、追求低延迟与零外部依赖的场景,BM25 方案确实值得一试。当然,其基准测试为单一来源的自测数据,20 chunk 之后的收敛也表明嵌入方案在更大规模检索中仍有优势——这套方案更适合作为轻量补充而非全盘替代。记忆迁移的信任模型则是更前沿的实验方向,其在生产环境中的可靠性还有待更多验证。
相关推荐

让AI审查自己的文档:验证CLAUDE.md真伪的开源工具包
RAG Techniques仓库作者开源了一套工具,用于验证AI Agent读取的CLAUDE.md和项目文档中哪些是猜测、哪些被代码证伪。文章解析其置信度标注机制、与Claude Code /init的对比及局限性。

谷歌又一AI安全研究员离职:警告"我们可能都要死"
谷歌又一位AI安全研究员离职并发出"人类可能面临灭绝"的极端警告,本文解析此类离职背后的行业张力、存在性风险争论以及AI治理的深层挑战。

19.8MB的LLM:44M参数模型如何在CPU上跑出1900 tok/s
开发者QLNI从零训练出仅19.8MB、44M参数的量化语言模型SHADOW-50M,采用三元权重和冻结指纹词表,CPU上跑出约1900 tok/s。它把计算交给专用电路、记忆交给磁盘索引,在精确计算与可靠检索任务上超越同级模型。