0
0
0
0
博客/.../

AI Agent 的"大脑记忆":为什么向量+关系+全文检索必须一体化

 Billmay表妹  发表于  2026-08-12
原创

一、Agent 没有记忆,就只是一个昂贵的问答机器

想象一下,你正在和一个 AI 助手对话。你告诉它:"我叫张三,在 PingCAP 工作,负责 TiDB 的社区运营。"它点点头,回复得很好。然后你问它:"我刚才说我叫什么名字?"它一脸茫然:"抱歉,我不记得了。"

这就是当前大多数 AI 应用的真实写照。大语言模型(LLM)本身没有记忆——每一次对话都是全新的,它既不记得你上一轮说了什么,更不记得你三天前告诉过它什么。没有记忆的 Agent,就像一个患有顺行性遗忘症的助手,每次交流都要从零开始。

对于简单的问答场景,这或许还能接受。但 Agent 的目标是完成复杂任务——帮你管理日程、分析数据、协调多个工具、甚至代替你与客户沟通。这些任务都强烈依赖记忆:记住用户的偏好、记住之前的对话上下文、记住已经执行过的操作和结果。没有记忆,Agent 永远只能停留在"问答机器"的阶段,无法成为真正的"智能体"。

二、Agent 的记忆不是单一类型,而是三层体系

要理解 Agent 需要什么样的记忆,我们可以借鉴认知科学对人类记忆的分类。人类的记忆大致可以分为三种:短期记忆(工作记忆)、语义记忆(事实知识)和情景记忆(经历事件)。一个成熟的 Agent 系统,同样需要这三层记忆体系:

短期记忆(Short-term Memory):对应当前对话窗口内的上下文。这是最基础的记忆,通过把历史对话拼接到 Prompt 中实现。但它的容量极其有限——受限于模型的上下文窗口,通常只能保留最近几轮的对话。而且 Token 成本随着上下文长度线性增长,不可能把所有历史都塞进去。

语义记忆(Semantic Memory):对应结构化的事实和知识。比如"用户张三的职位是社区运营"、"TiDB 是一款分布式 SQL 数据库"、"项目 A 的截止日期是 8 月 30 日"。这些信息需要被持久化存储,并且能够被精确检索和更新。语义记忆通常存储在关系数据库中,因为它需要支持复杂的条件查询、事务更新和数据一致性保证。

情景记忆(Episodic Memory):对应过去发生的具体事件和对话片段。比如"上周三用户提到过对向量检索性能不满意"、"上次会议中讨论了三个技术方案"。这些信息是非结构化的文本,需要通过语义相似度来检索——当用户提到"上次我们说的那个方案"时,Agent 能够找到相关的历史对话片段。情景记忆通常用向量数据库来存储,通过 Embedding 把文本转化为向量,然后做近似最近邻搜索。

除此之外,还有一种越来越重要的记忆类型:全文检索记忆。有时候用户记得的是某个精确的关键词——"找一下之前提到过的 Percolator 事务模型的那段话"。这时候向量检索的语义匹配就不够用了,需要倒排索引支持的全文检索,精确匹配关键词。

三、多系统拼接的记忆层,问题远比想象中多

面对这三种记忆需求,目前行业的主流做法是"拼接":用 Redis 做短期记忆缓存,用 MySQL/PostgreSQL 存结构化的语义记忆,用 Milvus/Pinecone 存向量做情景记忆,用 Elasticsearch 做全文检索。四个系统,四套运维,四份成本。

这种拼接架构看起来各司其职,但实际落地时问题层出不穷:

数据一致性是头号难题。同一条知识,可能同时存在于关系库(结构化字段)、向量库(Embedding 向量)和全文索引(倒排索引)中。当用户更新了自己的个人信息时,你需要同时更新三个系统:先更新 MySQL,再重新计算 Embedding 更新 Milvus,再更新 ES 的倒排索引。任何一步失败,都会导致数据不一致——Agent 在查询时可能从向量库搜到了旧信息,从关系库读到了新信息,自己跟自己打架。

混合查询几乎不可能实现。真实的检索需求往往是复合的:"找一下过去一个月内,来自金融行业的用户,关于 TiDB 部署运维的对话记录"。这个查询需要同时满足:时间范围过滤(关系数据库)、行业标签匹配(关系数据库)、语义相似度(向量数据库)。在拼接架构下,你需要先从 MySQL 查出符合条件的用户 ID 列表,再去 Milvus 里用这些 ID 做过滤搜索,最后还要做结果合并和排序。性能差、代码复杂、还容易出错。

运维成本和技术栈复杂度更是噩梦。四个系统意味着四套部署、监控、备份、扩容方案。小团队根本养不起能同时精通 MySQL、Redis、Milvus、ES 的运维人员。而且每增加一个系统,系统间的网络延迟、故障传递、版本兼容都是潜在的风险点。

四、TiDB 的解法:在一个数据库内核中原生融合三种检索能力

