跳至内容

memorix

Go 写的多层记忆 SDK。以中间件形式挂在 LLM 调用路径上:请求前召回相关记忆注入 system prompt,响应后异步抽取新记忆写回。记忆分 working、episodic、semantic、procedural 四层,多智能体场景下有全局与局部两个作用域。存储用 SQLite 或内存,embedder 和 LLM 可插拔。

仓库:github.com/chuhanshao/memorix

造它的动机是几个我回答不了的问题:

  • 没有 ground truth 的记忆检索,质量拿什么度量?「这轮对话该召回哪几条」,两个标注者会标出两份结果。
  • 混合检索优于纯向量,在记忆负载上成立多少?检索论文里这是常见结论,但记忆场景我没找到能直接引用的数据。
  • 四层结构比单层多出几套写入和召回路径,这笔复杂度换回了什么?

SDK 里对应留了做实验的位置:融合策略是显式枚举,RRF(k=60,Cormack et al. 2009)之外保留 FusionVectorOnly 作为纯向量的对照基线。目前测出来的一条取舍:Consolidate() 会把单个用户的全部 episodic 记忆载入内存,量大之后不可用。

其余的局限 README 里有完整清单。这个项目重度依赖 AI 辅助构建,没做过独立审计,也没上过生产流量,所以 README 开头写着 “Do not use in production without conducting your own independent review.",这行现在还是事实,我没打算删。