代理检索推断。它并不能保证。

你的人工智能会发现东西。它还会遗漏一些东西,覆盖它们,并且常常无法说出答案来自哪里。为什么会发生这种情况以及如何解决它。

代理检索推断。它并不能保证。

Boris Cherny(Anthropic 的 Claude Code 的创建者)发推文 Claude Code 从 RAG 加本地向量数据库转向代理搜索。他说,它的效果更好,而且更简单,安全和隐私方面的问题也更少。其他工具则走不同的道路。例如,Cursor 使用基于云的嵌入来索引代码库并通过语义相似性进行搜索。

因此,我们至少有两种检索范式:基于嵌入的搜索(预索引、向量相似性)和代理搜索(按需工具使用)。它们不一样。每个都有不同的权衡。两者都是检索策略。真相层是另一回事。它保留规范实体、维护来源并支持确定性查询。这是关于状态,而不是检索。这篇文章将真实层与两种检索模型进行了比较。它还与我仅依靠检索时所遇到的限制有关。

我遇到极限的地方

我使用 Cursor 作为我所有数字工作流程的中心界面,而不仅仅是编码。电子邮件分类、任务管理、财务查询、内容规划、交易、联系人。它们都通过相同的代理运行并访问相同的存储库。跨文件的代理搜索通常效果很好。代理查找上下文、推断联系并完成任务。

但我已经达到极限了。代理人推断;它不能保证。看起来是这样的:

  • 数据集大,召回不完整。 按需搜索会遗漏或截断数千个交易或数百个联系人。每次检索都会重新推导。没有结构化存储来查询完整的结果。
  • 不可恢复的覆盖。 客服人员覆盖联系人或任务,并且之前的状态消失。没有回滚。写入就位。没有版本控制或仅附加跟踪来跟踪和回滚。
  • 没有跨工具访问。 我无法使用 Claude.ai 或 ChatGPT 中的相同记录。检索受提供者限制。
  • **不可重复的答案。**同样的问题,不同的答案。我无法重现结果以进行验证或调试。检索是不确定的。
  • 没有可追溯性。 当代理给出错误的号码或索赔时,我无法追溯到源文件或记录。检索没有出处。
  • 不稳定的规范身份。 代理可能会将“Acme Corp”和“ACME CORP”在一个会话中视为相同,而在下一个会话中视为不同。检索每次都会重新推断。没有持久的规范 ID 或合并规则。

两种检索范式,一种状态范式

基于嵌入的搜索和代理搜索都向代理获取信息。它们不一样。基于嵌入的搜索(例如光标)通过向量相似度对语料库和答案进行预索引。该索引可以在云中托管和更新。代理搜索(例如克劳德代码)跳过持久索引并使用工具按需搜索和读取。不同的实现,不同的权衡:隐私、陈旧性、简单性。

他们共享的是检索。代理在查询时查找内容。真相层不是检索。它是持久的、结构化的状态:规范实体、出处、确定性查询。

我们将一种状态范式(真相层)与两种检索范式(基于嵌入和代理)进行比较。下表列出了这三者。当两个检索列共享一个限制(例如没有出处)时,这就是它们之间相对于真实层的相似性。这不是两者的等式。

域名基于嵌入的搜索代理搜索真相层
文献检索预索引相似度、语义匹配按需搜索、推理实体解析、重复数据删除、来源
多源聚合索引范围和新鲜度取决于构建跨来源实时搜索统一图,确定性合并
实体查找嵌入的相似性;没有规范的 ID每会话推理规范ID,基于规则的合并
时间线查询仅当已编入索引时;没有本地时间模型按需组装预先计算、模式驱动
出处和审核无无不可变的审计跟踪
跨平台与提供商/索引相关特定于提供商的工具跨工具的相同数据

两种检索方法都针对便利性和灵活性进行了优化。真相层针对一致性和可验证性进行了优化。

真相层提供什么

结构化内存层是围绕不同的原语构建的:

  1. 持久规范身份。 跨会话和工具的稳定实体 ID。
  2. 确定性合并逻辑。 基于规则的观察组合,而不是每次会话的 LLM 推理。
  3. 出处和审核。 从来源到答案的可追溯血统。
  4. 幂等性。 相同的输入产生相同的输出。
  5. 跨平台真相。 ChatGPT、Claude、Cursor 具有相同的内存。
  6. 清晰的隐私模型。 用户控制,无提供商培训使用,清晰的数据边界。

这些并不是对代理搜索的增量改进。它们是不同的设计。尽力而为的检索和编排与可验证、可重播的状态。选择取决于您的需要。

检索可以近似什么(代理或基于嵌入)

三个示例显示检索(代理或基于嵌入)近似于上述功能。在每个示例中,代理都会得到当前看起来正确的东西。在每一个中,都出现了相同的限制:没有持久的规范身份,没有出处,不能保证“相同的查询”在会话或索引重建中产生“相同的结果”。下面的示例使用代理术语(工具、按需搜索)。基于嵌入的检索可以通过索引上的语义搜索来近似相同的行为,并达到相同的限制。

