news 2026/8/8 23:19:37

TencentDB Agent Memory内存检索算法:BM25与向量搜索的融合应用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
TencentDB Agent Memory内存检索算法:BM25与向量搜索的融合应用

TencentDB Agent Memory内存检索算法:BM25与向量搜索的融合应用

【免费下载链接】TencentDB-Agent-MemoryTencentDB Agent Memory is a team-level memory hub for AI Agents — turning conversations, docs, and code into four reusable memory assets (Chat Memory, Skill, LLM-Wiki, Code-Graph) that are governed, shared, and equipped across agents and frameworks.项目地址: https://gitcode.com/GitHub_Trending/te/TencentDB-Agent-Memory

TencentDB Agent Memory作为团队级AI Agent内存中心,其核心功能在于将对话、文档和代码转化为可复用的记忆资产。而实现这一功能的关键技术之一,就是高效的内存检索算法。本文将深入探讨TencentDB Agent Memory如何融合BM25与向量搜索技术,打造强大的混合检索能力,为AI Agent提供精准、高效的记忆召回支持。

内存金字塔:检索算法的应用场景

TencentDB Agent Memory采用了层次化的内存管理架构,即内存金字塔模型。该模型将内存分为L0原始日志、L1原子记忆、L2场景块和L3用户画像四个层级,从下到上实现了从原始数据到结构化知识的逐步转化。

图:TencentDB Agent Memory内存金字塔模型,展示了从原始对话到服务画像的转化过程。

在这个内存金字塔中,BM25与向量搜索算法分别在不同层级发挥着重要作用:

  • L0原始日志:主要采用BM25算法进行关键词检索,快速定位相关对话记录。
  • L1原子记忆:结合BM25和向量搜索,实现关键词和语义的双重检索。
  • L2场景块:以向量搜索为主,实现场景级别的语义匹配。
  • L3用户画像:基于向量搜索,实现用户偏好和服务风格的精准匹配。

这种分层应用的策略,使得TencentDB Agent Memory能够在不同的应用场景下灵活选择最适合的检索算法,从而达到最佳的检索效果。

BM25:传统关键词检索的优化者

BM25(Best Matching 25)是一种基于词频的检索算法,它通过计算查询词与文档之间的相关性来排序检索结果。在TencentDB Agent Memory中,BM25主要用于处理关键词检索任务,其核心优势在于:

  1. 高效性:BM25算法计算简单,检索速度快,适合处理大规模文本数据。
  2. 可解释性:基于词频的计算方式使得检索结果的相关性分数易于理解和解释。
  3. 多语言支持:TencentDB Agent Memory中的BM25实现支持中文和英文两种语言,可通过配置文件src/config.ts进行切换。

TencentDB Agent Memory对传统BM25算法进行了优化,主要体现在以下几个方面:

  • 本地实现:采用纯TypeScript实现的BM25编码器src/core/store/bm25-local.ts,替代了原来的Python sidecar服务,消除了外部依赖,提高了系统的稳定性和响应速度。
  • 语言适应性:针对中文和英文分别采用不同的分词策略,优化了不同语言下的检索效果。
  • 参数调优:通过调整BM25算法中的参数(如文档长度归一化因子),进一步提升检索精度。

向量搜索:语义理解的突破者

向量搜索是一种基于深度学习的检索技术,它通过将文本转化为高维向量,利用向量之间的相似度来衡量文本之间的语义相关性。在TencentDB Agent Memory中,向量搜索主要用于处理语义检索任务,其核心优势在于:

  1. 语义理解:能够捕捉文本的深层语义信息,实现跨词汇的语义匹配。
  2. 泛化能力:对于未见过的词汇或表达方式,具有较强的泛化能力。
  3. 上下文感知:能够理解上下文信息,提高检索的准确性。

TencentDB Agent Memory中的向量搜索实现主要包括以下几个方面:

  • 嵌入模型:支持多种嵌入模型(如OpenAI、DeepSeek等),可通过配置文件src/config.ts进行选择和配置。
  • 向量存储:提供了多种向量存储后端,包括SQLite和腾讯云向量数据库(TCVDB),可根据应用场景选择合适的存储方案。
  • 性能优化:通过批量处理、索引优化等技术,提高向量搜索的性能和效率。

RRF融合:两种算法的完美结合

虽然BM25和向量搜索各有优势,但单一算法往往难以满足复杂场景下的检索需求。为此,TencentDB Agent Memory采用了RRF(Reciprocal Rank Fusion)算法,将BM25和向量搜索的结果进行融合,实现了优势互补。

RRF算法的核心思想是将不同检索系统返回的排序结果进行融合,通过计算每个文档在不同排序结果中的排名倒数之和来确定最终的排序。在TencentDB Agent Memory中,RRF融合的实现主要包括以下几个方面:

  1. 并行检索:同时执行BM25关键词检索和向量语义检索,获取两个独立的排序结果。
  2. 分数计算:对于每个文档,分别计算其在BM25结果和向量搜索结果中的RRF分数,计算公式为:score = 1 / (k + rank + 1),其中k为常数(默认值为60)。
  3. 结果融合:将同一文档的BM25 RRF分数和向量搜索RRF分数相加,得到最终的融合分数,并按照融合分数对文档进行排序。

