【AI】如何设计Agent的记忆系统?

记忆模块是Agent打破LLM上下文窗口限制、实现持续学习和个性化的关键。

设计Agent的记忆系统可以仿照人类的记忆机制。

分为短期记忆和长期记忆。

1、短期记忆(Short-Term Memory):

  • 作用 :存储当前任务的上下文信息 ,包括即时对话历史、中间的思考步骤、工具的调用结果等。
    它是Agent进行连贯思考和行动的基础。
  • 实现方式
    • LLM的上下文窗口(Context Window):这是最直接的短期记忆载体。所有最近的交互都会被放入Prompt中。
    • 缓冲区(Buffers): 在Agent框架中(如LangChain)中,通常会使用不同类型的缓冲区来管理对话历史。例如:
      • ConversationBufferMemory:存储完整的对话历史。
      • ConversationBufferWindowMemory:只保留最近的K轮对话。
      • ConversationSummaryBufferWindowMemory:在历史对话过长时,动态地用LLM进行总结,节省Token。
    • 暂存器(Scratchpad) :用于记录ReAct框架 中"Thought-Action-Observation"轨迹,是Agent进行逐步推理的关键。

2、长期记忆(Long-Term Memory):

  • 作用 :存储跨越任务和时间维度的信息。如用户的个人偏好、过去的成功/失败经验、领域知识等,
    它使得Agent能够 学习和成长。
  • 实现方式与外部工具:长期记忆的核心是"存储"和"检索",通常需要借助外部技术。主流的是RAG。
  • 核心技术向量数据库(Vector Database)
  • 工作流程

a.存储(Storing/Writing) :当Agent获得一个有价值的信息(如用户明确给出的偏好、一个成功决解问题的完整流程)时

它会使用一个嵌入模型(Embedding Model) 将这段文本信息转换成一个高维向量。

然后将这个向量及其原始文本存入向量数据库中。

b.检索(Retrieving/Reading): Agent进行规划或决策时,它会把当前任务或问题也转换成一个查询向量。

然后用这个查询向量去向量数据库中进行相似度检索,找出与当前情况最相关的历史记忆。

c.使用(Using): 检索到的记忆(原始文本)会被插入到LLM的Prompt中,作为额外的上下文,来指导LLM做出更明智的决策。

  • 其他技术
    传统数据库/知识图谱:对结构化或关系型数据,使用SQL数据库或图数据库进行存储和精确查询也是一种有效的长期记忆形式。
相关推荐
IvanCodes9 小时前
RAG 实战教程(一):RAG 工作原理与完整流程——分片、索引、召回、重排和生成
人工智能·后端·agent
飞哥数智坊10 小时前
在夏令营带学生从0到1做 Agent,我更确定了三件事
agent
fthux11 小时前
装闭 RenoPit 源码解析(04):装修图纸和合同文件上传处理流程
人工智能·ai·开源·github·open source·renopit
怕浪猫13 小时前
用 TRAE Work 来写这篇关于 TRAE Work 的征文
aigc·agent·ai编程
带娃的IT创业者14 小时前
Kimi-K3 开源背后:2.8 万亿参数的“暴力美学”与智能体的新拐点
人工智能·开源·大模型·智能体·开源模型·kimi-k3·moonshot ai
夜心26115 小时前
markdown 流里嵌 JSON 怎么校验?fluxmend 用字符级 FSM 把这事做明白了
agent
运维开发王义杰15 小时前
DefectDojo 里的 curl 高危漏洞修不修?剖析 C/C++ 依赖陷阱与 Web3 真实攻防
ai
小当家.10515 小时前
深入理解 ReAct Agent:从原理到 Java 实战
java·react.js·agent·react·架构设计·agent设计
甲维斯15 小时前
给Claude Code配上DeepSeek,调用kimicu控制电脑
人工智能·agent
阿里云云原生15 小时前
从创建到发布:一套基于 AgentLoop 的 AI Agent Skill 持续调优工程链路
agent