Mem0 于 2026-09-25 发布 Python SDK v2.2.1(PyPI mem0ai 2.2.1):`Memory`/`AsyncMemory.add()` 仅在向量库真正插入后才记历史、做实体关联并返回;若抽取记忆全部插入失败则抛 `VectorStoreError`,不再把拒写记录当成成功 ADD。同步恢复 `with Memory()` / `async with AsyncMemory()` 上下文管理;AWS Bedrock Anthropic 路径改为取第一个带 text 的 Converse content block(兼容 reasoningContent 前置);Turbopuffer 过滤器补齐 eq/ne/gt/gte/lt/lte/in/nin,且 euclidean_squared / S3 Vectors euclidean 的 score 映射改为 `1/(1+distance)` 避免负分或塌零。同日 Node SDK ts-v3.3.1 修了非 OpenAI provider 被注入 OpenAI baseURL/model 的问题。
核心要点速览 (Key Takeaways)
- ✓发版:v2.2.1 / PyPI mem0ai 2.2.1;Node 侧同步 ts-v3.3.1
- ✓正确性:`add()` 只返回真实插入的记忆;全部失败抛 `VectorStoreError`,杜绝假 ADD
- ✓Bedrock:Anthropic Converse 跳过前置 `reasoningContent`,取首个带 text 的 block,避免 KeyError
- ✓Turbopuffer:过滤器支持 eq/ne/gt/gte/lt/lte/in/nin(此前仅 gte/lte);不支持算子抛 ValueError
- ✓打分:`euclidean_squared` / S3 Vectors `euclidean` 用 `1/(1+distance)`,避免负分或大量 0 分
相关资源与官方项目出处
免代理直达深度技术解析与实战评估
核心背景与行业痛点
Agent 长记忆依赖「写入成功」与「检索排序」两条真相。此前 Mem0 add() 可能把向量库拒写的记录仍记成成功 ADD 并写历史/实体链,调用方误以为记忆已落库;Bedrock 上 Claude reasoning 模型会在 text 前插入 reasoningContent,旧逻辑读 content[0] 直接 KeyError;Turbopuffer 只认 gte/lte,其它算子被静默丢弃导致未过滤结果,且 1-distance 在距离>1 时变负分、S3 Vectors euclidean 大量塌成 0。
架构亮点与底层机制
v2.2.1(2026-09-25,PyPI mem0ai 2.2.1)让 Memory/AsyncMemory.add() 仅处理真实插入记录,全失败抛 VectorStoreError;恢复上下文管理器退出时关闭实例。Bedrock Anthropic 路径取首个带 text 的 Converse block。Turbopuffer 过滤器覆盖 eq/ne/gt/gte/lt/lte/in/nin;euclidean_squared 与 S3 Vectors euclidean 的 score 改为 1/(1+distance)。同日 ts-v3.3.1 避免给 DeepSeek/xAI 等注入 OpenAI 默认 baseURL/model。
权威 Benchmark 与实测跑分对比
发行说明未提供检索 Recall/延迟等公开跑分,重点是正确性回归。相对 v2.2.0:可观测的行为差是「假 ADD 消失」「reasoning 模型可走通 Bedrock」「过滤器与距离打分不再静默错排」。生产侧应以失败率与负分/零分占比做回归,而非期待吞吐数字。
开发者实战落地与开箱指南
pip install -U mem0ai==2.2.1,对 add() 捕获 VectorStoreError 并核对 history 是否只含真实插入;Bedrock+Claude reasoning 复测 Converse;Turbopuffer 用户验证 eq/in 等算子与 euclidean_squared 排序。Node:npm i [email protected]。文档:docs.mem0.ai,发行页:v2.2.1。
讨论与评论
0登录后即可参与深度讨论
与广大 AI 开发者、工程师交流评测心得与前沿洞察