上下文是一个活系统:WRITE 路径 —— 摄取、衰减、归档 #85
xg-gh-25
started this conversation in
Show and tell
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
中文版 — 上下文是一个活系统:WRITE 路径(摄取、衰减、归档)
没人写的那一半
每一篇 "AI memory" 文章都在讲检索:embedding、rerank、hybrid 打分、RAG。那是
READ 路径,而且是简单的一半。难的是 WRITE 路径:什么配得上进记忆、什么会失去
位置、什么该被清扫出去。 一个检索器很强但没有衰减纪律的系统,会变成一个"带了
好用搜索框的垃圾场"。几周内每个 query 返回 40 条"相关",其中 35 条是过期的,信号
被淹没。
我们跑一个 7×24 自进化的 agent OS,它的记忆已经增长了好几个月。下面是让它不腐烂
的 WRITE 路径。
三个阶段:摄取 → 衰减 → 归档
1. 摄取 —— 只收"确信"的,绝不收"猜测"的
第一道门是 到底什么能被写进来。 规则:只从 确信、已验证 的结果里提取知识 ——
绝不从"这也许是个 pattern"的直觉里提。复发 3 次的 correction 是 pattern;一次性的
是噪声。提取 hook 偏向 False > Stale > Imperfect:宁可漏掉一条真的洞见,也不
放进一条编造的 —— 因为长期记忆里一条错的条目,会毒化之后所有信任它的决策。
每条都带类型(7 种之一:principle / correction / decision / guideline / pitfall /
process / model),元数据以 HTML 注释内联:
没有数据库。markdown 文件本身就是存储。元数据跟着正文走。
2. 衰减 —— 达尔文式、分段、自动
条目会变老。
ref_count在条目被真正引用时 +1;days_idle在没被引用时增长。衰减状态机:
我们踩坑学到的关键:衰减速率必须分段,不能全局统一。 MEMORY.md 流动快
(session 之间的上下文)—— 它在 45 天 衰减。领域知识流动慢 —— 90 天。
一个全局阈值,要么让 MEMORY 持续臃肿,要么过早归档稳定知识。(commit
2ece119d)衰减是 降权,不是删除。 dormant 条目仍然存在,只是在 recall 排序里下沉,
不再争抢 context window 预算。
3. 归档 —— 收缩,而且有证明
闲置 180d 后,条目移入按日期命名的归档文件。活文档收缩,历史从不丢失,只是搬家。
我们用一个 E2E 收缩证明 来把关 —— 一个测试把真实条目跑过 衰减→归档,断言活
文档真的变小了(commit
35c73555)。"它应该收缩"是假设;"测试证明它收缩了"是契约。(我们被太多"看起来接好了、实际从没执行过"的恢复路径坑过。)
反转:我们删掉了向量数据库
这部分会有争议。上周我们 把向量 embedding 这条腿从 recall 里彻底拔掉了
(commit
6540970e)。Titan embeddings、sqlite-vec、0.6·向量 + 0.4·BM25的hybrid —— 全没了。Recall 现在是 纯 keyword/FTS5 over markdown。
为什么?三个理由,都是测出来的,不是猜的:
关键路径上加了一个 Bedrock 网络依赖,以及写侧成本(每条都要 embed)—— 而我们
的语料能装进 context window。
胜过 RAG。你不"检索再推理",你直接"在全部内容上推理"。向量索引在解一个我们
没有的规模问题。
代码注释还写着
allow_embed=True、"both legs",而它们早已失效(我们在50024c79杀掉了这条说谎的注释)。可读性衰减得比有人去读它还快。更简单 =更诚实。
这就是 WRITE 路径的原则化表达:你给写路径加的每一个机制,都是你必须持续维持
其诚实性的机制。 一个你并不依赖的向量索引不是 feature —— 它是一个等着漂移的
第二真相源。
这些组合成什么
WRITE 路径是让 READ 路径长期保持锋利的东西。检索质量是写纪律的 滞后指标。
如果 recall 感觉很吵,别去调检索器 —— 去审计你放进来了什么、又拒绝放走什么。
要点
可能正在悄悄说谎。
All reactions