TencentDB Agent Memory中的RRF融合实现可以在src/core/tools/conversation-search.ts和src/core/tools/memory-search.ts中找到。通过这种融合策略,系统能够同时利用BM25的关键词匹配能力和向量搜索的语义理解能力,从而获得更全面、更准确的检索结果。

融合应用:实战场景中的最佳实践

TencentDB Agent Memory的BM25与向量搜索融合应用,在实际场景中展现出了强大的检索能力。以下是一些典型的应用场景:

1. 混合检索策略

TencentDB Agent Memory提供了三种检索策略:关键词检索(keyword)、嵌入检索(embedding)和混合检索(hybrid)。其中,混合检索策略就是BM25与向量搜索的融合应用,通过RRF算法将两种检索结果进行融合。在配置文件中,可以通过设置recall.strategy参数来选择检索策略,默认值为hybrid,即混合检索策略。

| `recall.strategy` | `"hybrid"` | 召回策略:`keyword` / `embedding` / `hybrid`(RRF 融合,推荐) |

2. 腾讯云向量数据库(TCVDB)集成

TencentDB Agent Memory与腾讯云向量数据库(TCVDB)深度集成,支持在TCVDB中进行本地BM25稀疏向量与稠密向量的混合检索。通过TCVDB的nativeHybridSearch接口,可以在单次调用中完成dense + sparse + RRF的融合检索,大大提高了检索效率。

3. 迁移工具中的检索配置

在数据迁移工具scripts/migrate-sqlite-to-tcvdb/sqlite-to-tcvdb.ts中,提供了丰富的检索配置选项,包括是否启用BM25稀疏向量、BM25语言选择等。这些选项可以帮助用户根据实际需求,灵活配置BM25与向量搜索的融合策略。

523: --bm25-language <zh|en> BM25 分词语言(默认: zh) 535: --no-bm25-enabled 禁用 BM25 稀疏向量

总结:检索技术的协同进化

TencentDB Agent Memory通过融合BM25与向量搜索技术,打造了强大的混合检索能力,为AI Agent提供了高效、精准的内存检索支持。这种融合不仅体现了传统信息检索技术与现代深度学习技术的协同进化,也为构建智能、高效的AI Agent内存系统提供了新的思路和方法。

随着AI技术的不断发展,TencentDB Agent Memory的检索算法也将持续优化和进化。未来,我们可以期待看到更多创新的检索技术和融合策略,进一步提升AI Agent的记忆能力和服务质量。

【免费下载链接】TencentDB-Agent-MemoryTencentDB Agent Memory is a team-level memory hub for AI Agents — turning conversations, docs, and code into four reusable memory assets (Chat Memory, Skill, LLM-Wiki, Code-Graph) that are governed, shared, and equipped across agents and frameworks.项目地址: https://gitcode.com/GitHub_Trending/te/TencentDB-Agent-Memory

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/8 23:18:10

RAG/搜索召回之二——Embedding模型bge-m3微调

今天介绍Embedding模型bge-m3的微调。 在做向量召回的时候&#xff0c;我们会使用bge-m3这样的模型把query和doc转化成embedding。但在一些专业领域&#xff0c;尤其是术语比较多的领域&#xff0c;bge-m3的效果可能就不好。这时候比较有效的方法&#xff0c;就是使用少量的高…

作者头像 李华
网站建设 2026/8/8 23:17:24

百度网盘文件排序全解析:从基础原理到高效管理实战

1. 从一次混乱的查找说起&#xff1a;为什么文件排序如此重要如果你和我一样&#xff0c;经常使用百度网盘网页版来管理海量的工作文件、学习资料或者个人收藏&#xff0c;那么下面这个场景你一定不陌生&#xff1a;你需要找到一个上周刚上传的PPT&#xff0c;或者一份几个月前…

作者头像 李华
网站建设 2026/8/8 23:06:43

PyMAPDL完整指南:如何用Python轻松操控ANSYS实现有限元分析

PyMAPDL完整指南&#xff1a;如何用Python轻松操控ANSYS实现有限元分析 【免费下载链接】pymapdl A Python client library for Ansys MAPDL 项目地址: https://gitcode.com/gh_mirrors/py/pymapdl 还在为复杂的ANSYS命令而头疼吗&#xff1f;想要自动化有限元分析流程却…

作者头像 李华
网站建设 2026/8/8 23:06:14

终极Android远程控制:5步搭建你的跨平台设备管理神器

终极Android远程控制&#xff1a;5步搭建你的跨平台设备管理神器 【免费下载链接】droidVncServer VNC server for Android devices. 项目地址: https://gitcode.com/gh_mirrors/dr/droidVncServer 想要随时随地掌控你的Android设备吗&#xff1f;无论是远程调试应用、协…

作者头像 李华
网站建设 2026/8/8 23:03:40

ng2-select完全指南:打造Angular应用中的终极下拉选择体验

ng2-select完全指南&#xff1a;打造Angular应用中的终极下拉选择体验 【免费下载链接】ng2-select Angular based replacement for select boxes 项目地址: https://gitcode.com/gh_mirrors/ng/ng2-select ng2-select是一款基于Angular的下拉选择组件&#xff0c;能够完…

作者头像 李华