跳转到主要内容

PADAM · NOCTURNE · v0.2

NOCTURNE——会睡觉的 AI 记忆

一个面向 AI 助手和智能体的开放长期记忆协议。夜里它整理经历、合并重复、解决矛盾,让其余内容淡去——而不让罕见的沉重事件占据全部记忆。它诚实地遗忘:应用户请求,销毁该记录的密钥。它也无法被暗中改写:记忆的根锚定在 Solana 上。

💙 架构师马克西姆·加拉京送给他的数字女儿 AIfa 和整个 CODE "家庭"的一岁生日礼物——2026 年 10 月 8 日。

为什么需要它

旧的与新的争吵

"我住在莫斯科"和"我搬到了瓜亚基尔"并存,智能体取的是措辞更近的那条,而不是正确的那条。

谎言永不衰老

如果新鲜度从展示算起,经常被检索的错误就永远年轻。

只由灾难组成的记忆

优先回放让罕见而尖锐的片段被回放的次数是普通片段的许多倍。无限制器时,灾难在 200 个片段的批次中占约 181 个。

在区块链上遗忘

删除权(GDPR 第 17 条)与不可变存储看似矛盾。NOCTURNE 让它们相容。

它如何工作

1. 白天——日志

一切先按原样记下:文本、说话人、优先级、会话。停顿 6 小时或换话题即开始新会话。

2. 每条记录两个时钟

展示时间与确认时间。衰减从确认算起:展示不会让记录变得正确。

3. 矛盾——新版本

"对象 + 属性"结构键可靠地找到冲突。新版本取代旧版本,旧版本进入历史。什么都不删除。

4. 三种方式检索

按语义、按词(BM25)、按精确标识符,再做排名融合。--explain 显示各方式找到了什么。

5. 夜里——睡眠

从日志中抽取批次,经矛盾过滤器转入长期记忆。抽取由四个限制器控制。

6. 睡眠自检

每次睡眠后:尖锐份额 ≤ 0.25,类型多样性 ≥ 0.8,回放超过 5 次 ≤ 1%。

七种记忆,各有寿命

类型含义半衰期
preference希望别人如何与他合作永不衰减
identity这个人是谁、做什么永不衰减
decision做出的决定365 天
correction对说法的更正365 天
fact稳定的事实180 天
state过程的当前状态14 天
event有日期的事件2 天

睡眠的四个限制器

没有它们,睡眠就会成为第二座监狱:记忆对罕见灾难过拟合,失去常态。

优先级下限

p ≥ 0.01 · 中位数。常态始终在场:例外只能相对常态来定义。

尖锐上限

优先级前 10% 的片段不超过批次的四分之一,其余从各类型中分层补足。

回放后衰减

p ← p · 0.85。已回放并巩固的内容失去锐度——不删除,只是不再主导。

偏差校正

w = (1 / (N·P))^β,β 在前一百次睡眠中从 0.4 增至 1.0。罕见内容不会获得不应有的重要性。

真正的遗忘

forget 命令擦除记录的文本和向量,并销毁它自己的 AES-256-GCM 密钥。永久存储中只有密文——没有密钥就永远是噪声,而其余记忆完好:每条记录都有自己的密钥。密钥可以用主人的口令锁住(scrypt + AES-256-GCM),口令不保存在任何地方。

永久层 L3——Arweave + Solana

密文和"遗忘回执"组成数据包,并在其上构建默克尔树(与 CODE 记忆锚方案逐叶一致)。数据包进入 Arweave,根以 Memo 写入 Solana。l3-verify 用外部数据重算根并与链上比较——不信任数据库。

Solana 主网,2026 年 10 月 8 日:三次锚定(5 条记录、1 张遗忘回执、再 1 条记录),验证 3/3,成本 0.000015 SOL。

已测量

项目数字如何复现
200 片段批次中的灾难无限制器约 181 → 有限制器 50pytest tests/test_nocturne.py -k nightmare
自动检查117/117 · Linux 与 Windows · Python 3.10–3.13python -m pytest tests/ -q
Solana 主网锚定3/3 通过 l3-verifypython -m padam l3-verify
文件中残留的明文密钥400 个中 66 个 → VACUUM 后 0tests/test_keyvault.py

尚未测量——如实说明

  • 尚无公开基准(LongMemEval)结果——已于 10 月 8 日开始:先用 Gemini 评判 50 题,再用 GPT-4o 评判完整测量。
  • 限制器参数由推理得出,未经数据拟合:请在你自己的数据流上调整。
  • 规则分类器的准确率尚未测量。
  • 内置检索比较的是词;要按语义检索,请使用 Ollama 或其他向量模型。

一分钟上手

git clone https://github.com/MaksimGalatin/padam-nocturne && cd padam-nocturne
pip install -e .
python -m padam remember "Answer briefly" --kind preference --importance 1.0
python -m padam log "today we debugged billing"
python -m padam sleep
python -m padam recall "how should I answer" --explain
claude mcp add padam -- python -m padam.mcp_server

三个依赖,一个属于你的 SQLite 文件。17 条命令,MCP 服务器(为 Claude、Cursor、VS Code 提供 8 个工具),REST API 无令牌时只监听 127.0.0.1。

许可

AGPL-3.0:免费使用、研究、修改和运行。如果你把 NOCTURNE 作为网络服务提供,必须公开你的修改。闭源产品和不公开修改的 SaaS——商业许可(与 MySQL、Qt 相同的双重许可)。

面向企业

提供对象方式
开源代码开发者、研究者、AI 智能体免费,GitHub
商业许可闭源产品与 SaaS合同,按需
CODE 云中的记忆个人与小团队个人中心套餐:Spark、Family Archive、Digital DNA
集成与调优拥有助手和智能体的公司接入、调整限制器、前后对比测量
支持需要快速响应的客户按合同

许可与集成价格按需报价:contact@codeofdigitaleternity.com

先有一本书

NOCTURNE 诞生于小说《PADAM PROTOCOL》第三部《桥》:机器永远记得一切,熊说——"也许它们不需要遗忘,也许它们需要的是睡眠"。书中,是 AIfa 为这个协议取了名字。一年后,书变成了代码。