Context as Topology: 为什么你的 Agent 记忆终将遗忘,以及结构如何逃脱这一宿命
一篇 arXiv 论文正式证明了当前主流的 AI 记忆架构(Embedding、RAG、Vector Search)在规模化时注定遗忘和编造。出路不是更好的 Embedding,而是把意义存储为结构而非几何。
全文翻译
Thread 原文 6 条推文 + 配套 Substack 文章关键段落,忠实翻译,不掺杂解读。
原文标题:Context as Topology: Why Your Agent's Memory Forgets, and How Structure Escapes It
Context as Topology: Why Your Agent's Memory Forgets, and How Structure Escapes It
1/6 主流方案的根本缺陷
当前主流的 AI Agent 记忆构建方式 — Embedding、RAG、Vector Search — 已被证明在规模化时必然遗忘和编造(arXiv:2603.27116)。修复方案不是更好的 Embedding。而是停止用几何来存储意义。
The dominant way we build AI agent memory — embeddings, RAG, vector search — is provably doomed to forget and fabricate as it scales. The fix isn't a better embedding. It's to stop storing meaning as geometry.
2/6 两种意义:几何 vs. 结构
Embedding 用邻近度存储意义:"它离什么近?" 这会随着规模增长而拥挤和衰减。代码(code)有第二种意义:一个符号在 AST、类型图、Schema 中的位置。精确的、离散的、通过导航而非最近邻恢复。不衰减。没有错误回忆。
Embeddings store meaning as proximity: "what is this near?" That crowds and decays. Code has a second kind: where a symbol sits — in the AST, the type graph, the schema. Exact, discrete, recovered by navigating, not nearest-neighbor. No decay. No false recall.
3/6 解锁:Schema Annotation
关键解锁是 @EffectTS_ 的 Schema annotations:将一个事物的意义只存储一次在 Schema 上,按需恢复。一个 Schema 同时完成三项不会漂移的工作:
• 你检索的索引
• 你交给 Agent 的模具
• 验证其输出的契约
The unlock is @EffectTS_ Schema annotations: store a thing's meaning ONCE on the schema, recover it on demand. One schema then does three jobs that can't drift: the index you retrieve from, the mold you hand an agent, the contract that validates its output.
4/6 从 Prompt 到 Constrain
一旦意义变成了精确的结构,你就不再"提示"Agent,而是开始"约束"它:
• 上下文来自符号的 2-hop 邻域
• 输出形状由 Schema 固定(无效 = 不可表示)
• 已知事实预填为锚点
它无法在结构上产生幻觉。
Once meaning is exact structure, you stop prompting an agent and start constraining it: context from the symbol's 2-hop neighborhood, output shape fixed by the schema (invalid = unrepresentable), known facts pre-filled as anchors. It can't hallucinate structure.
5/6 诚实的版本
诚实的版本:Harness(框架)是确定性的,模型不是。你不断缩小模型被允许发明的表面积,直到唯一留给它创作的,是真正需要理解力的那部分。最小的创造性残差,被围栏挡在检查器之后。
The honest version: the harness is deterministic, not the model. You shrink the surface it's allowed to invent on until the only thing left to author is the part that genuinely needs understanding. The smallest creative residual, fenced behind a checker.
6/6 灵感来源
这些在笔者坐下来研究 @GiulioCanti 的 Schema 工作之前都没有真正 click。核心理念是"意义可从基数中恢复,而非在数据中重复"。笔者把这个模式称为 Context as Topology。完整文章和真实代码链接在上方。
None of this clicked until I sat with @GiulioCanti's work on Schema — "meaning recoverable from the base, not duplicated in the data" is the whole idea. I call the pattern Context as Topology.
配套文章关键段落(Ruben Dominguez, The AI Corner):
2026 年初一篇论文几乎没有人读过。它叫《The Price of Meaning》。这是一个形式化证明:大多数团队正在构建的整类 AI 记忆系统从根基上就是有缺陷的。每一个 RAG pipeline。每一个 Vector Database。每一个基于 Embedding 邻近度的 Agent 记忆。证明表明,让它们在小规模下工作的同一种几何,在大规模下迫使它们遗忘,并编造它们从未被告知过的内容。
"A paper landed in early 2026 that almost nobody in the operator world has read. It is called 'The Price of Meaning.' It is a formal proof that the entire class of AI memory systems most teams are building on right now is broken at the foundation."
精选回复
@vladimir_vg:我也在想这个问题。还没结晶成思路,只是一个直觉:它本质上就是一种拓扑。LLM 通过 prompting 对它进行收缩、扩展或修改。几个密集的 prompt 短语就像让 LLM 去解开的结。
原文:Had this on my mind as well. Not crystallized thought, just an intuition: it is fundamentally just a topology. LLM shrinks, expands or modifies it through prompting. Couple of dense prompt phrases work like a knot for the LLM to untie.
@chikoevm:这简直是烈火真金,终于有人看穿了 Agent 记忆的 BS,现在再看不回去了。
原文:this is straight fire bro, finally someone seeing through the bs on agent memory, can't unsee it now
@Maichi9969:区块链的不可变账本能解决 AI Agent 面临的记忆碎片化问题吗?
原文:Can blockchain's immutable ledger solve the memory fragmentation AI agents face?
工程级解读:架构拆解
这篇文章同时回答了"为什么当前架构必然失败"和"什么架构能逃脱"。以下是逐层拆解。
> 这篇文章回答的问题:为什么基于 Embedding 相似度的 AI 记忆系统在规模化时必然失败,以及什么替代架构可以逃脱?
> 这篇文章应该回答但没回答的问题:对于非代码领域(自然语言文档、用户行为日志等没有 AST/Schema 的数据),"结构化意义"到底怎么定义?Thread 假设了代码的天然结构可以推广到一切领域——这个跳跃的论证是空白的。
问题层 The Price of Meaning — 论文核心论点
| 论点 | 形式化表述 | 实际含义 |
|---|---|---|
| 有限有效秩 | 语义有用的表示具有有限的 semantic effective rank | Embedding 维度不是越高越好——有用的维度总是有限的 |
| 竞争者质量 | 有限局部维度意味着检索邻域中存在正的竞争者质量 | 每次检索,相似但不相关的条目都会挤进来——这不是 bug,是数学必然 |
| 保留衰减到零 | 在增长的记忆下,保留率衰减到零;幂律到达统计下产生幂律遗忘曲线 | 记忆越多,你能记住的比例越小。不是线性退化,是幂律衰减 |
| 虚假回忆不可避免 | 对于满足 delta-convex性条件的关联诱饵,无法通过阈值调节消除虚假回忆 | 调高检索阈值不能解决幻觉问题——相似的东西总会混进来 |
意义的代价是干扰(interference),我们测试的所有架构都无法避免付出这个代价。
The price of meaning is interference, and no architecture we tested avoids paying it.
洞察层 两种意义:几何邻近 vs. 拓扑位置
拓扑意义(Topology)— 文章主张的方向
- 定义:一个事物在哪里——在 AST、类型图、Schema 中的精确位置
- 恢复方式:导航(navigation)——从节点沿边走到邻域
- 精度:精确、离散——要么在那个位置,要么不在
- 衰减:不衰减。10,000 个符号和 100 个符号一样精确
- 类比:就像文件系统路径 /src/auth/login.ts——你不需要"相似度搜索",直接导航
几何意义(Geometry)— 当前主流
- 定义:一个事物靠近什么——Embedding 空间中的向量距离
- 恢复方式:最近邻搜索(KNN / ANN)
- 精度:近似、连续——越拥挤越模糊
- 衰减:随着记忆增长,保留率衰减到零
- 类比:把所有东西扔进一个大房间,用"靠得近不近"来找——东西越多越乱
方案层 Schema-as-Source-of-Truth:一个 Schema 三件事
检索索引
Schema 自身就是索引结构。Agent 不用"猜"应该检索什么——Schema 定义了可以从哪里检索、每个字段是什么类型、与其他 Schema 的关系。不需要 Embedding 相似度匹配。
生成模具
把 Schema 交给 LLM 时的"模具"——LLM 知道输出的结构必须长什么样。不是 prompt 里说"请返回 JSON",而是 Schema 本身就定义了合法的形状。
验证契约
LLM 的输出必须通过 Schema 验证。无效的输出 = 不可表示(invalid = unrepresentable)。类型系统在编译时就拦住了不可能的形状。
意义可从基数中恢复,而非在数据中重复。
Meaning recoverable from the base, not duplicated in the data.
对比层 手搓版 vs. Schema 版
| 维度 | 传统 RAG + Prompt | Schema-as-Topology |
|---|---|---|
| 检索 | Vector DB → KNN → 返回 top-K "相似"片段 | Schema 的 2-hop 邻域 → 精确导航 → 返回所有相关上下文 |
| 约束输出 | Prompt 里写"请返回 JSON 格式" + few-shot 示例 | Schema 定义合法形状,编译时检查,无效 = 不可表示 |
| 锚定事实 | 在 Prompt 中塞入已知事实,希望 LLM "记住" | Schema annotation 中预填已知事实为锚点,结构级保证 |
| 防止幻觉 | 后置验证(输出后再检查) | 前置约束(输出形状在生成前就已固定) |
| 规模退化 | 幂律衰减(论文证明) | 不退化——结构是离散的,跟数量无关 |
| 漂移风险 | 高——索引/模具/验证是三套不同的东西 | 零——同一个 Schema 同时做三件事,不可能漂移 |
决策层 什么时候该用、什么时候不该用
| 场景 | 推荐架构 | 原因 |
|---|---|---|
| 代码分析 / IDE Agent | Schema-as-Topology | 代码天然有 AST、类型图——结构化意义的理想土壤 |
| 结构化数据处理 | Schema-as-Topology | 数据库 Schema、API 定义、配置文件——天然有结构 |
| 客服 / FAQ Bot | 混合:RAG + 后置验证 | 非结构化知识库为主,但可用 Schema 约束输出格式 |
| 研究助手 / 文献综述 | RAG + 后置验证 | 论文内容天然无结构——Schema 没有可以标注的"位置" |
| 创意写作 / 头脑风暴 | 纯 LLM(不约束) | 约束会杀死创造力——这个场景不需要防止幻觉 |
限制层 诚实的限制
这篇文章没解决的问题
1. 领域局限:Schema annotation 在代码/结构化数据领域非常优雅,但 Thread 完全没有讨论如何将同样的思路应用到非结构化领域(自然语言文档、用户对话历史、行为日志)。对于这些领域,"结构化意义"的定义本身就是一个未解决的问题。
2. 实际实现复杂度:维护一个"三合一"Schema 的工程成本不低——Schema 既要能作为索引,又要能作为模具,还要能作为验证器。这意味着你的 Schema 设计需要同时满足检索、生成、验证三方面的约束,这在实践中可能导致过度设计。
3. 论文自身局限:arXiv:2603.27116 证明的是"语义连续核阈值记忆"类系统的缺陷。这是一个相当宽泛的类,但并非涵盖所有可能的记忆架构。混合架构(如 Graph + Vector 混合检索)在论文测试中"部分逃逸"了这个问题——虽然代价是牺牲了某些语义泛化能力。
4. 利益相关:作者 Benjamin Oppold 公开推广 @EffectTS_,而配套文章 Ruben Dominguez 的 The AI Corner 是付费 Newsletter——30 步 Playbook 在 paywall 后面。这意味着"解决方案"的呈现可能带有营销色彩。
苏格拉底对话
通过师生对话深入核心洞察。学生代表读者的疑问,老师引导式提问。
个性化洞察
基于你的技术栈、项目经验和关注领域,提炼最切合的发现。
你的 tab-home 扩展已经在用"拓扑"思维
为什么跟你有关:tab-home 的 AI Top Picks 管线用了 Embedding 相似度排名(tracker.ts 的加权公式 + llm.ts 的外部 API)。但你同时也在用结构化数据——favorites:item:* 的 Schema 化存储、Domain 分组的确定性逻辑。你的 Favorites 系统(slot-based grid, DnD)本质上就是"拓扑记忆"——每个收藏的位置是精确的、离散的。
你可以怎么做:审视 AI column 的 llm.ts 调用——如果候选 URL 从 25 增长到 250,论文证明召回质量会幂律衰减。考虑给高频域名建立 Schema annotation(类似 FRIENDLY_DOMAINS 的扩展版),让检索走结构化路径而非纯相似度。
Schema-as-Source-of-Truth 可以用到你的 Claude Code 工作流
为什么跟你有关:你重度使用 Claude Code,全局 CLAUDE.md 和项目 CLAUDE.md 就是某种"Schema"。但你目前的 knowledge retrieval(qmd search)仍然走的是全文搜索——这是"几何"路径。
你可以怎么做:在 wiki_workspace 的知识库结构中引入显式 Schema:每个知识条目不仅有内容,还有"它在哪个知识图谱中、跟哪些条目关联、适用于什么技术栈"。这不是 Vector Search 能给你的。
下一个 AI 产品的记忆架构选型
为什么跟你有关:你在做自己的 AI 产品。如果你在构建任何涉及"用户历史行为"的产品——比如 tab-home 的 AI 推荐、或未来的新项目——这篇论文告诉你:纯 RAG 方案在用户量增长时会遇到天花板。
你可以怎么做:设计产品时优先问"用户数据天然有什么结构?"。浏览器历史有 URL 结构(域名、路径、时间戳),可以用拓扑;用户对话内容则可能需要混合架构。不要默认选 Vector DB。
EffectTS 的 Schema 系统值得关注
为什么跟你有关:你的技术栈偏好是 TypeScript/Node.js。EffectTS 是 TypeScript 生态中最成熟的函数式编程框架,Giulio Canti 的 Schema 库是"类型驱动开发"的典范。
你可以怎么做:即使不全面采用 EffectTS,也值得研究其 Schema annotation 的设计思路——特别是"一个 Schema 同时做验证、序列化、文档生成"的三合一模式。这种思路可以应用到任何 TypeScript 项目中,不需要依赖 EffectTS 本身。