W
AI-Wiki
CONCEPT

即时检索记忆策略

定义

即时检索记忆策略(just-in-time 检索)是指:Agent 并不预先把所有潜在相关数据做成一个统一的、可全局相似度召回的检索库,而是只保留轻量级的外部标识符,例如文件路径、预定义存储查询、网页链接等;等到当前任务真正需要某部分信息时,再通过工具把对应数据动态加载进上下文。

在本文语境中,这一概念来自 Anthropic 在《Effective Context Engineering for AI Agents》中的明确表述。原文将其作为 Agent 记忆设计的重要思路,用来说明:很多记忆问题并不需要先把全量历史 embedding 化,更不必默认先建向量数据库。

在本文档中的语境

本文讨论的是“为什么 OpenAI 和 Anthropic 的 Agent 记忆设计,并不把向量数据库当默认答案”。在这个论证里,即时检索记忆策略被用来代表 Anthropic 的工程路线。

原文先批评一种常见误区:把 Memory 当成单一模块,无脑把历史对话或历史资料全量 embedding 进向量数据库。这样做在“用户预算改过多次”“历史里有多个相近说法”这类场景里,往往会把多个相似片段一起召回,导致模型很难判断哪条才是当前应答所需的那一条。

与这种“统一向量索引一切内容”的做法不同,即时检索记忆策略强调:Agent 的很多记忆并不需要被预先语义化成统一检索库,而可以依赖外部组织结构与运行时读取。换句话说,记忆未必是“先索引再召回”,也可以是“先定位,再读取”。

核心机制

1. 不预处理所有相关数据

该策略的第一原则是不预处理全量相关数据。也就是说,系统不会默认把所有文件、网页、历史上下文、工作痕迹统一切分、embedding、入库,然后等待相似度召回。

这样做的直接含义是:

  • 不以“全量历史都应先转成向量”作为起点。
  • 不把“先建大一统知识库”视为 Agent 记忆的必要前提。
  • 不要求所有内容在进入系统前都完成统一的预索引流程。

2. 只维护轻量级标识符

系统长期维护的,不是每份内容的语义向量副本,而是可定位真实内容的轻量级引用,例如:

  • 文件路径
  • 预先保存的存储查询
  • 网页链接
  • 更广义的文件系统位置或资源入口

这些标识符本身不是内容全文,也不是对全文的统一语义压缩;它们更像是“到哪里去拿”的索引线索。

3. 运行时动态加载上下文

当 Agent 在当前任务中真正需要某段资料时,才使用工具把该内容拉入上下文。这种“按需读取”是 just-in-time 的关键。

它与传统 RAG 的差别不只在于是否用了检索,而在于检索对象和时机都不同:前者更多是对外部组织结构的定向访问,后者通常是对预先建立的统一语义索引做召回。

人类认知类比

Anthropic 在原文中给出的类比非常关键:人一般不会记住“整个语料库”,而是依赖外部组织和索引系统来辅助记忆,例如文件系统、收件箱、书签。

这层类比说明,即时检索记忆策略并不把“记忆”理解为把所有内容都塞进脑内并压缩编码;它更接近一种“知道东西在哪、需要时再去取”的工作方式。

对应到 Agent 设计上,就是:

  • 让 Agent 知道哪些资源存在;
  • 让 Agent 知道去哪里找;
  • 让 Agent 具备读取这些资源的工具能力;
  • 而不是要求 Agent 事先把全部内容都变成统一的内部记忆表示。

这也是为什么该策略强调外部组织结构本身的价值。目录结构、文件命名、查询入口、链接集合,本身就已经构成了一种“可操作的记忆”。

与“大规模统一向量索引一切内容”的区别

即时检索记忆策略并不是简单反对检索,而是反对把所有记忆问题都默认翻译成“全量 embedding + 相似度召回”。两者的差别主要体现在以下几个方面。

1. 组织方式不同

统一向量索引强调把分散内容先转成同构向量条目,再用相似度统一检索。

即时检索记忆策略强调保留原始外部组织方式,例如文件系统、查询语句、链接集合,让 Agent 直接利用这些结构。

2. 读取时机不同

统一向量索引通常是预处理优先:先切分、先 embedding、先建库,查询时再召回。

即时检索则是运行时优先:平时只保留引用,真正需要时才读取具体内容。

3. 记忆边界不同

统一向量索引倾向于把更多历史都纳入同一个可召回空间。

即时检索更强调“哪些内容根本不必提前纳入统一检索空间”,尤其适合那些本来就可以通过文件路径、工具调用、存储查询直接定位的内容。

4. 工程依赖不同

统一向量索引往往默认依赖 embedding 管道、切分策略、索引更新、召回排序等完整 RAG 基础设施。

即时检索则更多依赖文件能力、脚本能力、bash、代码执行、资源访问工具等。它的重点是可访问性与按需装载,而不是先把一切改造成向量检索对象。

在文件系统记忆中的具体落地

原文给出两个与 Anthropic 相关的例子,说明即时检索不是抽象理念,而是已经落到文件系统记忆上。

Claude Code:把文件系统当作记忆

原文指出,Claude Code 的跨会话记忆管理并不是依赖向量数据库,而是依赖 Markdown 文件。

它把文件系统直接当作记忆介质,并用一组专门的子 Agent 来维护上下文。原文对这一设计的总结很明确:整个三层架构里,没有向量数据库,也没有 RAG。

这正体现了即时检索记忆策略的典型形态:

  • 记忆不是先被统一 embedding 化;
  • 记忆以文件形式存在;
  • Agent 借助文件系统和工具能力去读取、更新、组织这些文件;
  • 真正进入模型上下文的是运行时选中的那部分内容,而不是整个记忆库的语义副本。

Managed Agents:Memory 直接挂载到文件系统

原文还提到,Anthropic 在 2026 年 4 月发布了 Memory for Managed Agents,用于让 Agent 跨会话学习。

它的实现方式仍然不是向量数据库,而是把 Memory 直接挂载到文件系统上,使 Claude 可以使用它已经擅长的 bash 和代码执行能力来操作这些记忆。

这里的关键信号有两层:

  • 第一,Memory 的载体仍然是文件系统,而不是默认的向量库。
  • 第二,记忆的操作方式与 Agent 已有工具能力对齐,也就是通过 bash、代码执行等通用能力读写,而不是额外引入一套必须依赖语义检索的专门记忆基础设施。

这说明在 Anthropic 的实践里,Agent 记忆并不是独立于工具能力存在的一层“神秘系统”,而是可以直接融入文件和工具工作流。

工程含义