要让 AI Agent 告别“金鱼记忆”,真正变得智能、高效,分层记忆(Tiered Memory Architecture) 是核心策略。它模拟了人类大脑处理信息的方式,将不同类型、不同时效性的记忆存储在最适合它们的地方,从而实现 Agent 的高效运作和智能决策。

为什么需要分层记忆?


想象一下我们的大脑:

  • 短期记忆: 你正在进行的对话,脑中即时活跃的上下文。它容量有限,但访问速度极快。
  • 中期记忆: 你刚刚读完一本书的核心内容,或者最近几天发生的重大事件。它们比短期记忆更持久,但不如长期记忆那样根深蒂固。
  • 长期记忆: 你的个人经历、学到的技能、世界观、以及那些你已经掌握的知识。它容量无限,但检索可能需要更长时间。

AI Agent 也面临类似挑战:

  1. LLM 上下文窗口限制与成本: 大语言模型虽然强大,但其**上下文窗口(Context Window)**是有限的。将所有历史对话都塞进去,不仅会迅速耗尽上下文限制,导致 Agent “遗忘”早期内容,还会显著增加每次调用的 Token 成本
  2. 信息检索效率: 对于海量的外部知识,每次都让 LLM 从头“思考”是不现实的。我们需要快速检索相关信息。
  3. 不同记忆的特性: 有些记忆需要即时、精准的访问(如当前对话),有些需要结构化存储和高级查询(如用户档案),有些则需要向量匹配和语义搜索(如非结构化知识库)。

分层记忆架构正是为了解决这些问题而生,它通过结合不同存储技术和策略,高效利用计算资源,提升 Agent 的智能性和经济性

。分层记忆架构的核心组成


一个典型的分层记忆架构通常包含以下几个层次:

1. 短期记忆(Short-Term Memory):即时上下文与当前会话状态

存储位置: Agent 的运行时状态(In-memory State / Graph State),通常由 LangGraph 的 AgentState 对象维护。当 Agent 在运行一个循环(如 ReAct 循环)时,当前步骤的所有输入、输出以及 LLM 的思考过程都暂时保存在这里。

内容:

  • 当前对话轮次的消息历史(近期 N 条): 这是 LLM 在生成响应时直接访问的核心上下文。通常指最近的几轮用户和 Agent 的交互。
  • 当前任务的中间结果: 例如,Agent 正在分析一个用户查询,解析出的实体、计划步骤等。
  • 临时变量和标志: 用于控制 Agent 流程的布尔值或计数器。

特点:

  • 访问速度极快: 直接在内存中操作。
  • 容量有限: 主要受限于 LLM 的上下文窗口和系统内存。
  • 生命周期短: 通常只在当前会话或单个请求的生命周期内有效。

实现方式:

  • 在 LangGraph 中,通过 AgentState 中的 messages: Annotated[List[BaseMessage], add_messages] 来自动管理和更新消息列表。
  • 其他状态变量(如 current_plan)也是 Agent 运行时状态的一部分。

2. 中期记忆(Medium-Term Memory):对话摘要与近期核心信息

存储位置: 可以是关系型数据库(如 PostgreSQL 的某个表,用于存储摘要)、键值存储(如 Redis)或简单的文件系统。通常与 LangGraph 的 Checkpointer 配合使用。

内容:

  • 对话摘要: 对过去某个阶段对话的精炼总结。当对话消息过多时,LLM 可以生成一个简洁的摘要,取代部分原始消息传入上下文,从而节省 Token 并保留核心信息。
  • 近期关键信息/主题: 识别出的对话主题、关键实体、用户近期关注点等。
  • 特定会话的短期偏好: 在当前会话中用户表达的临时性偏好。

特点:

  • 持久化: 即使 Agent 重启,这部分记忆也不会丢失。
  • 平衡成本与上下文: 在保持上下文连贯性的同时,有效控制 LLM 的 Token 消耗。
  • 检索速度中等: 比直接访问内存慢,但比扫描整个长期知识库快。

