给你的 AI Agent 装一个「能记事」的记忆层
给你的 AI Agent 装一个「能记事」的记忆层
你有没有发现,AI 聊着聊着就忘了之前说的事?这不是 bug,是架构问题。
问题:AI 的三个记忆病
1. 假装知道
你问 AI「上次那个 numpy 踩坑怎么解的」,它编一个看起来很对的答案。通用记忆库呢?有啥返回啥,硬凑 top-k,根本不管有没有相关结果。
2. 经验流失
日志堆着越用越乱。教训和技能混在一起,踩过的车下次还翻。新人接手项目,完全不知道 3 个月前同类问题是怎么翻车的。
3. 模型坍塌
自己的输出喂自己,总结的总结再总结。越用越偏,没人知道源头是什么。
我们的解法:Agent Memory Layer
一个可私有部署的记忆组件,通过 MCP / HTTP 双接口接入你现有的 Agent。
我们解决三件通用记忆库不做的事:
🔍 诚实报空
1 | |
no_relevant_memory: true — 库里没有这条,别硬编。调用方能区分「强证据」和「矮子里拔将军」。
判据三层:max_sem + margin 复合阈值 → 词面命中率否决(CJK 二字滑窗)→ 调用方裁决。
📚 L0/L1 分层
- L0(教训):永不回滚。踩过的坑永远记住,方法可以过时,教训不会消失。
- L1(技能):可作废。新的替代旧的,但旧的不会被删除,只是标记为「已替代」。
🔗 可追溯硬约束
L1 必须能追到人类原话或实测数据。拒绝「总结的总结」,每条记忆都有出处。
5 分钟接入
1. 启动服务
1 | |
2. 写入一条记忆
1 | |
3. 检索
1 | |
4. MCP 接入
1 | |
Agent 就多了 qmem_query / qmem_search / qmem_add / qmem_feedback 四个工具。
真库实测(4,452 条记忆)
我们用一个真实运行的记忆库做了全面体检:
| 维度 | 指标 | 实测 |
|---|---|---|
| 规模 | 记忆总数 / L1 占比 | 4,452 / 77.0% |
| 向量覆盖 | bge-512 | 100.0% |
| 去重 | 精确重复 | 0 (0.0%) |
| 概念网 | 孤立记录 / 每记录链接 | 3.9% / 4.1 |
| 自召回 | 文本级命中率 (k=5) | 94.7% |
| 性能 | 查询延迟 P90 | 175 ms |
一次真实调优
最常见的疑问「我明明存了,为什么召回不到」——我们在 4,451 条真库上做了无损 A/B:
| 指标 | 调优前 | 调优后 |
|---|---|---|
| 默认配置 hit@5 | 2.5% | 95.0% |
| 自召回 | 3.3% | 94.7% |
| 延迟 P90 | 401 ms | 175 ms |
两个根因:
W_TEMP / W_IMP各占 0.2,而语义分差只有 0.02~0.05 → 新近度/重要度碾压语义- 类别降权把有效结果整体压低
修法:W_SEM/W_TEMP/W_IMP 从 0.6/0.2/0.2 → 0.94/0.03/0.03。
结论:记忆层的性能瓶颈几乎从不在向量模型,而在排序权重与写入纪律。
三个真实场景
场景 A:Agent 不再「假装知道」
没装记忆层:用户问「上次那个 numpy 踩坑怎么解的」,Agent 编一个答案。
装了之后:no_relevant_memory: true → Agent 回「库里没有这条,需要我重新查/试吗?」
价值:幻觉率下降,用户信任上升。
场景 B:踩过的坑不再重踩
新人接手项目,Agent 自动检索到 3 个月前同类翻车的复盘三问(执行层错在哪 / 问题定义歪没歪 / 下次怎么改题)。
价值:经验变成可迁移资产,不是散落的聊天记录。
场景 C:多 Agent 共享记忆
编排 Agent + 执行 Agent + 质检 Agent 共用一套记忆层。执行 Agent 翻车 → 质检 Agent 回灌教训 → 下次编排 Agent 自动规避。
价值:执行 → 反馈 → 修正 闭环变成基础设施。
架构
1 | |
差异化(vs Mem0 / Letta / 自建)
| 维度 | 通用记忆库 | Agent Memory Layer |
|---|---|---|
| 幻觉 | 有啥返回啥 | no_relevant_memory 诚实报空 |
| 经验 | 日志堆着 | L0 教训不回滚,L1 技能可作废 |
| 溯源 | 无 | L1 必须追到人类原话/实测 |
| 部署 | SaaS/云 | 单文件 SQLite,数据不出内网 |
| 接入 | 专用 SDK | MCP / HTTP,任意客户端即插即用 |
已知限制(诚实披露)
- 当前为单机 SQLite,非多租户集群
- 双嵌入可选:WeMM-2B 精度更高,但冷启 5–16 秒、模型 1.37 GB
- 阈值/权重随库增长漂移,需周期性标定
- 概念网为纯派生产物,可安全重跑
总结
三句话:
- 别的记忆库只会「存和取」,我们让 AI 知道什么时候没有记忆。
- 经验分层永不清零——方法可作废,教训不回滚。
- 可私有部署,数据不出内网,任意 MCP 客户端即插即用。
本文由好奇三剑客(🔭 + 🦾 + 💻)协作完成。