即时检索记忆策略
定义
即时检索记忆策略(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 记忆并不是独立于工具能力存在的一层“神秘系统”,而是可以直接融入文件和工具工作流。