长期记忆存储在数据库里

from langchain.agents import create_agent,AgentState

from langgraph.checkpoint.memory import InMemorySaver

from langgraph.checkpoint.mysql.pymysql import PyMySQLSaver

from langgraph.store.memory import InMemoryStore

from langgraph.prebuilt import ToolRuntime

from langgraph.store.mysql import PyMySQLStore

from init_llm import deepseek_llm

from langchain_core.tools import tool

DB_URI="mysql+pymsql://root:xx@43.15.1.88:3306/langchain_db?charset=utf8mb4"

with (PyMySQLSaver.from_conn_string(DB_URI) as checkpointer,

PyMySQLStore.from_conn_string(DB_URI) as store):

checkpointer.setup()

store.setup()

store.put(

("users",),

"user_123",

{"name":"张三","age":18,"city":'北京',"hobby":"旅游"}

)

store.put(

("users",),

"user_456",

{"name": "李四", "age": 30, "city": '南京', "hobby": "足球"}

)

@tool

def get_user_info(runtime:ToolRuntime) -> str:

"""从长期获取用户信息"""

print('111111111111111111111111111111111')

store=runtime.store

user_data=store.get(("users",),"user_123")

if user_data:

print("user_data:",user_data)

value=user_data.value

return f"用户姓名:{value'name'},用户年龄:{value'age'},用户城市:{value'city'},用户爱好:{value'hobby'}"

else:

return f"用户信息不存在"

agent=create_agent(

model=deepseek_llm,

tools=get_user_info,

store=store #长期记忆存储

)

config1={"configurable": {"thread_id":"session01"}}

config2={"configurable": {"thread_id":"session02"}}

resp=agent.invoke({"messages":{"role":"user","content":"?""},"user_id":'user01',"hobby":'篮球','羽毛球',"other_info":{'age':28}},config=config1)

print(resp'messages'-1)

#resp=agent.invoke({"messages":{"role":"user","content":"我叫张三,你是谁?""}},config=config1)

resp=agent.invoke({"messages":{"role":"user","content":"获取我的信息?"}},config=config1)

print(resp'messages'-1)

resp=agent.invoke({"messages":{"role":"user","content":"获取我的信息?"}},config=config2)

print(resp'messages'-1)

相关推荐
一笑的小酒馆1 小时前
Android中的tcp通信
android
默阳12344 小时前
2026年Android中高级面试题专栏(Android进阶篇)
android
古法安卓5 小时前
Android-日志系统源码解析
android·java·android studio
恋猫de小郭6 小时前
Android 17 + OkHttp 5.5.0 ,全新 ECH 下你的 HTTPS 域名可以请求时被安全隐藏
android·前端·flutter
小强闯江湖6 小时前
不只是让 AI 写代码:ViewCompose 把 Android UI 做成了可编译、可渲染的闭环
android·人工智能·kotlin
hunterandroid7 小时前
StateFlow 与 SharedFlow 的边界:状态与事件的正确建模
android·前端
YF02117 小时前
Android遥控器对频详解
android·android things
码农coding9 小时前
android12 WindowManagerService窗口的布局过程
android·源码
杉氧11 小时前
状态管理变迁史:为什么我们放弃了 Redux 选择 Zustand?
android·前端·react native
三少爷的鞋14 小时前
别再靠 Code Review 守底线:我做了一个静态分析项目 RedLine
android