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 最接近,也是正确的起点。负载会随规模分化,而遥测通常是第一个需要独立门户的。
下一步
如果「用哪个引擎」已经定了,卡住你的变成了「凭什么相信它」,那正是下一篇的主题。