ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;margin: 0px 8px 1.5em;letter-spacing: 0.1em;color: rgb(63, 63, 63);">LLM本质上是无状态的模型,每次调用都像一次“短暂失忆”。为了让 AI Agent真正理解上下文、具备个性化交互和任务持续性,引入记忆系统至关重要。本文将从技术与架构角度出发,介绍构建短期和长期记忆的方法和最佳实践。 ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 1.2em;font-weight: bold;display: table;margin: 4em auto 2em;padding: 0px 0.2em;background: rgb(0, 152, 116);color: rgb(255, 255, 255);">一、AI Agent中的记忆类型ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;margin: 1.5em 8px;color: rgb(63, 63, 63);"> ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;border-radius: 4px;display: block;margin: 0.1em auto 0.5em;" title="null"/>ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 1.1em;font-weight: bold;margin: 2em 8px 0.75em 0px;padding-left: 8px;border-left: 3px solid rgb(0, 152, 116);color: rgb(63, 63, 63);">1. 短期记忆(Short-Term Memory)- • 依赖于 LLM 的 token 限制,不能存储跨会话知识。
ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 1.1em;font-weight: bold;margin: 2em 8px 0.75em 0px;padding-left: 8px;border-left: 3px solid rgb(0, 152, 116);color: rgb(63, 63, 63);">2. 长期记忆(Long-Term Memory)ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">这种记忆帮助代理“记住你是谁”,支持更复杂的个性化和任务处理。 ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 1.2em;font-weight: bold;display: table;margin: 4em auto 2em;padding: 0px 0.2em;background: rgb(0, 152, 116);color: rgb(255, 255, 255);">二、 Agent Memory的基本实现方案ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 1.1em;font-weight: bold;margin: 2em 8px 0.75em 0px;padding-left: 8px;border-left: 3px solid rgb(0, 152, 116);color: rgb(63, 63, 63);">1. 向量数据库(基于嵌入的召回)- •工具:FAISS、Pinecone、Weaviate、Qdrant、ChromaDB
- •适用场景:需要长时记忆但不想存储原始文本的聊天机器人。
ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 1.1em;font-weight: bold;margin: 2em 8px 0.75em 0px;padding-left: 8px;border-left: 3px solid rgb(0, 152, 116);color: rgb(63, 63, 63);">2. 基于token的上下文窗口(滑动窗口)- •工具:OpenAI Assistants API、LangChain Buffer Memory
三、最佳实践1. 分层记忆架构(Layered Memory System)2. 优化检索效率3. 控制计算与成本- • 使用本地部署的 FAISS 进行快速向量召回;
- • PostgreSQL 用于结构化数据的长期保存。
4. 应用场景推荐 | | | Pinecone / FAISS + Redis 作为会话缓存 | | LangChain Buffer + SQL + 向量检索混合方案 | | | | Letta AI + NoSQL 实现复杂分层记忆 |
四、总结在实际应用中,需要考虑效率和准确率、以及性价比来选择最合适的方案。 - • 对于简单的聊天机器人场景,可以直接使用滑动窗口维护上下文,利用LLM的长上下文能力保持记忆;
- • 如果需要Agent能在多个会话历史中保持记忆,则需要借助数据库进行持久化;
- • 对于超长期的记忆,可以利用LLM进行关键信息的抽取并进行结构化存储。
|