● 2026.07.10 · 全球 AI 产业资讯 登录 投稿 订阅早报 →
AI 新闻

微软用 Cosmos DB 为 eve 代理添加记忆

微软展示如何将 Vercel 的文件系统型 agent 平台 eve 与 Azure Cosmos DB 集成,构建具备长期语义记忆的代理;文章提供生产就绪的 TypeScript 示例,覆盖客户端复用、分区设计、向量索引与向量检索等关键实现细节。该方案利用 Cosmos DB 的原生向量搜索、TTL 与低延迟读取,避免了外部向量库并简化运营成本。

微软用 Cosmos DB 为 eve 代理添加记忆

微软展示如何将 Vercel 的文件系统型 agent 平台 eve 与 Azure Cosmos DB 集成,构建具备长期语义记忆的代理;文章提供生产就绪的 TypeScript 示例,覆盖客户端复用、分区设计、向量索引与向量检索等关键实现细节。该方案利用 Cosmos DB 的原生向量搜索、TTL 与低延迟读取,避免了外部向量库并简化运营成本。

概览
– 目标:把无状态的 eve 代理扩展成有长期语义记忆的代理,用于写作、支持和任务管理等场景。
– 关键组件:Vercel 的 eve(文件系统为中心的 agent 平台)+ Azure Cosmos DB JavaScript/TypeScript SDK。

为什么选 Cosmos DB 作为记忆存储
– 低延迟单点读取(知道 id 与分区键时为 1 RU 左右)。
– 原生向量搜索(VectorDistance()),无需独立向量数据库。
– 原生 TTL 支持,便于自动过期短期记忆。
– 单一容器可存储应用数据与向量,简化计费和运维。

实施要点
1) 单例 CosmosClient
– 在全局复用一个 CosmosClient 实例以避免连接泄露和 TLS 延迟(示例用 globalThis 缓存)。

2) 分区与读取策略
– 选高基数且不可变的分区键(例如 blog slug 或 sessionId),并尽量让 id 等于分区键以获得单项低成本读取。
– 列表查询用 continuation tokens 而非 OFFSET/LIMIT。

3) 将容器变为向量记忆库
– 在容器创建时定义 vectorEmbeddingPolicy 与 vectorIndexes(不可后改)。
– 在 indexingPolicy 中排除原始向量路径以节省写入 RU,并单独为向量建立量化索引(QuantizedFlat)。

4) 存储与检索记忆示例
– appendMemory(sessionId, content): 先计算文本 embedding,然后用随机 UUID 创建记忆项,包含 sessionId、content、embedding、createdAt 等字段。
– recall(sessionId, query, k): 计算 query 的 embedding,执行带参数化向量查询并按 VectorDistance 排序,限定 partitionKey 保持单分区查询以降低成本与延迟。

实务建议与注意事项
– 优先使用 Entra ID(DefaultAzureCredential)而非密钥进行认证。
– 为短期记忆设置 ttl 字段,长期记忆可置为永不过期。
– 在开发环境中注意 Next.js 等框架的热重载可能导致模块重置,需确保客户端单例化。

结论
– 将 eve 与 Cosmos DB 结合可以快速构建具备语义记忆的代理,利用 Cosmos DB 的原生向量能力与全球分布特性,避免额外基础设施并实现低延迟检索。

参考
– 文章包含完整 TypeScript 示例,可直接用于生产环境改造与部署。

把文件系统型 agent 与 Cosmos DB 原生向量结合,是工程化且易于生产化的记忆方案。

原文链接

不错过任何一条 AI 大事

订阅 AIFlux 早报,每天 3 分钟看懂产业动态。

相关阅读