惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

B
Blog RSS Feed
Martin Fowler
Martin Fowler
爱范儿
爱范儿
IT之家
IT之家
Last Week in AI
Last Week in AI
A
About on SuperTechFans
Google DeepMind News
Google DeepMind News
阮一峰的网络日志
阮一峰的网络日志
V
V2EX
aimingoo的专栏
aimingoo的专栏
G
Google Developers Blog
J
Java Code Geeks
Microsoft Azure Blog
Microsoft Azure Blog
美团技术团队
The Cloudflare Blog
MyScale Blog
MyScale Blog
T
The Blog of Author Tim Ferriss
Hugging Face - Blog
Hugging Face - Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
云风的 BLOG
云风的 BLOG
Y
Y Combinator Blog
The GitHub Blog
The GitHub Blog
腾讯CDC
Microsoft Security Blog
Microsoft Security Blog

博客园 - aqi00

鸿蒙版本的JSBridge兼容与安卓配套的H5啦 15天学会AI应用开发(二十)使用LangChain实现RAG检索功能 鸿蒙版本的小小机器人APP开放源码啦 15天学会AI应用开发(十八)使用LangGraph实现精确记忆功能 15天学会AI应用开发(十七)使用LangGraph实现会话记忆功能 15天学会AI应用开发(十六)LangChain实现对话记忆功能 15天学会AI应用开发(十五)使用LangChain封装AI执行链 15天学会AI应用开发(十四)搭建LangChain的开发环境 15天学会AI应用开发(十三)上下文与RAG的阶段性总结 15天学会AI应用开发(十二)从PDF、WORD、网页构建RAG 15天学会AI应用开发(十一)从TXT文件构建RAG知识库 15天学会AI应用开发(十)把文本嵌入模型换成国产模型 15天学会AI应用开发(九)利用Chroma持久化向量数据 15天学会AI应用开发(八)使用向量数据库实现RAG功能 15天学会AI应用开发(七)有了大模型为什么还要引入RAG 15天学会AI应用开发(六)使用离线大模型对文本生成摘要 一文速览 HarmonyOS 6.1.1 推出的十个新特性 15天学会AI应用开发(五)使用AI摘要来压缩上下文消息 15天学会AI应用开发(四)根据Token长度截断历史对话 15天学会AI应用开发(三)把历史对话作为提示词会怎样 15天学会AI应用开发(二)为什么编写提示词这么重要 15天学会AI应用开发(一)搭建AI大模型应用开发环境 一文理清 HarmonyOS 6.0.2 涵盖的十个升级点 FFmpeg开发笔记(一百零二)国产的音视频移动开源工具FFmpegAndroid FFmpeg开发笔记(一百零一)跨平台的开源音视频移动框架MobileFFmpeg 一文速览 HarmonyOS 6.0.1 引入的十个新特性 一文读懂 HarmonyOS 6.1 带来的十大重要升级 新书《鸿蒙HarmonyOS 6应用开发:从零基础到App上线》出版啦 FFmpeg开发笔记(一百)国产的Android开源视频压缩工具VideoSlimmer FFmpeg开发笔记(九十九)基于Kotlin的国产开源播放器DKVideoPlayer
15天学会AI应用开发(十九)使用LangGraph实现持久记忆功能
aqi00 · 2026-08-08 · via 博客园 - aqi00

上一篇文章介绍了如何使用InMemoryStore实现用户偏好的精确记忆功能,但记忆只保留在内存中,一旦AI应用重启,就会丢失上次在内存中的记忆数据。

为了让AI应用持久记忆业务数据,就得引入文件或者数据库等存储介质,比如Python自带的轻量级数据库SQLite。接下来就介绍如何结合LangGraph与SQLite实现业务数据的持久记忆功能。

一、Python中的SQLite用法

安装Python时已经自带了SQLite包,在代码开头添加下面导包语句,即可引入SQLite包:

sqlite3的connect方法可创建SQLite的数据库连接,同时指定数据库的文件名称及其保存路径。若只填数据库文件名,则默认保存在当前程序目录下。
connect方法返回的连接类型为Connection,它的常用方法说明如下:

backup:备份数据库。
close:关闭数据库连接。
commit:提交数据变更。
rollback:回滚数据变更。

二、LangGraph中的SQLite组件

LangGraph中的SQLite组件包括SqliteStore和SqliteSaver,其中SqliteStore位于langgraph包,而SqliteSaver位于langgraph-checkpoint-sqlite插件。

在命令行窗口执行下面命令,即可安装LangChain及其用到的Ollama插件,以及数据库记忆功能需要的LangGraph及其SQLite插件:

由于之前使用的离线大模型Qwen2:1.5B不支持tool工具调用,因此得下载支持tool工具调用的离线大模型Qwen2.5:3B,也就是在命令行窗口执行下面命令,即可下载大模型qwen2.5:3b:

等待大模型下载完毕,在命令行窗口执行下面命令,即可启动Ollama并加载大模型:

三、使用SQLite组件持久保存偏好数据

与之前使用InMemoryStore保存记忆数据相比,引入SQLite插件之后的代码修改部分说明如下:

1、先导入SQLite状态保存器SqliteSaver和SQLite数据保存器SqliteStore的所在包,接着创建SQLite数据库连接,再根据数据库连接分别创建状态保存器实例和数据保存器实例。示例代码如下:

2、在创建大模型实例时,既要将温度参数temperature设为0表示严格按照提示词执行,也要将工具选择参数tool_choice设为any表示强制模型必须调用工具。示例代码如下:

3、在调用create_agent创建智能体实例时,把store参数改为上一步创建的数据保存器实例store_db,把checkpointer参数改为上一步创建的状态保存器实例checkpointer;还要编写提示词参数system_prompt,指定详细的工具调用规则。示例代码如下:

4、在调用智能体实例的invoke方法时,增加传入config参数,指定SQLite组件所需的线程编号。示例代码如下:

运行修改后的Python代码,根据提示输入问题内容“我喜欢蓝色”,输出日志结果如下:

停止当前AI应用进程,重新运行Python代码,根据提示输入问题内容“我喜欢什么颜色?”,输出日志结果如下:

由日志信息发现,在应用程序重启前后,AI应用均能正确回答用户的颜色偏好,并且当前目录找到了数据库文件agent.db。可见在引入LangGraph的SQLite组件之后,LangChain成功实现了用户数据的持久记忆功能。

本系列的AI应用开发文章目录为《15天学会AI应用开发全目录(零基础小白,零Token消耗)》。