engram-rs 是一个为 AI 智能体设计的记忆引擎,旨在解决传统智能体记忆“扁平存储、只增不减、缺乏组织”的问题。它通过两个轴来管理记忆:时间轴负责三层衰减与晋升,空间轴负责自组织主题树。项目以单个 Rust 二进制文件交付,使用一个 SQLite 文件,零外部依赖,无需 Python、Redis 或向量数据库,可通过 curl | bash 运行。二进制约 10 MB,内存占用约 100 MB,搜索延迟为个位数毫秒。
主要能力
三层生命周期
受 Atkinson–Shiffrin 记忆模型启发,记忆按重要性在三个层中管理:
- Buffer:所有新记忆的入口,临时暂存,低于阈值时被驱逐。
- Working:通过整合晋升,永不删除,重要性按类型以不同速率衰减。
- Core:通过 LLM 质量门控晋升,永不删除。
LLM 质量门控
晋升不是基于规则的猜测,而是由 LLM 在上下文中评估每条记忆,判断其是否真正值得长期保留。
自动衰减
衰减由活动驱动,仅在活跃整合周期触发,而非墙钟时间。系统空闲时记忆保持不变。指数衰减遵循艾宾浩斯遗忘曲线,先快后长尾。记忆不会完全消失(下限为 0.01),在精确查询下仍可检索。当记忆被召回时,会获得激活提升,强化常用知识。
语义去重与合并
两条用不同措辞表达相同内容的记忆会被自动检测并合并。
自组织主题树
向量聚类将相关记忆分组,LLM 为聚类命名,无需手动打标签。这解决了向量搜索需要提出正确问题的问题:主题树让智能体可以按主题浏览——扫描目录,深入正确的分支。例如,给记忆打上 trigger:deploy 标签,智能体可以在执行前召回所有部署经验。
会话恢复
智能体唤醒后调用 GET /resume 即可取回完整上下文,无需扫描文件。智能体读取目录,找到相关主题,调用 POST /topic 按需展开。
搜索与检索
语义嵌入加 BM25 关键词搜索,支持 CJK 分词(jieba)。IDF 加权评分——稀有词被提升,常见词自动降权,无需维护停用词表。
后台维护
全自动、活动驱动——没有写入则跳过周期。整合每 30 分钟运行一次,包括:衰减(降低未访问记忆的重要性)、去重(合并近似相同记忆,余弦相似度 > 0.78)、分类(LLM 对新 Buffer 记忆分类)、门控(LLM 批量评估晋升候选)、协调(解决模糊相似对,结果缓存)、主题树重建(重新聚类并命名)。主题蒸馏:当主题增长过大(10 条以上记忆),重叠内容被浓缩为更少、更丰富的条目。
命名空间隔离
单实例支持多项目,使用 X-Namespace 进行隔离。
LLM 配置
engram-rs 无需 LLM 也能工作——关键词搜索和基于规则的生命周期仍然可用。添加 LLM 可解锁智能功能(分类、门控、合并、主题命名)。支持两级模型配置:强模型用于判断,轻量模型用于文本处理。
使用方式
项目提供 17 个 MCP 工具和完整 HTTP API。内置 Web UI 位于 http://localhost:3917/ui,用于浏览记忆、查看主题树和监控 LLM 使用情况。可与 Claude Code、Cursor、Windsurf、OpenClaw 以及任何兼容 MCP 的工具配合使用。安装方式为 curl | bash。
适用场景
适用于需要长期记忆、自动遗忘与知识组织的 AI 智能体,例如需要记住部署经验、会话上下文、项目知识并自动整理主题的智能体应用。
限制
资料未提供具体的系统要求、支持的平台、LLM 提供商列表、性能基准的详细数据、许可协议或价格信息。