跳到主要内容从长期记忆角度解析 Agent 技术 | 极客日志PythonAI算法
从长期记忆角度解析 Agent 技术
本文探讨了从长期记忆角度解析 Agent 技术的必要性及实现方案。文章首先分析了 LLM 受限于 Token 数量的挑战,引出长期记忆在构建自主智能体和模拟器中的核心作用。接着介绍了 LangChain、AutoGPT、BabyAGI 等流行 Agent 项目及其工作原理。重点阐述了向量数据库在记忆存储中的应用,详细对比了短期记忆(滑动窗口、摘要)与长期记忆(RAG、向量检索)的管理策略。最后讨论了 Token 控制、Prompt 压缩及向量搜索融合等优化方向,并展望了多模态记忆与隐私保护的未来趋势。
云间漫步1 浏览 在人工智能领域,大语言模型(LLM)面临着与人类短期记忆类似的挑战。受限于输入提示(Prompt)的 Token 数量上限,模型无法记住无限长的历史对话或外部知识。为了解决这个问题,一种解决方案是在输出中重复关键信息以创建暂存器,但这并不高效且容易受到上下文窗口限制的影响。
基于 LLM 的原生应用通常包含三个核心元素:LLM 能力、交互机制和记忆系统(专有数据 + 个性化)。因此,构建具备长期记忆能力的自主智能体(Autonomous Agents)和智能体模拟器(Agent Simulations)显得尤为重要。长期记忆能够克服 Token 限制,减少幻觉(Hallucination),并提供持续的学习能力。
2. Autonomous Agents
2.1 什么是 Autonomous Agents?
根据 Matt Schlicht 的定义,自主智能体是由 AI 驱动的程序,当给定一个目标时,能够自行创建任务、完成任务、创建新任务、重新排序任务列表,并循环执行直到目标达成。
例如,给 Agent 一个任务:'发布关于最新进展的推文'。它会先理解并分解目标,制定实施计划及优先级,反思计划漏洞,搜索相关信息,汇总内容,最后自动发送。全过程人类仅需提供初始指令。
- LLM:核心推理与生成能力。
- Long-term Memory:解决 LLM 固有的上下文限制。
- 递归思想:通过反馈循环不断优化执行路径。
2.2 流行的 Autonomous Agents
2.2.1 LangChain
LangChain 是开发 LLM 应用的框架鼻祖,提出了 Agents、Tools、Plugins、Memory 等概念,为生态爆发奠定了基础。
2.2.2 Visual-ChatGPT / TaskMatrix
Visual-ChatGPT 将视觉基础模型与 LLM 结合,后合并为 TaskMatrix。此类项目流程可控,负担较轻,适合垂直领域。
2.2.3 HuggingGPT
微软与 HuggingFace 合作的项目,利用 LLM 作为控制器分配任务给特定模型(如文生图用 Stable Diffusion)。流程分为任务规划、模型选择、任务执行、结果生成四步。
2.2.4 AutoGPT
实验性开源程序,展示 GPT-4 的自主功能。它通过'思考 - 计划 - 分配 - 收集 - 输出'的循环实现自我迭代,已具备自主智能体的范畴特征。
2.2.5 BabyAGI
将 LLM 转换为数字助理,可执行互联网任务。工作流程包括提取任务、执行、存储结果到向量数据库、创建新任务并重新排列优先级。
2.2.6 NexusGPT
模拟自由职业者平台,每个 Agent 擅长不同领域,通过雇佣专业 Agent 维持组织运转。这代表了 AI 平权与个性化的发展方向。
3. Agent Simulations
3.1 什么是 Agent Simulations
智能体模拟器通过计算机模拟理解复杂的智能体交互问题,涉及多个智能体之间的相互交互。主要依赖长期记忆和仿真环境。
3.2 流行的 Agent Simulations
3.2.1 CAMEL
提出角色扮演交际智能体框架,利用 LLM 促进自主合作,提供认知过程洞察。使用概念提示引导聊天智能体,保持与人类意图一致。
3.2.2 Generative Agents
斯坦福和谷歌的研究成果,基于深度强化学习模拟人类行为。训练分两个阶段:观察学习策略和执行任务优化决策。被视为'虚拟人类'。
4. Autonomous Agents 和 Agent Simulations 依赖 LLM 的能力
无论是自主智能体还是模拟器,其核心驱动力均为 LLM 的理解、推理及生成能力。Prompt Engineering 的质量直接决定了 Agent 的表现。
5. 向量数据库
为了支持长期记忆,向量数据库(Vector Database)是关键基础设施。它将文本转化为高维向量存储,支持语义检索。
- HNSW (Hierarchical Navigable Small World):基于图的近似最近邻搜索,速度快,精度高。
- IVF (Inverted File Index):倒排文件索引,适合大规模数据。
- Flat Index:穷举搜索,精度最高但速度慢。
主流产品包括 Faiss、Milvus、Pinecone、Zilliz 等。Faiss 由 Facebook 开源,性能优异;Milvus 专注于云原生向量检索;Pinecone 提供托管服务。
6. 记忆管理架构
6.1 Retrieval Augmentation
悟空采用的记忆方案是检索增强生成(RAG)。通过外部存储增强模型记忆。当需要大量聊天记录或知识库时,存入向量数据库,按需获取最相关片段。
核心策略是按最近的短期记忆(Memory)和最相关的长期记忆(History)组织 LLM 记忆,以在 Token 限制下趋近完成目标。
6.1.1 短期记忆(Memory)
多轮对话历史视为短期记忆,是 Prompt 的一部分。虽然能塑造 LLM 性格,但存在 Token 消耗随轮数增加的问题。目前序列长度限制通常在 2048 至 32768 Token 不等。
- 滑动窗口:只保留最近 K 轮对话。
- 摘要压缩:利用 LLM 对历史对话进行总结,压缩 Token 占用。
6.1.2 长期记忆(History)
长期记忆指跨会话的持久化存储。除了微调(Fine-tune)外,更常用的方法是外部数据库存储。
- 文档切片:将长文档拆分为 Chunk,保证句子完整性。
- Embedding 编码:使用 Embeddings API 将文本转为向量。
- 向量存储:存入向量数据库(如 Faiss)。
- 检索:用户提问编码后,查询相似度最高的向量,作为 Context 输入 LLM。
6.1.3 文档检索(Knowledge)
- 切片:使用分割符(如句号、换行)切分文档。
- 构建索引:调用 Embedding API 编码并插入数据库。
6.1.4 Prompt 的组成
- Role:角色设定。
- Knowledge:检索到的文档内容。
- History:长期对话记忆中相关的问答对。
- Memory:当前 Session 最新的 K 轮对话。
- Query:用户当前输入。
{role}
从下文中提取有用的内容进行回答,如果不在下文提到的内容,可以生成相关的内容。
{knowledge}
{history}
{memory}
问题:{query}
回答:
6.1.5 Token 控制
当 Prompt 超过最大长度时,需采取截断或摘要策略:
- 截断文档检索结果。
- 截断 Memory 保留一轮。
- 对 Memory 进行预计算 Summary。
- 仅保留 History 中的最相关记录。
6.2 重点优化方向
- 摘要提取:利用 LLM 对历史互动进行摘要,控制 Token 数量。
- 实体抽取:抽取重要实体和内容,利用知识图谱组织关系。
6.2.2 压缩 Prompt
参考萨里大学的研究《Unlocking Context Constraints of LLMs》,通过 Self-Information-Based Content Filtering 识别冗余内容。删除 LLM 已学习过的背景信息,在有限 Context 中放入更多有效内容。
6.2.3 向量搜索与传统搜索融合
向量搜索适合模糊匹配,传统搜索适合精确索引。融合两者可解决精准记录场景下的不足。此外,可结合第三方 Search API(如 Bing、Google)解决时效性问题。
6.3 一些思考
单次记忆增强发挥了 LLM 的信息整合能力,避免了幻觉。但未充分挖掘高阶逻辑链(Chain of Thought)能力。未来的研究方向包括结合 ReAct、Reflexion 等论文提出的方案,以及 AutoGPT、BabyAGI 等项目的实践,探索记忆与逻辑推理的深度结合。
7. 未来展望
随着模型上下文窗口的扩大(如 100K+ Token),短期记忆的压力将减轻,但长期记忆的需求依然存在。未来的 Agent 系统将更加注重:
- 多模态记忆:不仅存储文本,还包括图像、音频的关联记忆。
- 隐私保护:在本地设备上进行记忆加密与处理。
- 自适应学习:Agent 能够根据用户反馈自动调整记忆权重。
通过合理的记忆架构设计,Agent 将更接近人类的认知模式,实现真正的自主智能。
相关免费在线工具
- 加密/解密文本
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
- RSA密钥对生成器
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
- Mermaid 预览与可视化编辑
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
- curl 转代码
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
- Base64 字符串编码/解码
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
- Base64 文件转换器
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online