Engram 是一个面向 AI 智能体的通用记忆层,定位为“记住、回忆、整合”,目标是为智能体提供知识图谱、记忆整合与扩散激活能力,而不仅是存储。
用途 Engram 用于为 AI 智能体提供长期记忆能力,使其能够记住、回忆并整合信息,从而在长对话等场景中保持对上下文的理解。
主要能力
- 语义向量搜索:在本地 SQLite 中存储记忆,并支持语义召回。
- 知识图谱:提供知识图谱能力,支持图邻居查询。
- 记忆整合:由 LLM 驱动的整合(consolidation)。
- 扩散激活:支持扩散激活(spreading activation),可配置扩散、扩散跳数、扩散衰减、扩散实体跳数等参数。
- 矛盾检测与双时间知识图谱:根据描述,具备矛盾检测和双时间知识图谱能力。
- MCP 工具:通过 MCP 提供 17 个记忆工具。
- REST API:为非 Node 环境提供 REST API,服务器默认运行在 http://127.0.0.1:3800。
使用方式 推荐通过 MCP 在 Claude Code / Cursor 中安装。安装后可通过 engram init 完成 MCP 注册、CLAUDE.md 指令、工具自动批准以及会话结束时的整合钩子等配置。安装后运行 engram doctor 可确认所有检查项(vault、API 密钥、嵌入、MCP 注册、CLAUDE.md)是否通过。
REST API 端点(基础 URL:http://127.0.0.1:3800,均返回 JSON):
- POST /v1/memories — 存储一条记忆
- GET /v1/memories/recall — 召回记忆;查询参数:context(必填)、entities、topics、types、limit、spread、spreadHops、spreadDecay、spreadEntityHops
- POST /v1/memories/recall — 召回(复杂查询),响应结构与 GET 召回相同
- DELETE /v1/memories/:id — 遗忘一条记忆
- GET /v1/memories/:id/neighbors — 图邻居
- POST /v1/consolidate — 运行整合
- GET /v1/briefing — 会话简报;也可用 POST /v1/briefing 并携带 JSON 请求体
- GET /v1/stats — Vault 统计
- GET /v1/entities — 列出实体
- GET /health — 健康检查
数据与配置 数据库默认位置为 ~/.engram/,可通过环境变量覆盖。嵌入、整合和 LLM 驱动的抽取需要配置 LLM 提供商(默认 Gemini,使用用户自己的 API 密钥)。可通过 ENGRAM_LLM_MODEL 设置模型,需在运行 engram init 前设置,该设置会写入 MCP 服务器配置。可通过 ENGRAM_NO_UPDATE_CHECK=1 禁用每 4 小时一次的 npm 版本检查。
适用场景 适用于需要为 AI 智能体提供长期记忆、语义召回、知识图谱和记忆整合的开发者与项目,尤其是使用 Claude Code / Cursor 等支持 MCP 的环境。
限制与注意事项
- 数据本地存储在 SQLite(~/.engram/)。
- 网络调用仅包括:调用用户配置的 LLM 提供商(默认 Gemini,使用用户自己的 API 密钥)进行嵌入、抽取和整合,以及每 4 小时一次针对 npm registry 的版本检查(可用 ENGRAM_NO_UPDATE_CHECK=1 禁用)。无遥测。
- 使用 Gemini 免费层时需注意速率限制:gemini-2.5-flash 免费层约 20 请求/分钟、约 1,500 请求/天;嵌入调用也计入限制。更轻量的模型如 gemini-3.1-flash-lite 有更高的免费层 RPM。
- 内置重试逻辑:遇到速率限制会自动等待并最多重试 3 次。
- 若频繁使用(快速连续 remember + recall),建议升级到付费 Gemini API 密钥以获得更高限制。
- 项目采用 MIT 许可,开源。
基准表现(LOCOMO 长对话记忆召回)
- Engram:80.0% 准确率,776 tokens/查询
- 基于文件的记忆(将原始事实追加到 markdown 文件):28.8% 准确率
- 人工记忆文件(人工整理的摘要):74.5% 准确率,1,373 tokens/查询
- Mem0:66.9% 准确率 Engram 相比人工记忆文件减少 44% 的 token(776 对 1,373 每查询)。完整上下文(转储整个对话历史)得分最高,但使用 30 倍 token,且无法扩展到上下文窗口限制之外;Engram 在减少 96.6% token 的情况下缩小了大部分差距。