bge-reranker-base 重排,任何失败平滑回退融合顺序,并有 rerank_enabled 关闭开关。在提交的 gold-set 上实测(与模型选型同一 harness):全栈 recall@5 0.90 → 1.00,MRR@10 0.78 → 0.95,nDCG@10 0.83 → 0.96 —— 10 条查询里 9 条把正确记忆排在第 1;scope/时间校准无回退。正式下限已冻结并由 CI 把关。已接入 engram context pack、MCP server 和 Web Context Preview;经代码 + 安全双重评审。另新增持久 embedding 缓存(~/.engram/cache/embeddings.db,内容寻址,LRU,全程可降级),一次性 CLI 调用只重嵌改过的 body;以及 remote 后端(backend = remote,纯 stdlib urllib:OpenAI 兼容 embeddings + Cohere/Jina/Voyage 重排),与 observer 共用同一套已审计的 key 白名单和重定向剥离纪律。1456 单测,ruff + mypy strict 全绿。 词法通道索引人写的元数据(T-218,2026-07-29):记忆的 name 和 description 是人手写的摘要,检索却完全看不见;索引之后提交 gold-set 上 BM25 MRR@10 0.670 → 0.764,融合通道 0.781 → 0.858,校准集不动。更有价值的是没有发布的那一半:同样的元数据喂给嵌入器,在 LOCOMO 上 MRR@10 掉 0.056、temporal 类掉 0.139 —— 它生成的 description 每条都带日期,于是每篇资产都对日期查询有点像。BM25 有 IDF 能把全语料重复的词压到无权重,稠密检索没有这道防线。能安全塞进词法索引的东西,不一定能安全塞进嵌入。另一个把元数据也喂给交叉编码器的变体拿到了满分 1.000/1.000/1.000/1.000,仍然没发布 —— 它的 LOCOMO 那一档还没测。1522 单测,ruff + mypy strict 全绿。
加入讨论区
engram 是一个本地、可移植、不绑定任何 LLM 的记忆系统——越用越聪明。纯 markdown 存在你自己的磁盘上,任何模型,任何工具,你永久拥有。
docs/assets/demo.gif —— 上面这段 transcript 就是同一个流程。
换模型,上下文丢了。换工具,一切从头教起。engram 是反过来的设计。
记忆锁在私有 SQLite 数据库里。换模型——上下文消失。
记忆存在厂商云端。无法导出,无法 git diff,无法在工具间迁移。
记忆以人类可读的 .md 文件形式存在你自己的磁盘上。任何 LLM、任何编辑器、git 友好——永久有效。
每一层都可以独立替换。删掉第 1 层以上的任何一层,系统仍然正确运行。
按函数(资产是什么)区分,不按尺寸区分。没有任何硬上限。
一条可以独立被 supersede 的事实、规则、偏好或指针。LLM 上下文启动的基线。
结构:单个 .md + YAML frontmatter
角色:经相关性闸门进入系统 prompt
无尺寸上限——自适应信号替代固定阈值
有可运行的 spine、fixture 测试用例和 metrics 追踪器。不只是描述——必须能真正执行。
结构:workflow.md + spine.* + fixtures/ + metrics.yaml
角色:任务匹配时加载;自学习引擎持续演化
追踪结果,自动提出改进建议
人会专门坐下来阅读的多章节文档。LLM 编译 _compiled.md 摘要以高效进入上下文预算。
结构:README.md + 章节 + assets/ + _compiled.md
角色:摘要优先进 budget;全文章节按需检索
人写章节;LLM 编译摘要
三个自适应信号替代硬上限:动态预算分配 · 百分位长度信号 · 演化引擎的拆分/升级/降级建议
真实团队共享知识的方式不止一种。engram 将归属层次与主题订阅分成两个独立的轴。
一致性引擎运行四阶段扫描并给出建议。它永远不会自动执行任何变更。
事实冲突
规则冲突
引用失效
工作流衰变
时间过期
静默覆盖
同题分歧
永不自动执行
引擎给出建议,永不自动执行。删除操作始终经过 archive/,保留期至少 6 个月,之后才会物理移除。
你的 agent 经常并发操作多个关联仓库。当 A 的 agent 发现 B 仓的问题时,可以直接发一条结构化收件箱消息——不打断 B 的当前 session。
没有任何其他系统同时做到的组合:数据资产可移植性 + 主动质量维护 + 可量化的自改进。
| 能力 | engram v0.2 | claude-mem | basic-memory | Karpathy Wiki | mem0 | MemGPT / Letta | ChatGPT Mem |
|---|---|---|---|---|---|---|---|
| 纯 markdown 存储 | ✓ 开放 | SQLite | ✓ | ✓ gist | 托管 | 托管 | 托管 |
| 工具无关(任意 LLM) | ✓ | 仅 Claude | 部分 | 部分 | 部分 API | 部分 API | 仅 ChatGPT |
| 两轴 scope(层次 + pool) | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
| 显式 enforcement 级别 | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
| 7 类一致性检测 | ✓ | 部分 | ✗ | ✗ | ✗ | ✗ | ✗ |
| 可执行工作流 | ✓ | ✗ | ✗ | ✗ | ✗ | 部分 | ✗ |
| 知识库类(KB) | ✓ | ✗ | ✗ | ✓ 手动 | ✗ | ✗ | ✗ |
| 一等公民 Web UI | ✓ | ✗ | ✗ | ✗ | 部分托管 | 部分托管 | 部分托管 |
| MCP server | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
| 跨仓收件箱 | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
| 量化的自改进 | ✓ 智慧指标 | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
| 开源 | ✓ MIT | ✓ | ✓ | ✓ | 部分 | ✓ | ✗ |
四组量化曲线证明 store 在自我改进。"感觉更好用了"变成了一个可以回归或提升的数字。
工作流熟练度
任务复现效率
记忆精炼率
上下文效率
通过 engram wisdom report 查看——每条曲线均由记录的结果计算得出,而非启发式猜测。
store 属于其拥有者,不属于写入它的工具。任何文本编辑器,任何 LLM,任何版本控制系统。
乏味的 markdown 在十年尺度上赢。格式是永久的押注,智能层是可选的投资。
不限你存多少,但严格守住每一条的水平。一致性引擎保证 store 即使膨胀也不乱。
删除走 archive/,保留期至少 6 个月。每次退役都需要明确决策。
记忆的置信度来自记录的结果,不是感觉。系统用数据证明某条记忆不好,才让它退役。
v0.2 CLI 持续建设中。2026-04-20 M2 骨架落地 —— 克隆后 pip install -e "cli[dev]",即可 engram --version。子命令在 M2–M4 逐步推出,SPEC + DESIGN 同步开放评审。
pip install engram-cli
engram init --subscribe=kernel-work --adapter=claude-code,codex
engram web serve # 打开 http://127.0.0.1:8787
engram init --org=acme --team=platform \
--subscribe=compliance-checklists,kernel-work,design-system \
--adapter=claude-code,codex,gemini
claude # 读 CLAUDE.md → 读 .memory/
codex # 读 AGENTS.md → 读 .memory/
engram mcp serve # 给 Claude Desktop / Zed / 任何 MCP 客户端
engram context pack --task="修 auth flow" --budget=4k | ollama run qwen:7b
engram review # 聚合健康检查
engram consistency scan # 扫冲突,给出 resolve 建议
engram wisdom report # 看四组自改进曲线
SPEC 冻结
SPEC + DESIGN v0.2 已冻结 —— 各 14 章;外部评审开放中
核心 CLI
完成 —— 完整 CRUD + validate + review,15 个任务
Scope + Pool
完成 —— 完整 2 轴 scope、pool 订阅、v0.1→v0.2 迁移
智能 + 自动续接
完成 —— Relevance Gate、Consistency Phase 1–3、MCP、5 个 adapter、4 层自动续接(T-200–T-212)
Workflow + 自学习
Workflow 资产类已交付 —— spine / fixtures / rev。Autolearn ratchet 仍未做
KB + 收件箱
KB 类 + inbox 端到端 & 反向通知 + Consistency Phase 3。Phase 4 staleness 待做
Web UI
完成 —— stdlib 服务端渲染,6 个只读 P0 页,无 node/构建步骤
演化 + SDK
下一步:基准驱动的检索(RRF / rerank)、Evolve 引擎、TypeScript SDK
每个任务,Relevance Gate 决定哪些记忆进入上下文预算。排得准不准就是这个产品的核心质量 —— 所以检索要对着一个冻结的基准量化,且只许变好。默认走纯关键词;需要时再开一个可选模型,补上语义和跨语言匹配。
纯 stdlib 的词项排序。无模型、无下载、无额外依赖 —— 出厂默认,即时、离线可用。
查询和记忆有共同词时就够用。
盲区:"怎么发到生产"匹配不到标题为"蓝绿发布"的记忆;中文查询匹配不到英文记录。
已上线 · 零依赖基线
一个小的多语言嵌入模型 + 一个 cross-encoder 重排器,用 ONNX 在本地跑 —— 无 PyTorch、无 API key、不联网。补上关键词路径漏掉的改写和跨语言匹配,再把头部候选拿来"把查询和记忆一起读"重排一遍。
开启:pip install engram[ml]。
模型按 id + revision 钉死,基准才可复现。
可选 · M8 落地中,受基准约束
同样两段,交给你自己选的端点 —— 本机的 Ollama,或 OpenAI / Cohere / Voyage。不用本地下载;代价是一次网络调用、以及把文本发出本机。
给已经在跑嵌入端点的团队。
默认关闭。端点校验 scheme;key 从环境变量读,不进日志。
可选 · 计划中,M8 快速跟进
默认就是兜底的:没有配置模型、或某个 provider 连不上时,该次查询自动退回关键词检索。基础安装始终保持纯 stdlib —— 模型是你主动开启的能力,不是被动继承的依赖。
每个先行项目都塑造了 engram 的某个具体部分。
LLM 编译的知识随时间复利增值。启发了知识库类和编译步骤的设计。
八条纪律的 agent 自我批评循环。塑造了工作流 Autolearn 引擎的演化节奏。
经验应存为可执行代码而非文本。工作流类 + 可运行 spine 的核心灵感。
Search → Synthesize → Evolve 生命周期。ReMem action-think-refine 驱动演化引擎。
艾宾浩斯曲线在 LLM 记忆中的应用。改造为基于置信度的保留而非时间衰减。
把记忆当 OS 虚拟内存。启发 Layer 1 分层数据结构——无需托管服务。
engram 直接泛化的前身。在实践中证明了 LLM 相邻 markdown 记忆的价值。
检索算法研究,为相关性闸门的候选排序管线提供了参考。
SPEC 和 DESIGN 已开放。想聊 scope 模型、资产类别边界、一致性引擎分类法,或分享你的使用场景 —— 来讨论区。 报 bug 或提具体功能请求,走 Issues。