Vercel AI SDK 有了持久记忆:MongoDB 开源集成把对话、事实与事件存进 Atlas
核心概要
MongoDB 发布并开源了 Vercel AI SDK 的集成包,把 MongoDB Atlas 变成用该 SDK 构建的 AI 应用与智能体的持久记忆库。此前 Vercel AI SDK 本身不含数据库,应用每次对话都从零开始,开发者要自己设计模式、清理旧数据和搭建向量检索。该集成把记忆自动分为会话、语义、程序、情景和草稿五类,分别设定保留策略,并自动创建向量索引、在启动时检测嵌入维度。
深度剖析
用 Vercel AI SDK 构建的 AI 应用和智能体现在可以把记忆存进 MongoDB Atlas,并在会话、用户和重启之间保留下来。 Vercel AI SDK 是一个用于构建 AI 应用的 TypeScript 工具包,负责调用模型、流式返回、使用工具和运行多步任务的智能体,但它本身不含在两次运行之间持久保存记忆的数据库;没有记忆时,应用每次对话都不知道用户是谁、昨天问过什么。 该集成以开源形式发布并在 npm 上正式可用,采用 Apache 2.0 许可,兼容 AI SDK v6 与 v7,需要 MongoDB Atlas 集群;安装后包会把应用记忆自动存为文档。
记忆被自动分成五类,各自按不同时长保留、按不同方式检索。 五类分别是会话、语义、程序、情景和草稿:情景记忆默认在一年无活动后过期,草稿记忆一小时后过期,若后来显得重要可提升为情景记忆。 语义、程序和情景三层使用 MongoDB Vector Search,按语义而非精确关键词查找记忆;语义与程序记忆带版本,事实变化时保留历史。
保留策略和向量索引由集成自动配置,开发者只需给出连接串和嵌入模型。 保留模式可选不过期、按时间过期、按时间过期但保留被标记为重要的记忆,或由开发者自定义遗忘周期;模型也可在用户说“忘掉那个”时通过 memory_forget 删除特定记忆,删除通常在约 60 秒内完成。 集成在启动时自动创建向量索引并检测嵌入维度,可使用 Voyage AI、OpenAI、Cohere 或 Google 等任意 AI SDK 嵌入模型;生产环境可用 AI SDK 钩子让应用代码在每一轮加载和保存对话,使每条用户、助手和工具消息恰好保存一次。
启示与展望
该集成面向用 Vercel AI SDK 构建的 TypeScript 应用,需要 MongoDB Atlas 集群,兼容 AI SDK v6 与 v7;默认由模型决定何时保存和读取对话轮次,因此偶尔可能跳过一轮。
默认情况下模型自行决定何时保存和读取对话轮次,可能偶尔跳过一轮,生产环境需改用 AI SDK 钩子;保留时间过长会降低检索性能并增加成本,删除过早则会让应用忘掉重要上下文,平衡需由开发者自行设定。
