核心用法
neolata-mem 是一个专为 AI 代理设计的图原生记忆引擎,通过 npm 包 @jeremiaheth/neolata-mem 提供零依赖、零基础设施的持久化记忆能力。开发者仅需 npm install 即可在 Node.js ≥18 环境中运行,无需 Docker、Python、Neo4j 或云端数据库。
基础使用流程:
1. 创建记忆实例:createMemory() 支持零配置启动(本地 JSON 存储 + 关键词搜索)
2. 存储记忆:mem.store(agentId, content, metadata) 支持分类、重要性评分、标签
3. 搜索记忆:mem.search(agentId, query) 自动在语义向量搜索和关键词回退间切换
4. 维护记忆:定期调用 mem.decay() 触发生物衰减,清理陈旧信息
进阶能力:
- 混合搜索:配置 OpenAI/NVIDIA/Ollama 等嵌入服务时启用语义搜索,否则自动降级为倒排索引关键词匹配(O(1) 查找,>500条记忆时预过滤优化)
- 记忆图谱:自动基于语义相似度构建 Zettelkasten 式链接,支持
links()、path()、clusters()图谱遍历 - 冲突解决:
detectConflicts()识别矛盾记忆,evolve()归档旧事实并建立版本链接 - 多代理:
searchAll()实现跨代理记忆检索 - 批量操作:
storeMany()/searchMany()摊平嵌入 API 调用成本,支持原子回滚 - 事实提取:
ingest()调用 LLM 将长文本拆分为原子事实并自动链接存储
显著优点
1. 零基建本地优先:默认纯 JSON 文件存储,数据驻留本地;对比 Mem0 必须云端,Graphiti 依赖 Neo4j
2. 智能降级设计:无 API 密钥时无缝切换为高效关键词搜索,不打断开发流程
3. 生物启发机制:遗忘曲线模拟让记忆系统具备自管理能力,避免信息过载
4. 完整安全加固:针对代理内存攻击向量设计——XML 围栏防提示注入、SSRF 防护(拦截 169.254.169.254 等元数据端点)、路径遍历防护、原子写入防文件损坏、密码学 UUID 防预测
5. 多嵌入供应商:5+ 供应商支持(OpenAI、NVIDIA NIM、Ollama、Azure、Together),Ollama 模式实现完全离线
6. 测试完备:144/144 测试通过,MIT 许可证
潜在缺点与局限性
1. 性能天花板:纯 JSON 文件存储在单文件 50K 记忆上限、大并发写入场景下可能成为瓶颈;Supabase 后端可缓解但引入网络延迟
2. 嵌入成本:语义搜索依赖外部 API(OpenAI 等),高频场景产生持续费用;本地 Ollama 可替代但需 GPU/内存资源
3. 冲突检测精度:基于 LLM 的 detectConflicts() 受模型能力限制,可能出现误判或漏判,非确定性输出
4. 生态锁定:深度依赖 Node.js 运行时,Python 或 Rust 代理栈需额外桥接
5. 维护负担:decay() 需显式调用,长期运行代理需自建 cron/心跳机制触发维护
适合人群
- 独立开发者/小团队:需要快速为 AI 代理添加记忆能力,无运维预算
- 隐私敏感场景:医疗、法律、金融领域要求数据不出本地
- 多代理系统架构师:需要跨代理知识共享与图谱推理的复杂工作流
- 边缘/离线部署:使用 Ollama 嵌入在无互联网环境运行
- OpenClaw 用户:作为内置
memorySearch的补充,处理结构化、跨会话、需衰减的代理知识
常规风险
| 风险类型 | 说明 | 缓解措施 |
|---------|------|---------|
| 数据泄露 | 配置外部嵌入/LLM 时记忆文本外送 | 使用 Ollama 本地嵌入,或仔细审核供应商数据处理条款 |
| 提示注入 | 恶意记忆内容污染 LLM 提取/冲突检测流程 | 内置 XML 围栏与输出结构验证 |
| SSRF | 通过恶意嵌入端点 URL 攻击内网 | `validateBaseUrl()` 拦截私有 IP 与非 HTTP 协议 |
| 路径遍历 | 通过构造 agentId 或存储路径访问系统文件 | `resolve()` + 前缀校验 + 路径标准化 |
| 存储损坏 | 崩溃导致 JSON 文件损坏 | 临时文件 + 原子重命名写入策略 |
| API 配额耗尽 | 批量操作误配置导致 OpenAI/NVIDIA 限流 | 指数退避重试(最多3次)、批量大小硬限制 |
| 记忆污染 | 冲突检测失效导致矛盾事实共存 | 定期人工审计 + 重要性评分机制优先高信源 |
建议生产配置:Ollama 嵌入 + 本地 JSON 存储 + 每日 decay() 维护,仅在必要时启用云端嵌入。