实现方式:

  • Agent 节点: 在 LangGraph 中设计一个专门的**“摘要节点”**。当 messages 列表的长度超过某个阈值时,触发此节点。

  • LLM 调用: 摘要节点内部调用 LLM(通常是成本较低、上下文窗口较大的模型)对旧消息进行总结。

    # 伪代码:摘要节点逻辑
    def summarize_conversation_node(state: AgentState) -> AgentState:
        messages_to_summarize = state['messages'][:-N_recent_messages] # 保留N条最新,其余摘要
        if len(messages_to_summarize) > THRESHOLD_FOR_SUMMARY:
            # 调用LLM生成摘要
            summary_prompt = f"请总结以下对话的关键信息,提取用户意图和重要结论:\n{''.join([m.content for m in messages_to_summarize])}"
            new_summary = summary_llm.invoke(summary_prompt).content
            
            # 将旧摘要更新为新摘要,或者添加到历史摘要列表中
            current_summary = state.get('conversation_summary', '')
            state['conversation_summary'] = combine_summaries(current_summary, new_summary) # 累积摘要
            
            # 更新消息列表:移除旧消息,添加摘要消息
            state['messages'] = [SystemMessage(content=f"历史对话摘要:{state['conversation_summary']}")] + state['messages'][-N_recent_messages:]
        return state
    
  • 存储: 将生成的摘要存储在 LangGraph Checkpointer 管理的数据库中(如 PostgreSQL),或者在 AgentState 中新增一个 conversation_summary 字段,让 Checkpointer 自动持久化。

  • 注入: 在每次调用 LLM 时,将存储的 conversation_summary 作为 System Message额外的工具参数注入到 LLM 的上下文输入中。


3. 长期记忆(Long-Term Memory):持久化知识与经验积累

存储位置: 专门的数据库,如:

  • 关系型数据库(PostgreSQL): 存储结构化数据,如用户档案、配置、历史交易记录、Agent 的“学习成果”(例如,某个用户常问的问题模式、特定客户的偏好列表)。
  • 向量数据库(PostgreSQL + pgvector): 存储非结构化的外部知识库(External Knowledge Base),如产品文档、FAQ、历史招聘案例、代码库文档、领域专家知识等。
  • 图数据库: 存储实体关系,构建复杂的知识图谱。

内容:

  • 外部知识库: 大量的、不随每次对话改变的、需要检索才能获得的知识。
  • 用户档案/偏好: 用户的基本信息、长期兴趣、个性化设置、历史行为模式等。
  • Agent 学习到的知识/技能: Agent 在长期运行中总结出的经验、优化过的决策规则、对特定问题的解决方案等。
  • 历史执行记录/日志: 完整的 Agent 运行日志,用于分析、审计和模型训练。

特点:

  • 巨大容量: 能够存储海量数据,几乎无限。
  • 持久性最高: 数据长期保存,支持跨用户、跨会话的知识共享和积累。
  • 检索方式多样: 通过 SQL 查询、向量相似度搜索、图遍历等方式进行检索。
  • 访问速度相对较慢: 通常需要通过专门的工具(Tools)进行查询。

实现方式:

  • PostgreSQL 作为结构化存储:

    # 伪代码:存储用户偏好的工具
    @tool
    def save_user_preference(user_id: str, preference_key: str, preference_value: str) -> str:
        """保存用户的特定偏好到数据库。"""
        # 实际代码会调用数据库 ORM 或客户端 (如 SQLAlchemy, psycopg2)
        # 例如:db_session.query(User).filter_by(id=user_id).update({preference_key: preference_value})
        print(f"--- 💾 保存用户 {user_id} 的偏好:{preference_key}={preference_value} ---")
        return"用户偏好已保存。"
    
    # 伪代码:读取用户偏好的工具
    @tool
    def get_user_preference(user_id: str, preference_key: str) -> str:
        """从数据库读取用户的特定偏好。"""
        # 例如:user_pref = db_session.query(User).filter_by(id=user_id).first().preference_key
        user_pref = "黑色"if preference_key == "fav_color"else"未知"# 模拟
        print(f"--- 📚 读取用户 {user_id} 的偏好:{preference_key}={user_pref} ---")
        return user_pref
    
    • 在 PostgreSQL 中创建独立的表,例如 users_profileagent_learned_preferencesrecruitment_job_templates 等。
    • 在 LangGraph Agent 中,设计自定义工具(Custom Tools),这些工具内部封装了对 PostgreSQL 数据库的 CRUD (创建、读取、更新、删除) 操作。
    • Agent 根据 LLM 的思考(ReAct 模式),决定何时调用这些工具来读取或写入长期结构化记忆。
  • PostgreSQL + pgvector 作为向量数据库 (RAG):

    # 伪代码:RAG 检索工具
    # from langchain_community.vectorstores import PGVector
    # from langchain_openai import OpenAIEmbeddings
    
    # # 假设 embeddings 和 vectorstore 已初始化并加载了知识
    # embeddings = OpenAIEmbeddings()
    # pg_vector_store = PGVector(
    #     connection_string=POSTGRES_CONNECTION_STRING,
    #     embedding_function=embeddings,
    #     collection_name="enterprise_knowledge"
    # )
    
    # @tool
    # def retrieve_enterprise_knowledge(query: str) -> str:
    #     """从企业知识库中检索与查询相关的文档片段。"""
    #     docs = pg_vector_store.similarity_search(query, k=3) # 检索最相关的3个文档片段
    #     return "\n".join([doc.page_content for doc in docs])
    
    # # 将 retrieve_enterprise_knowledge 工具添加到 Agent 的工具列表中,让LLM可以调用
    # tools.append(retrieve_enterprise_knowledge)
    # llm_with_tools = llm.bind_tools(tools)
    
    • 安装 pgvector 扩展并创建表。
    • 使用 LangChainOpenAIEmbeddings 或其他 Embeddings 模型将你的非结构化知识(文档、FAQ、历史招聘数据)转化为向量。
    • 使用 langchain-communityPGVector 存储器将这些向量及其原始文本存入 PostgreSQL。
    • 设计一个检索工具。Agent 在接收用户查询后,如果判断需要外部知识,就会调用这个检索工具。检索工具会执行向量相似度搜索,从 pgvector 中找到最相关的文本片段,并将其返回给 Agent。Agent 再将这些片段作为上下文传递给 LLM,生成答案。

