本地优先 · 事件溯源 · 可审计

让 AI 记住
该记住的事

ALM 是一个跑在自己机器上的长记忆内核。它不改平台、不换模型, 只在会话边界上做三件事:把事实落成不可变底账、在需要时精准取回、 在压缩和换会话之后仍然让 AI 知道「我们之前定了什么」。

0.3ms记忆召回
8ms单事件写入
90/9015 并发零失败
6层L0–L5 数据层

为什么需要它

长对话不是变长了,是断片了

平台管上下文窗口,窗口满了就压缩、换会话就清零。被丢掉的不是闲聊, 是那些「已经定下来的事」——约束、决策、踩过的坑。于是同一个问题被反复讨论, 同一个错误被反复踩。

01

压缩即失忆

摘要保留的是语气,丢的是事实。压缩之后模型仍然「记得自己在聊什么」,但说不出三天前定的那条约束。

02

会话即孤岛

每个新窗口从零开始。上一轮会话里已经论证过、否决过的方案,下一轮会被重新提出来再议一遍。

03

过程不可查

说过什么、为什么这么定、改动是哪一轮引入的——散落在各平台的日志里,出问题时无从追溯。

它怎么做

把「记忆」当成账本,不当成缓存

缓存可以丢,账本不能。ALM 的底座是一条只追加、不可改写的本地事件流, 上层所有能力——召回、断言、归档、压缩恢复、检索——都是对这条流的不同读法。

L0

不可变事件底账

每一次进入、每一次结论、每一次决策,落成一条只追加的事件。改写不是覆盖,而是新增一条并留 supersede 链——所以「当初为什么这么定」永远查得到。

事件溯源 · 可重建
L1

结构化断言

从事件里提炼约束、决定、目标,形成当前有效的断言集。旧断言被新断言取代时保留链路,不再出现「两条互相打架的结论都算数」。

supersede 留链
L2

会话召回

进入仓库的第一件事:把当前有效的约束与最近的决定注入上下文。亚毫秒级,不占对话轮次,不依赖模型配合。

注入 · 0.3 ms
L3

跨平台归档桥

不是每个 AI 都能跑钩子。跑不了钩子的入口,走归档桥:把结论文本标准化成事件,带身份、去重、幂等导入。

任意 AI 可接入
L4

压缩恢复锚

压缩前把增量清仓,压缩后立刻回注一枚锚块:当前任务、有效约束、最近决定。压缩丢的是临场感,保住的是事实链。

双钩子 · 前后夹击
L5

运行与故障可观测

每个组件都留痕:运行记录、异常指纹聚类、脱敏诊断报告。对外静默不打扰宿主,对内留痕不瞎运维。

2.2 ms/条

四层门禁:谁进仓库,谁就得留名

任何 AI 进入项目目录,第一件事不是写代码,是过门禁。红绿灯亮着,才允许提交。

  1. L1会话钩子进入即登记,退出即落账
  2. L2项目约定AGENTS.md 写明纪律
  3. L3提交门禁灯灭即拒绝 commit
  4. L4服务端校验pre-receive 待接入

不是估算,是实测

所有数字都来自本机真实运行

压测脚本与测试用例随项目一起落库,可复跑。以下取自已验收的实测记录。

0.3–0.4ms召回延迟会话进入即注入
8–9ms事件写入含 WAL 落盘
5ms全文检索中文子串可用
8–14ms语义检索本地向量模型
90/90并发成功15 会话同时写
331MB大库压测读路径不退化
2.2ms日志写入445 条/秒
0条恢复丢数据截断后演练

唯一已知弱点

两字符短查询走 LIKE 扫描,在 331 MB 库上约 578 ms。触发条件是「极短词 + 超大库」同时成立,日常召回与检索路径不受影响;后续切 trigram 索引即可消掉。

当前状态

已完成 8 / 9 个里程碑

M2 阶段逐项验收,每项都有可复跑的验收记录与测试用例。

87 / 100 分 · 更新于 2026-11-06

已验收

  • 记忆内核:事件底账 + 断言派生 + 召回注入
  • 门禁体系:会话钩子 / 项目约定 / 提交门禁
  • 心跳守护:常驻进程 + 续灯协议 + 计划任务托管
  • 压缩双钩子:压缩前清仓、压缩后回注锚块
  • 跨平台归档桥:非钩子入口的结论进底账
  • 语义检索:本地向量 + 全文双路融合
  • 监控面板 + 每日备份 + 灾难恢复演练
  • 日志层:运行记录、故障聚类、诊断报告
  • 会话台:全平台时间线与思考过程只读视图

待完成

  • 服务端门禁pre-receive 校验会话标识,需网关通道配合
  • 冷会话出库需先设计墓碑标记,避免删除破坏底账完整性
  • 公网入口受控访问的远程查看入口,需鉴权与审计

设计原则:能被压缩、能被清理的,只有可再生的层;L0 底账永不删改。

记忆不是更大的窗口
是不会消失的账本

窗口由平台决定,账本由你自己保管。