TiDB 的思路完全不同:不是在应用层把多个系统拼起来,而是在同一个数据库内核中,原生支持关系查询、向量检索和全文检索三种能力。一套存储,一份数据,三种检索方式可以在同一条 SQL 中自由组合。

TiDB 从 8.5 版本开始原生支持向量数据类型和向量索引。你可以直接在表中定义 VECTOR 类型的列,创建向量索引,然后用标准 SQL 做近似最近邻搜索。更重要的是,向量能力不是外挂的插件,而是和 TiDB 原有的分布式架构、事务引擎深度整合的——向量检索和关系查询共享同一个存储引擎、同一个事务模型、同一个 SQL 优化器。

这意味着什么?你可以用一张表同时存储所有类型的记忆:

CREATE TABLE agent_memory ( id BIGINT PRIMARY KEY AUTO_INCREMENT, user_id BIGINT, memory_type ENUM('short_term', 'semantic', 'episodic'), content TEXT, content_vector VECTOR(1536), -- 向量列,用于语义检索 metadata JSON, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, VECTOR INDEX idx_vector (content_vector), -- 向量索引 FULLTEXT INDEX idx_ft (content) -- 全文索引 );

然后,你可以在一条 SQL 中同时使用三种检索能力:

-- 找一下过去一个月内,来自金融行业的用户,关于"数据库部署"的相关记忆 SELECT content, Vec_Cosine_Distance(content_vector, ?) AS similarity FROM agent_memory WHERE memory_type = 'episodic' AND created_at > DATE_SUB(NOW(), INTERVAL 1 MONTH) AND JSON_EXTRACT(metadata, '$.industry') = 'finance' AND MATCH(content) AGAINST('TiDB 部署') ORDER BY content_vector <-> ? LIMIT 10;

这条 SQL 同时用到了:结构化条件过滤(memory_type、时间范围、JSON 字段)、全文检索(MATCH AGAINST)、向量相似度排序(<-> 操作符)。在拼接架构下,这需要跨三个系统做多次查询和结果合并;在 TiDB 中,这就是一条普通的 SQL,优化器会自动选择最优的执行计划。

而且因为是同一个数据库,事务一致性是天然保证的。当你更新一条记忆时,文本内容、向量数据、全文索引在同一个事务中同时更新,要么全部成功,要么全部回滚,永远不会出现"文本更新了但向量还是旧的"这种不一致问题。

五、平凯数据库云服务:让 Agent 记忆开箱即用

TiDB 的能力已经足够强大,但对于大多数 Agent 开发者来说,自己部署和维护一个分布式 TiDB 集群仍然有门槛。平凯数据库云服务把 TiDB 的能力以全托管的形式交付,让开发者可以开箱即用。

平凯数据库云服务是 PingCAP 在 2026 年 4 月正式发布的云数据库产品,基于新一代 TiDB 内核构建,实现了存算分离、存内解耦和算内解耦的架构。对于 Agent 应用开发者来说,几个特性尤其重要:

Serverless 弹性伸缩。Agent 的负载往往是潮汐式的——白天高峰期 QPS 可能是深夜的几十倍。平凯数据库云服务的 Serverless 形态可以根据负载自动扩缩容,甚至支持 Scale-to-Zero(闲置时缩容到零,请求到来时秒级唤醒),Starter 版本还提供 5 个免费集群,闲置时零成本。这对于初创团队和个人开发者非常友好。

向量能力开箱即用。不需要单独部署向量数据库,不需要维护 Embedding 同步管道,创建表时定义 VECTOR 列即可。平凯数据库云服务已经把向量索引、向量函数、距离计算都做好了,开发者只需要关注业务逻辑。

HTAP 一体化。Agent 的运行数据(对话日志、工具调用记录、用户反馈)本身就需要实时分析——哪些场景 Agent 表现不好?哪些工具调用经常失败?用户满意度如何?这些分析查询如果走传统数仓,需要 ETL 同步,延迟很高。而 TiDB 的 HTAP 能力可以在同一份数据上同时支撑在线事务和实时分析,写入后立即可查。

全球部署与低延迟。对于面向全球用户的 Agent 应用,平凯数据库云服务支持多区域部署,数据可以就近存储和访问,确保全球用户都能获得毫秒级的查询延迟。

AI Agent 的竞争,正在从"谁的模型更大"转向"谁的记忆更好"。一个能记住用户偏好、能从历史中学习、能精准检索相关知识的 Agent,远比一个只会临场发挥的 Agent 更有价值。而记忆系统的底座,不应该是东拼西凑的"数据库四件套",而应该是一个原生融合了向量、关系和全文检索能力的一体化数据库。TiDB 和平凯数据库云服务,正在为下一代 AI Agent 提供这样的记忆底座。

0
0
0
0

版权声明:本文为 TiDB 社区用户原创文章,遵循 CC BY-NC-SA 4.0 版权协议,转载请附上原文出处链接和本声明。

评论
暂无评论