🎨 分层记忆架构的整体工作流示意


  1. 用户输入: 用户提出问题或指令。

  2. 短期记忆(AgentState.messages)更新: 用户输入作为 HumanMessage 添加到 messages 列表。

  3. Agent 思考(LLM Node): LLM 接收 AgentState.messages (包含最近的对话历史和可能注入的摘要/长期记忆信息),根据提示词和工具定义进行推理。

    • 直接回答(结束当前运行)。
    • 调用某个工具(转到 Tool Node)。
    • 要求澄清(更新状态,引导用户继续输入)。
    • (如果有中期记忆) 评估消息长度,如果需要,触发摘要工具。
    • (如果有长期记忆) 如果判断需要外部知识或用户偏好,决定调用相应的检索工具数据查询工具
  4. LLM 可能会决定:

  5. 工具执行(Tool Node): 如果 LLM 决定调用工具,Agent 执行相应工具(如 search_web, retrieve_enterprise_knowledge, get_user_preference, save_user_preference 等)。

  6. 工具结果: 工具执行结果作为 ToolMessage 添加回 AgentState.messages

  7. 持久化(Checkpointer): LangGraph 的 PostgresSaver 在每个“可检查点”的步骤(通常是每次节点执行后)自动将当前的 AgentState 保存到 PostgreSQL。

  8. 循环/结束: Agent 根据工具结果或 LLM 的最新判断,决定是继续循环(如返回 LLM 节点进行进一步思考)还是结束当前运行并返回最终答案。

  9. 中期记忆更新(周期性/事件触发): 如果配置了摘要策略,当消息数量达到阈值时,触发摘要流程,更新中期记忆中的摘要。

  10. 长期记忆更新(按需): Agent 在执行特定任务时(如用户更新个人信息、Agent 学习到新模式),会通过工具将相关信息写入 PostgreSQL 的长期记忆表中。

⚖️ 挑战、最佳实践与未来展望


核心挑战:

  1. 数据安全与隐私: 这是最重要的一点。确保 PostgreSQL 部署安全、数据传输加密、访问权限控制,并严格遵守 GDPR、国内数据安全法等法规。
  2. 模型偏见与公平性: 如果训练数据或 Agent 的学习过程中引入了偏见,长期记忆可能会放大这些偏见。需要持续的监控、审计和去偏见策略。
  3. 成本与性能: 长期记忆会带来额外的存储和检索成本。优化数据库查询、合理设计 RAG 策略(如分层检索、缓存)、控制 LLM 调用频率和 Token 长度是关键。
  4. 复杂性管理: 分层记忆架构的引入会增加系统设计的复杂性。需要清晰的模块划分、强大的可观测性工具(如 LangSmith),以及健壮的错误处理机制。
  5. 模式设计与演进: 随着业务需求变化,记忆的 schema 和内容需要灵活演进。

最佳实践:

  • 明确记忆边界: 清楚定义不同层次记忆的职责和存储内容。
  • 异步操作: 对于耗时的数据库操作或 LLM 调用,尽量采用异步方式,避免阻塞 Agent 的主流程。
  • 监控与调试: 积极利用 LangSmith 等工具,可视化 Agent 的执行路径,监控 Token 使用、延迟、错误,这对于复杂 Agent 的调试至关重要。
  • 版本控制: 对 Agent 的逻辑、工具和记忆 schema 进行版本控制,便于回溯和管理。
  • 灰度发布与 A/B 测试: 在生产环境中逐步推出新功能,并进行效果评估。

未来展望:

