大模型 Agent 的记忆(Memory)方案,按存储方式、时间跨度、结构化程度可以分成几类,通常会结合使用。大体可以分成以下几种主流思路:
1. 短期记忆(Short-term / Context Memory)
-
特点:直接放在模型上下文(prompt)里,随每次请求发送。
-
优点:读取快、无需额外存储。
-
缺点:受限于模型上下文长度,成本随 token 增加。
-
常用方式:
-
最近 N 条对话直接拼接到 Prompt
-
重要信息提炼成总结(Summary)再附加
-
Sliding Window(滑动窗口)策略
-
2. 长期记忆(Long-term Memory)
-
特点:将过往信息存到外部存储,按需检索。
-
常见实现:
-
向量数据库(Vector DB)
-
将历史对话/文档向量化(Embedding),用相似度搜索(如 cosine similarity)取回相关内容。
-
代表工具:Milvus、Weaviate、Pinecone、FAISS。
-
优点:语义检索,不依赖关键词;可扩展到百万级数据。
-
-
关键词索引(Keyword Index)
-
存储结构化信息,按关键词或标签匹配。
-
适合对高精确度、结构化查询有要求的场景。
-
-
混合索引(Hybrid Search)
-
语义检索 + BM25 等关键词检索混合,提高召回率。
-
-
3. 工作记忆(Working Memory)
-
特点:专门存储当前任务的中间结果、计划、变量等,不与长期对话混合。
-
实现方式:
-
JSON 状态对象(State Store)
-
临时数据库或内存缓存(Redis)
-
文件缓存(JSON/YAML)
-
4. 结构化知识库(Structured Knowledge Base)
-
特点:将 Agent 学到的事实或规则转化为结构化数据存储,方便精确调用。
-
实现:
-
Graph Database(Neo4j、ArangoDB)存实体与关系
-
SQL 数据库存事实表
-
用 Schema 存储技能(Skill)、工具(Tool)、知识点
-
5. 外部记忆插件(External Memory Plugins)
-
特点:通过 API 调用外部服务读写记忆,减少本地负担。
-
典型方案:
-
LangChain Memory 模块(如
ConversationBufferMemory
、VectorStoreRetrieverMemory
) -
LlamaIndex(原 GPT Index)持久化记忆
-
OpenAI Assistant API 的 “persistent thread”
-
6. 混合记忆架构(Hybrid Memory Architecture)
-
思路:
-
短期记忆:窗口内上下文
-
长期记忆:向量库+摘要
-
知识库:结构化事实
-
工作记忆:临时状态
-
-
优势:既保留对话连贯性,又能高效调用历史知识,不爆 token。
💡 常见组合示例:
-
LangChain:短期(Buffer)+ 长期(VectorStore)+ 工作状态(State)
-
OpenAI Assistant API:对话线程(短期+摘要)+ 外部数据库(长期)
-
AutoGPT:文件存储(长期)+ 短期 Prompt + 临时计划(JSON)