Engram 是一个面向 AI 智能体的持久化记忆层,采用进程内运行方式,基于本地 SQLite 存储与本地嵌入,宣称零云依赖、无需 API 密钥、无需 Docker。项目采用 MIT 许可。
用途 为 AI 智能体提供长期记忆,使其能够跨会话、跨机器重启、跨不同 AI 客户端共享同一 Engram 实例时保留记忆内容。
主要能力
- 存储与召回:engram_remember 将内容经密钥检测后使用 all-MiniLM-L6-v2(约 23 MB,仅 CPU,首次下载后缓存于 ~/.engram/models/)本地嵌入;嵌入与元数据存入 SQLite(~/.engram/memory.db)。engram_recall 对查询嵌入,通过 FTS5 与命名空间内嵌入获取候选,并按 (相似度 × 0.45) + (新近度 × 0.15) + (置信度 × 0.15) + (访问 × 0.05) + (反馈 × 0.10) + fts_boost 评分返回。
- 记忆分类:包含 fact(客观事实)、preference(偏好)、pattern(模式)、decision(决策)、outcome(结果)五类。
- 学习机制:engram_feedback 允许对召回记忆投票有帮助/无帮助,记忆累积 [-1, 1] 分数,5 票以上后调整置信度;持续无帮助的记忆置信度自动衰减。
- 矛盾检测:两条记忆冲突时由整合引擎标记,仪表盘 Conflicts 标签页可并排查看并提供保留 A、保留 B、都保留、忽略四种处理动作;启用可选 LLM 层后增加 LLM 确认步骤以减少误报。
- 去重与衰减:插入时完全相同(相似度 ≥0.95)的记忆被拒绝,近似重复(0.92–0.95)将新内容并入已有记录;长期未被召回的记记忆置信度随时间下降。
- 安全防护:每次写入经过基于模式的密钥检测(OpenAI/Stripe/AWS/GitHub/Slack/Google 密钥、私钥、连接字符串、JWT、高熵字符串),检测到的密钥要么拒绝该记忆,要么脱敏。
- MCP 工具:通过 stdio 向 AI 智能体暴露 6 个工具。
- 仪表盘:内置 React 仪表盘位于 http://localhost:3838,含 Dashboard(统计、近期活动、健康度)、Memories(浏览、筛选、内联编辑、批量删除)、Search(语义搜索与评分明细)、Statistics(按分类/命名空间/时间的图表)、Health(陈旧、从未召回、低反馈记忆及一键清理)、Conflicts(矛盾并排解决)、Agents(自动检测已安装 AI 客户端并写入 MCP 配置,带时间戳备份)、Import(导入 cursorrules、.claude 文件、package.json、git config、SSH config、shell history、Obsidian、.env)。REST API 默认运行于 http://localhost:3838。
- 记忆技能:包内附带 engram-memory 技能,作为判断层,教智能体在会话开始召回、将持久决策/纠正/结果实时存储、结束时写回结果;适用于 Claude Code、Claude Desktop、Cowork 或任何读取 Agent Skills 规范(.agents/skills)的框架。可通过 engram skill install / engram skill uninstall 管理。
- 命名空间隔离与时间查询:支持命名空间隔离;MCP 与 REST 支持时间范围过滤,engram_recall 可传 time_filter 对象,支持 after / before(ISO 日期或“3 days ago”等相对字符串)或 period 简写(today、yesterday、this_week、last_week、this_month、last_month、this_year、last_year)。
- 可选本地 LLM 增强(v1.9+):默认关闭(llm.provider: null),零配置路径使用基于规则的提取且不调用 LLM。启用后可提升对新记忆的分类/实体/置信度识别,并增加 LLM 确认步骤减少矛盾误报。使用本地 Ollama(默认)或任意 OpenAI 兼容的本地服务器(LM Studio、llama.cpp)。推荐模型为 henrybarefoot1987/engram-extract(基于 Qwen3-1.7B,Apache-2.0,© Alibaba Cloud;Engram 仅添加提取提示与约束输出配置)。若端点非本地(localhost/127.0.0.1),记忆内容会被发送到该处,桌面端 AI Enhancement 标签页会显示明确警告;模型不可达时熔断器暂停该层并回退到基于规则的提取。
使用方式
- 安装与启动:仓库提供安装与启动服务器的步骤(具体命令见仓库 README)。
- 连接 AI 智能体:Claude Desktop 在 ~/Library/Application Support/Claude/claude_desktop_config.json 添加 mcpServers 配置块;Cline / Cursor / Windsurf 在编辑器 MCP 配置中添加相同 mcpServers 块;也可通过 http://localhost:3838 的内置仪表盘的 Integration Wizard 自动检测已安装智能体并生成配置。
- 数据目录:所有内容存放在 ~/.engram/ 下;覆盖优先级为 --data-dir 参数 > ENGRAM_DATA_DIR 环境变量 > ~/.engram/config.json 中的 dataDir > 默认 ~/.engram。
- 沙盒评估:可将数据目录指向临时位置以免触碰 ~/.engram/memory.db,适用于首次评估、CI 运行或使用全新数据库测试桌面 sidecar。
- 配置:默认开箱可用;自定义配置文件为 ~/.engram/config.json,llm.* 块用于可选的本地 AI 增强。
- 库用法:可作为库在 Node.js 应用内使用(详见仓库文档)。
- CLI:运行 engram --help 查看完整参数列表。
适用场景 希望为 AI 智能体增加本地优先、无需运维基础设施的长期记忆,且重视密钥防护与数据不出本机的开发者;跨多个 MCP 客户端共享统一记忆的场景。
限制与说明 Engram 不在记忆基准上与 Mem0 或 Zep 竞争排名,其定位是零运维面下的可靠召回。作者为独立开发者,企业层的优先响应为尽力而为,非合约 SLA。仓库中给出的性能数字来自 Apple M4 Pro、1000 条种子记忆的测试(可用 npm run bench 复现),属于占用与延迟数据而非准确率声明。可选 LLM 层默认关闭;零配置路径不调用 LLM。具体安装命令、完整配置字段、库调用示例等以仓库文档为准,本资料未完整提供。