随着 AI Agent 技术的成熟,以及多模态 LLM 和更强大的具身智能体的出现,分层记忆架构将变得更加复杂和精巧。Agent 将不仅仅是简单的“对话机器”,而是能真正地“学习”、“成长”和“决策”,成为各行各业的超级智能助手。

拥有了永不遗忘的记忆,我们的 AI Agent 将不再只是工具,更是能够与人类协作、共同推动生产力进步的“数字生命体”。

普通人如何抓住AI大模型的风口?

领取方式在文末

为什么要学习大模型?

目前AI大模型的技术岗位与能力培养随着人工智能技术的迅速发展和应用 , 大模型作为其中的重要组成部分 , 正逐渐成为推动人工智能发展的重要引擎 。大模型以其强大的数据处理和模式识别能力, 广泛应用于自然语言处理 、计算机视觉 、 智能推荐等领域 ,为各行各业带来了革命性的改变和机遇 。

目前,开源人工智能大模型已应用于医疗、政务、法律、汽车、娱乐、金融、互联网、教育、制造业、企业服务等多个场景,其中,应用于金融、企业服务、制造业和法律领域的大模型在本次调研中占比超过 30%。
在这里插入图片描述

随着AI大模型技术的迅速发展,相关岗位的需求也日益增加。大模型产业链催生了一批高薪新职业:
在这里插入图片描述

人工智能大潮已来,不加入就可能被淘汰。如果你是技术人,尤其是互联网从业者,现在就开始学习AI大模型技术,真的是给你的人生一个重要建议!

最后

只要你真心想学习AI大模型技术,这份精心整理的学习资料我愿意无偿分享给你,但是想学技术去乱搞的人别来找我!

在当前这个人工智能高速发展的时代,AI大模型正在深刻改变各行各业。我国对高水平AI人才的需求也日益增长,真正懂技术、能落地的人才依旧紧缺。我也希望通过这份资料,能够帮助更多有志于AI领域的朋友入门并深入学习。

真诚无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发

【附赠一节免费的直播讲座,技术大佬带你学习大模型的相关知识、学习思路、就业前景以及怎么结合当前的工作发展方向等,欢迎大家~】
在这里插入图片描述

大模型全套学习资料展示

自我们与MoPaaS魔泊云合作以来,我们不断打磨课程体系与技术内容,在细节上精益求精,同时在技术层面也新增了许多前沿且实用的内容,力求为大家带来更系统、更实战、更落地的大模型学习体验。

图片

希望这份系统、实用的大模型学习路径,能够帮助你从零入门,进阶到实战,真正掌握AI时代的核心技能!

01 教学内容

图片

  • 从零到精通完整闭环:【基础理论 →RAG开发 → Agent设计 → 模型微调与私有化部署调→热门技术】5大模块,内容比传统教材更贴近企业实战!

  • 大量真实项目案例: 带你亲自上手搞数据清洗、模型调优这些硬核操作,把课本知识变成真本事‌!

02适学人群

应届毕业生‌: 无工作经验但想要系统学习AI大模型技术,期待通过实战项目掌握核心技术。

零基础转型‌: 非技术背景但关注AI应用场景,计划通过低代码工具实现“AI+行业”跨界‌。

业务赋能突破瓶颈: 传统开发者(Java/前端等)学习Transformer架构与LangChain框架,向AI全栈工程师转型‌。

image.png

vx扫描下方二维码即可
【附赠一节免费的直播讲座,技术大佬带你学习大模型的相关知识、学习思路、就业前景以及怎么结合当前的工作发展方向等,欢迎大家~】
在这里插入图片描述

本教程比较珍贵,仅限大家自行学习,不要传播!更严禁商用!

03 入门到进阶学习路线图

大模型学习路线图,整体分为5个大的阶段:
图片

04 视频和书籍PDF合集

图片

从0到掌握主流大模型技术视频教程(涵盖模型训练、微调、RAG、LangChain、Agent开发等实战方向)

图片

新手必备的大模型学习PDF书单来了!全是硬核知识,帮你少走弯路(不吹牛,真有用)
图片

05 行业报告+白皮书合集

收集70+报告与白皮书,了解行业最新动态!
图片

06 90+份面试题/经验

AI大模型岗位面试经验总结(谁学技术不是为了赚$呢,找个好的岗位很重要)图片
在这里插入图片描述

07 deepseek部署包+技巧大全

在这里插入图片描述

由于篇幅有限

只展示部分资料

并且还在持续更新中…

真诚无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发

【附赠一节免费的直播讲座,技术大佬带你学习大模型的相关知识、学习思路、就业前景以及怎么结合当前的工作发展方向等,欢迎大家~】
在这里插入图片描述

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