---
title: "Agent 记忆是什么"
description: "Agent 记忆分两层：短期记忆就是上下文窗口，长期记忆是外部存储。本文讲写入筛选、检索式与全量注入的取舍、过期与隐私，以及怎么评估记忆是否真的提升了任务成功率。"
updated: 2026-11-13
canonical: https://docai.cc/concepts/agent-memory/
markdown_mirror: https://docai.cc/concepts/agent-memory.md
---
## 它是什么

Agent 记忆指让 Agent 在单次请求之外保留信息的两层机制：短期记忆是当前[上下文窗口](/concepts/context-window/)里的消息与中间结果，长期记忆是放在外部的存储，比如文件、数据库、向量索引，或厂商提供的记忆工具。

区别不在容量，而在生命周期。上下文随请求结束而消失；外部存储在会话之间仍然存在，但必须由程序显式读回上下文，模型才能用上。

## 怎么工作

一次完整的记忆链路分三步：写入、存储、读取。

写入先判断值不值得存。值得存的是稳定的用户偏好、已经确认的事实、做出的决策和未完成的任务状态；不值得存的是寒暄、重复的工具原始输出、模型的推测。很多团队把所有对话原样落盘，结果是重复、过时和互相矛盾的内容越积越多，检索时反而把噪声送进上下文。

存储常见三类：结构化记录适合偏好和状态；文本文件适合笔记式积累，模型可以通过[工具调用](/concepts/tool-use/)读改写；[向量库](/concepts/vector-database/)适合按语义模糊检索的开放材料。

读取有两种策略。全量注入把记忆整体拼进系统提示或首条消息，简单、稳定，适合量小且每条都重要的记忆。检索式注入先用当前任务去查，只把命中的少量片段放进上下文，适合规模大、相关性差异明显的记忆库。前者的风险是规模一大就稀释注意力，后者的风险是查不到该用的那条。

常见的折中是分层：核心记忆少量全量注入，长尾记忆按需检索；并在提示里注明记忆的来源和时间，方便模型判断是否可信。这套思路和 [RAG](/concepts/rag/) 相通。

## 过期与隐私

记忆会过时。用户换了工作、项目改了方向，旧记忆仍然被读出来，模型就会基于错误前提行动。需要设过期策略：按主题覆盖写而不是不断追加；给条目记录时间；定期清理长期未被读取的内容。

隐私边界要在设计时定好：记住什么、谁能看、保留多久、怎么删除。多租户产品必须按用户隔离存储，敏感信息不写入记忆。记忆内容本身也可能被提示注入污染，读取时要当作不可信数据，而不是系统指令。

## 怎么评估

不要凭「感觉它更懂我」来判断。固定一批代表性任务，跑三组对照：不启用记忆、启用当前策略、启用简化策略；比较端到端任务成功率、用户追问次数、人工纠错次数，以及延迟和 token 成本。

还要专门测错误记忆的影响：故意写入一条过时或错误的记忆，看 Agent 会不会照着做。记忆命中率只是过程指标，任务成功率才是结果指标。一个策略如果提升不了成功率，它只是在增加成本和风险。

## 常见误解

- **记忆越多越好**：脏记忆比没有记忆更糟，写入筛选和删除机制与存储同样重要。
- **存进去模型就记住了**：写入与读取是两条链路，没有读取，存储只是日志。
- **向量库就是记忆系统**：它只是存储层，还缺写入策略、更新、删除、权限和评估。
- **记忆能替代微调**：微调改行为和风格，记忆提供事实与状态，不能互相替代。