示例 1:会话范围的实体解析。 代理具有搜索文件、电子邮件和云的工具。它具有将同一实体的提及视为一个实体的说明。您问:“我在 Acme Corp 的总支出是多少?”代理人搜索银行出口、收据、发票。它找到“Acme Corp”、“ACME CORP”、“Acme Corporation”,推断相同的实体和金额。这看起来像是此查询和会话的实体解析。出了什么问题:明天再问,数字可能会有所不同。代理可能会丢失文件(搜索被截断、路径错误)并且计数不足。或者,它可能将“Acme Corp”和“Acme Industries”视为相同并多算。没办法验证。没有审计追踪,没有稳定的 ID。不同的会议可能会有不同意见。

示例 2:按需时间线组装。 代理具有广泛的文件和数据访问权限。您问:“2024 年第三季度我的主要支出是什么?”该代理搜索、解析日期、组装按时间顺序排列的列表、按“专业”进行过滤。您无需专用时间线系统即可获得类似时间线的答案。出了什么问题:每次都会推断出“Major”。一次会议不包括 500 欧元的物品。接下来包括它。具有非标准日期格式的文档会被丢弃或排序错误。当有 15 个时,代理可能会截断(“这里是前 10 个”)。每次相同的查询,不同的结果。

示例 3:混合内存层。 提供商提供代理搜索和轻量级内存。代理提取结构化片段,存储它们,并在以后检索它们。它处理收据,存储“{供应商:“Acme Corp”,金额:150,日期:“2024-07-15”}`。稍后的会话将检索此内容并与实时搜索结果合并。这看起来像结构化记忆。出了什么问题:稍后的提取会覆盖该片段。无版本控制,无回滚。同一供应商在存储内存中显示为“Acme Corp”,在新搜索中显示为“ACME CORP”。重复累积。提供商更改了功能或架构,您存储的片段就会消失。无法追踪错误号码的来源。

在每个示例中,行为都近似于真实层提供的行为。限制是检索所固有的。无论代理使用嵌入搜索还是代理搜索,您仍然可以获得会话范围和基于推理的合并。您仍然得不到来源和跨平台保证。真相层通过持久化状态而不是重新检索状态来解决这些问题。

当检索表现出色时(代理或基于嵌入)

探索性发现。“在我的下载或笔记中找到有关巴塞罗那公寓的任何内容。”你不知道它住在哪里,也不知道它叫什么。跨文件、文件夹和格式的代理搜索会显示相关片段。无需架构。代理进行推断和组装。

快速跨源总结。“我们在与承包商的最后三封电子邮件中决定了什么?”搜索收件箱、提取主题、总结。一场会议,一个答案。您不需要该摘要在下次保留或完全匹配。

临时代码和文档遍历。“我们在哪里处理 Stripe webhook?”搜索代码库、自述文件、内部文档。布局因存储库而异。代理搜索适应。不需要统一的图表。

单文档或单线程分类。“总结此 PDF”或“这封电子邮件的要求是什么?”上下文是有界的。推理就足够了。无实体解析或跨会话状态。

当真相层表现出色时

对大型数据集的完整回忆。“列出过去两年中与供应商 X 的每笔交易。”对于数千行,代理搜索可能会丢失记录、截断或产生幻觉聚合。真相层查询结构化存储。您可以获得所有匹配的记录或精确的计数。

跨会话一致性。 代理在会话一中创建后续任务。您明天将开启一个新会话。该任务必须在那里,并链接到正确的联系人和电子邮件。代理搜索没有持久图。真相层可以。

审计和出处。 “这个数字是从哪里来的?”追踪源记录、导入日期和派生规则。代理搜索返回推断的答案。真相层返回带有血统的答案。

大规模实体解析。 数百个联系人,一些重复(名称变化、合并的公司)。数以千计的交易以不同的拼写引用同一供应商。真实层维护规范 ID 和合并规则。代理搜索会重新推断每个会话,并且可能会不一致。

确定性重播。 每次都是相同的查询,相同的结果。对于报告、合规性或调试至关重要。代理搜索是不确定的。真相层是幂等的。

不良写入的可恢复性。 代理会覆盖联系人、将两个任务合并为一个,或者根据错误的推理“纠正”事务。通过代理搜索和直接文件写入,以前的状态就消失了。无法撤消。真相层使用仅附加或版本化写入。您可以跟踪更改的内容并回滚。突变是显式操作,而不是静默覆盖。

为什么区别很重要

检索(基于嵌入或代理)是会话绑定的。它本身并不为您提供持久的身份、出处或跨会话一致性。它的价值在于灵活、按需访问。真相层的价值是持久的、跨会话的真相。确定性、可审计的实体解析很困难。嵌入相似性和临时代理搜索都不等同。提供商托管的代理面临着与用户控制的、隐私优先的记忆相冲突的激励。他们的记忆和工具往往是特定于产品的。

切尔尼的推文反映了一个真正的转变。 RAG 加上矢量 DB 非常复杂,并且会影响隐私。代理搜索简化了克劳德代码的检索。光标和其他人采取不同的检索路径(云嵌入)。两种检索范式都解决了“代理如何找到东西?”两者都没有解决“我们如何获得稳定的身份、出处和验证?”真相层针对的是后者。检索层和状态层将共存。他们解决不同的问题。

我正在构建什么

我正在构建 Neotoma,这是一个采用真相层方法的结构化内存层:实体解析、时间线、出处、确定性、通过 MCP 跨平台。我正在我自己的代理堆栈中对其进行测试,以了解这些原语在实践中的重要性。基于嵌入的搜索和代理搜索是两种检索策略。两者都不给你持久的身份或可验证的状态。真相层可以。我正在构建后者。

5 最小阅读量散文
分享