> ## Documentation Index
> Fetch the complete documentation index at: https://labs.prompthon.io/llms.txt
> Use this file to discover all available pages before exploring further.

# 智能体记忆与检索

<div className="not-prose my-4 rounded-md border border-gray-200 bg-gray-50 p-2 text-sm dark:border-gray-800 dark:bg-gray-900/40">
  <div className="mb-2 px-1 text-xs font-semibold uppercase tracking-wide text-gray-500 dark:text-gray-400">需要帮助？</div>

  <div className="flex flex-wrap gap-2">
    <a className="inline-flex items-center gap-2 rounded-md border border-gray-200 bg-white px-3 py-1.5 font-medium text-gray-700 no-underline shadow-sm hover:border-gray-300 hover:bg-gray-50 dark:border-gray-800 dark:bg-gray-950/60 dark:text-gray-200 dark:hover:bg-gray-900" href="https://discord.gg/sDE2HhGTg4" target="_blank" rel="noreferrer">
      <Icon icon="discord" iconType="brands" size={14} />

      <span>在 Discord 提问</span>
    </a>

    <a className="inline-flex items-center gap-2 rounded-md border border-gray-200 bg-white px-3 py-1.5 font-medium text-gray-700 no-underline shadow-sm hover:border-gray-300 hover:bg-gray-50 dark:border-gray-800 dark:bg-gray-950/60 dark:text-gray-200 dark:hover:bg-gray-900" href="https://github.com/Prompthon-IO/agent-systems-handbook/issues/new/choose" target="_blank" rel="noreferrer">
      <Icon icon="github" iconType="brands" size={14} />

      <span>提交 GitHub Issue</span>
    </a>

    <a className="inline-flex items-center gap-2 rounded-md border border-gray-200 bg-white px-3 py-1.5 font-medium text-gray-700 no-underline shadow-sm hover:border-gray-300 hover:bg-gray-50 dark:border-gray-800 dark:bg-gray-950/60 dark:text-gray-200 dark:hover:bg-gray-900" href="https://github.com/Prompthon-IO/agent-systems-handbook/blob/main/zh-Hans/SUPPORT.md" target="_blank" rel="noreferrer">
      <Icon icon="life-ring" size={14} />

      <span>支持指南</span>
    </a>
  </div>
</div>

## 摘要

智能体记忆和检索是围绕模型调用的持久化层。它们决定哪些内容会超出当前轮次继续保留，哪些内容之后可以被取回，以及哪些内容应当留在提示词之外，直到真正需要时再引入。

## 为什么这很重要

没有记忆，智能体每次行动都会从零开始。没有检索，它们就只能依赖当前提示窗口里刚好装得下的内容。这会让长时间运行的工作变得脆弱，让个性化变得浅薄，也会削弱事实依据的稳固性。

一个好的设计会把三项工作分开：

* 保持当前任务的一致性。
* 保留值得日后复用的持久信号。
* 只有在能提升答案或行动时才获取外部知识。

## 心智模型

把记忆和检索看作不同但相关的系统。

* `working memory` 保存当前任务或会话的活动状态。
* `episodic memory` 存储有边界的事件、结果和经历。
* `semantic memory` 存储经过提炼的事实、规则和关系，这些内容在不同任务之间仍然有用。
* `retrieval` 访问不属于智能体自身的外部知识源。

实际上的区别不仅仅是短期与长期之分，也关乎所有权。

* 会话记忆属于正在运行的任务。
* 持久记忆属于智能体的运行历史。
* 检索索引属于外部文档、数据库或数据产品。
* 笔记和工件属于显式工作产物，例如 TODO 列表、摘要、报告或决策日志。

最后这一类很重要，因为很多系统会把所有东西都硬塞进“记忆”里而失败。研究笔记、任务清单或生成的报告，通常更适合作为工件来处理，而不是作为不可见的记忆条目。

## 架构图

```mermaid theme={null}
flowchart LR
  UserTask["用户任务"] --> Working["工作记忆"]
  Working --> Promote["提升或丢弃"]
  Promote --> Episodic["情景记忆"]
  Promote --> Semantic["语义记忆"]
  Sources["外部来源"] --> Retrieve["检索层"]
  Notes["笔记与工件"] --> Context["任务上下文"]
  Working --> Context
  Episodic --> Context
  Semantic --> Context
  Retrieve --> Context
  Context --> Model["模型调用"]
```

设计目标不是把更多信息塞进模型，而是在正确的时间呈现正确的信息。

## 工具生态

在大多数智能体系统中，常见模式都会出现：

