尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
多轮对话:用持久化记住历史
个人主页 for_ever_love__ 欢迎各位大佬莅临其他栏目: 大模型开发从0到1 其他栏目: iOS项目总结大全 其他栏目: 我想学python了 其他栏目: iOS UI 文章目录多轮对话用持久化记住历史一、核心就三步二、为什么不用手动拼历史三、常见坑四、和生产接上多轮对话用持久化记住历史聊天机器人最基础的能力是「记得刚才聊到哪」。在 LangGraph 里这件事不是靠把历史消息传来传去而是靠Checkpointer MessagesState 同一个 thread_id三者配合自动完成的。一、核心就三步fromlanggraph.graphimportMessagesState,START,ENDfromlanggraph.checkpoint.memoryimportMemorySaverfromlangchain_core.messagesimportHumanMessage,AIMessagedefbot(state:MessagesState):# 真实场景这里调用大模型读取 state[messages] 全部历史return{messages:[AIMessage(content已收到)]}graphStateGraph(MessagesState)graph.add_node(bot,bot)graph.add_edge(START,bot)graph.add_edge(bot,END)appgraph.compile(checkpointerMemorySaver())cfg{configurable:{thread_id:u-1}}之后每一次对话都用同一个 cfg去 invokeapp.invoke({messages:[HumanMessage(content你好)]},cfg)app.invoke({messages:[HumanMessage(content你叫什么)]},cfg)注意每次传入的只是一条新消息但框架会把它追加到该 thread_id 下已有的 messages 后面。模型看到的始终是完整历史。二、为什么不用手动拼历史没有持久化时你得自己维护一个 list每次把过去 N 轮塞进 prompt。问题很多历史会无限变长、跨进程就丢、多个用户要分桶管理。用了 Checkpointer历史由框架按 thread_id 自动累积add_messagesreducer不同用户天然隔离各用各的 thread_id想截断/总结历史只需读取app.get_state(cfg).values[messages]再做处理。三、常见坑忘了带 thread_id每次都传新的/空的 config图就「失忆」每轮都是第一次对话thread_id 复用混乱把不同用户的对话混到同一个 thread_id会串台历史爆长度长期会话 messages 无限增长需要在节点里加「超长则摘要压缩」的逻辑而不是无脑全传。四、和生产接上本地用 MemorySaver 调试没问题但服务一重启记忆就清空。真正上线要把 Checkpointer 换成 Postgres/Redis 后端这样即使进程重启用户的历史仍在。多轮对话的「记忆」本质上就是被持久化下来的那份 messages。
RELATED

相关推荐

收购通稿刷屏时,开发者社区在问什么?从 linux.do 帖子流与门户聚合页看 AI 信息流的供需错位

收购通稿刷屏时,开发者社区在问什么?从 linux.do 帖子流与门户聚合页看 AI 信息流的供需错位

收购通稿刷屏时,开发者社区在问什么?——从一条信息流看 AI 资讯的供需错位 一、同一条信息流里的三个世界 如果你订阅了一个技术社区的聚合推送,很可能会在同一次刷新里看到这样的并置:一边是 Anthropic 官方宣布收购 Vercept …

📅 2026/10/22 20:55:25
在 Python Web 开发生态中,Flask 始终占据着独特而重要的位置

在 Python Web 开发生态中,Flask 始终占据着独特而重要的位置

在 Python Web 开发生态中,Flask 始终占据着独特而重要的位置。与 Django 这类“全栈式”框架不同,Flask 被明确定义为微框架(micro-framework),其核心仅提供路由、请求/响应处理、模板渲染等最基础能力,其…

📅 2026/10/22 20:55:25
深度学习1:基本概念,感知机,激活函数(阶跃,sigmoid,Tanh函数)

深度学习1:基本概念,感知机,激活函数(阶跃,sigmoid,Tanh函数)

建议看尚硅谷深度学习视频一、深度学习基本概念和结构二、感知机和激活函数的由来三、激活函数作用作用一: 没有激活函数,一万层网络也只等于一层线性回归,啥复杂问题都解决不了作用二: 决定神经元是否“放电”(特征过滤)作用三&a…

📅 2026/10/22 20:50:25
MORE NEWS

更多资讯

📰

多Agent系统中Skill统一管理:SkillHub与AgentForge实战指南

1. 项目概述:当一个 skill 在多 agent 系统里“分身三处”时,你真的知道它在哪执行、用的是哪版代码、改了会不会崩吗?“同一个 skill 存了三份”——这句话不是段子,是我在某跨平台智能体协作系统上线第三周时,盯着日…

📰

基于YOLOv8的活体检测系统:数据集构建、模型训练与Web部署实战

做活体检测系统这个选题,我是很有感触的。这两年人脸识别已经烂大街了,门禁、考勤、支付、手机解锁全在用人脸,可真正愿意把“活体”这两个字做实、做细的项目却不多。很多人拿着照片就能把门禁骗过去,拿着平板重放一段录好的视频…

📰

基于YOLOv8的人脸活体检测系统:从数据标注到Web部署全流程

1. 项目是怎么来的:这套系统到底解决什么问题 人脸活体检测这个东西,说直白一点,就是让机器分辨“镜头前面是一张真脸,还是一张照片、一段视频、一个3D面具”。刷脸支付、闸机门禁、远程实名认证,这些场景全依赖它兜底…

📰

端侧AI推理引擎LiteRT深度解析:从架构分层到量化优化实战

1. 端侧AI的工程瓶颈:纸面算力与真实功耗之间的鸿沟1.1 云端方案为何在端侧“水土不服”我一直觉得,端侧AI最迷惑人的地方在于:模型在服务器上跑得很好,各项跑分都很漂亮,但一旦搬上手机或边缘盒子,延迟翻倍…

📰

AI开发工具链全解析:从编码辅助到模型部署的工程实践

1. 从编码辅助到模型部署:AI开发工具链的全景俯瞰这两年只要在一线写过代码,就很难绕过AI开发工具这四个字。Git提交历史里塞满了一行行“AI生成注释”“根据AI建议修改”的commit,代码评审的评论区里多了“这个函数AI这么写其实有隐患”的讨…

📰

Ubuntu系统盘制作与安装全攻略:从镜像写入到双系统引导修复

1. 为什么值得花时间把系统盘制作这件事搞明白 很多人第一次接触 Ubuntu 安装,卡住的地方往往不是系统本身,而是"盘没做对"。我见过太多人下载完 ISO 镜像,双击打开,把里面的文件一股脑拖进 U 盘,然后插上电…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