AI Agent 该用什么数据库?

短答案:状态用 Postgres,语义召回用向量存储,缓存用 Redis,遥测用分析型数据库。大多数 Agent 技术栈需要其中两样而不是一样,而且这个选择的重要性,远没有围绕它的文章数量所暗示的那么高。

这篇会先老老实实回答这个问题。在它下面还有第二个问题,几乎没人问,但它比引擎选择更要命——那部分放在最后,先讲你来这里要找的东西。

Agent 到底在存什么

「给 AI Agent 用的数据库」这句话,把四种毫不相干、只是碰巧同时出现的负载压成了一个。拆开来看,选择就很显然了:

存的是什么访问模式合理的默认选择
应用与会话状态小读小写、事务性、必须精确Postgres
文档的语义召回在 embedding 上做近似最近邻pgvector,规模上来后再上专用向量库
热上下文与限流亚毫秒、临时、高频变动Redis
提示词/响应日志与 token 计量大量追加写、聚合读ClickHouse、DuckDB/MotherDuck,或者先用 Postgres 顶到疼为止
Agent 产出的业务事实被人和后续 Agent 当真相来读见最后一节

从 Postgres 开始,而且是认真的

对绝大多数 Agent 项目来说,只用 Postgres 就是正确的第一答案,第一天就加第二个系统属于过早优化。状态、关系、JSON、全文检索,加上 pgvector 的向量能力,足以撑过大部分 Agent 产品这辈子会到达的规模。

这里有两个常见的错判:

太早上专用向量数据库。pgvector 配 HNSW,撑到百万级向量都没问题。单独加一个向量服务,买到的是你现在还测不出来的召回性能,代价是多一个一致性域和多一个要运维的东西。今天成熟的托管 Postgres 都自带向量支持;在 2026 年的多数架构里,为了向量单独加一个系统看起来更像是不必要的复杂度。

把提示词和响应日志写进存状态的那个 Postgres。这个是真会咬人的。token 计量和完整的提示词/响应留存是重追加、无上限增长的;把它们放在事务表旁边,半年后你就会在压力下做 vacuum 和分区。早点给遥测一个自己的家——分析型数据库加进来很便宜,事后再拆很贵。

什么时候专用向量库才值

  • 千万级以上向量,而且你确实在测延迟指标。
  • 重度元数据过滤 + ANN 检索同时进行,pgvector 的查询规划开始不配合。
  • 频繁的全量重新 embedding,你想把它和主库的负载隔离开。

在这个门槛以下,多运维一个系统的成本大于召回上的差异。先测量,再迁移。

什么时候 Redis 值得加

会话上下文、工具调用限流、去重窗口、队列状态。当你在做某件每请求都要做、Postgres 也能服务但达不到你想要的延迟的事时,Redis 就值了。它不是记录系统,把它当记录系统用,是 Agent 团队因为一条淘汰策略丢掉一天工作的典型方式。

利益相关声明,因为这里有关:Busabase 自己就跑在 Postgres 上——本地是 PGlite,Cloud 是标准 Postgres。我们在引擎这个问题上不中立,但我们在这件事上很无聊,而这正是这一节的意义。

问题底下的那个问题

现在讲通常缺失的那部分。

上面每一个选项回答的都是字节存哪儿。没有一个回答凭什么相信这些字节。而对越来越大比例的 Agent 工作来说,第二个问题才是真正决定项目成不成的那个。

想想引擎选定之后会发生什么。一个 Agent 补全了 200 条客户记录,正确地写进了 Postgres,权限完美无缺。其中有些是错的——不是格式不对,不是被约束拒绝,就是单纯的假。自信、看起来很合理的假。

你的数据库尽了职,每一道检查都通过了,行就在那里。而你技术栈里没有任何东西,能告诉后来的读者:这 200 行里,哪些被人看过。

这不是数据库问题,所以换一个数据库并不能解决它。约束校验的是形状,行级安全校验的是权限,两者都不校验一个值是否为真——而 Agent 最贵的失效方式,恰恰是在格式完美、授权充分的情况下写错。

这对你的技术栈意味着什么

如果你的 Agent 写的东西是一次性的——临时状态、缓存、日志、人马上就会读的草稿——上面这些都不重要。选 Postgres,往下走。

如果你的 Agent 写的东西会变成别的东西要读的事实——下一轮 Agent、报表、对外页面、API 调用方——那么你的架构里就需要有一个地方,能让一次写入在生效之前被检查。它可以是你自己在 Postgres 上搭的审核队列,可以是带晋升步骤的 staging 表,也可以是一个原生就这么做的系统。

唯一不能是的,是什么都没有——然后让引擎的约束,替一个根本没人做过的决定站岗。

常见问题

Postgres 对 AI Agent 够用吗?

对多数项目够用,包括用 pgvector 做向量检索。等你有测量数据说需要第二个系统时再加。

我需要向量数据库吗?

大约千万级向量以上,或者重度元数据过滤叠加 ANN 检索时才需要。在那之下,pgvector 通常是对的选择。

提示词和响应该存哪?

别存在你的事务库里。重追加、无上限增长的遥测,早点给它自己的存储。

Busabase 用什么数据库?

Postgres——本地 PGlite,Cloud 标准 Postgres。Busabase 不是你应用数据库的替代品;它是 Agent 产出的记录在「人还没判断它是否为真」期间待的地方。

一个数据库能全包吗?

Postgres 最接近,也是正确的起点。负载会随规模分化,而遥测通常是第一个需要独立门户的。

下一步

如果「用哪个引擎」已经定了,卡住你的变成了「凭什么相信它」,那正是下一篇的主题。

什么样的存储才算 AI Agent 的记录系统 · Busabase 产品对比