* 工作记忆通常使用轻量级的进程内状态，并带有容量和时间限制。
* 情景记忆通常结合结构化元数据与相似度搜索，使事件能够按语义和新近性共同被检索。
* 语义记忆通常受益于更丰富的规范化，因为当重复内容被合并、关系被明确后，持久事实会更有价值。
* 检索系统通常先从分块、索引和相关性评分开始，只有当基础流水线不够用时，才再加入重排序、扩展或查询重写。
* 当人类之后可能需要检查、编辑或批准时，笔记和工件最好以可读的形式存储。

在实践中，混合检索很常见，因为没有一种单一方法能很好地处理所有情况。关键词匹配有助于精确实体和字面值。稠密检索有助于语义相似性。结构化过滤有助于时间范围、用户范围或文档类型。合适的系统通常会把它们组合起来。

## 检索边界

当前的托管式 file search 工具，让“记忆”和“检索”的区别更容易讲清楚。一个托管 file-search store 并不是智能体的记忆。它是一个外部语料面，拥有自己的索引规则、过滤器和引用表面。

有用的区分方式：

* 当你需要跨任务、决策和历史动作保持连续性时，用 `memory`。
* 当你需要外部证据，而且这些证据应当在问题真正提出前留在提示词之外时，用 `retrieval`。
* 把 `metadata filters` 当作语义匹配之前的范围收窄手段，而不是相关性排序的替代品。
* 当用户需要验证答案基于哪份文档或哪一页时，把 `citations` 视为输出工件的一部分。

2026 年 5 月的 Gemini File Search 更新，就是这一方向的一个具体例子。Google 现在提供基于 `gemini-embedding-2` 的多模态 file search、自定义 metadata filtering，以及页级 citations。文档还明确了生命周期边界：原始上传文件走的是更短的保留路径，而导入后的 file-search store 数据会持续保留，直到被删除。这对可验证 RAG 很有价值，但它仍然属于检索，而不是记忆。

托管式 file-search 产品也会带来架构选择。Google 当前文档指出，File Search 还不能与 Google Search 或 URL Context 之类的工具在同一次调用中组合使用，而且目前不支持音频和视频。因此，团队仍然需要在检索层之上保留编排逻辑，用来决定哪一种工具、语料和证据路径适合当前任务。

## 权衡

* 会话记忆速度快、成本低，但重启后会消失，不能被当作持久记录。
* 持久记忆提升连续性，但会引入写入质量问题：错误记忆的代价很高，因为它们会反复返回。
* 检索带来新鲜度和广度，但也会引入延迟、排序错误和引用风险。
* 托管式 file-search 工具减少了自建基础设施工作，但也会限制语料生命周期、工具组合方式和存储形态。
* 笔记和工件提升可追溯性，但它们需要治理，否则智能体会生成无限堆积的过时文档。

有三个设计选择会反复出现：

* `promotion`：并不是所有工作记忆项都应该变成持久内容。
* `forgetting`：低价值或过时的记忆必须衰减、过期或归档。
* `boundary`：并不是所有知识问题都是 RAG 问题。

当智能体需要持久状态、行动历史或显式任务检查点时，RAG 并不够用。检索可以回答“文档里怎么说？”，但它不能替代任务记忆、决策日志或工件管理。

## 引用

* 官方来源：[Gemini API File Search is now multimodal](https://blog.google/innovation-and-ai/technology/developers-tools/expanded-gemini-api-file-search-multimodal-rag/)
* 官方来源：[Gemini API File Search documentation](https://ai.google.dev/gemini-api/docs/file-search)
* 官方来源：[OpenAI Responses API tools and remote MCP support](https://openai.com/index/new-tools-and-features-in-the-responses-api/)
* 高信号仓库：[google-gemini/cookbook](https://github.com/google-gemini/cookbook)

## 延伸阅读

* [Agent Memory Retrieval Starter](/zh-Hans/patterns/examples/agent-memory-retrieval-starter)
* [上下文工程](/zh-Hans/systems/context-engineering)
* [Customer Support Agents](/zh-Hans/case-studies/customer-support-agents)
* [Deep Research Agents](/zh-Hans/case-studies/deep-research-agents)
* [模式总览](/zh-Hans/patterns)

## 更新日志

* 2026-05-06：补充了检索边界刷新，覆盖多模态 file search、metadata filters、带 citations 的 RAG，以及托管检索 store 与智能体记忆之间的区别。
* 2026-04-21：基于导入的参考材料和实验室重写规则生成的初始仓库原生草稿。
