from langchain.agents import create_agent, AgentState
from langchain.agents.middleware import dynamic_prompt, ModelRequest
from langchain_core.tools import BaseTool, tool
from typing import TypedDict
import json
from langgraph.checkpoint.memory import InMemorySaver
from langgraph.prebuilt import ToolRuntime
from init_llm import deepseek_llm
class CustomAgentState(AgentState):
user_id:str
hobby:list
other_info:dict
@tool
def get_user_info(runtime:ToolRuntime) -> str:
"""获取用户信息"""
print("runtime",runtime)
return runtime.state"user_id",runtime.state"hobby",runtime.state"other_info"
agent=create_agent(
model=deepseek_llm,
tools=get_user_info,
checkpointer=InMemorySaver(),
state_schema=CustomAgentState
)
config = {"configurable": {"thread_id": "1"}}
resp=agent.invoke({"messages":{"role":"user","content":"我叫张三,你是谁"}},config=config)
print(resp)
print(resp"messages"-1.content)
config = {"configurable": {"thread_id": "2"}}
resp=agent.invoke({"messages":{"role":"user","content":"我叫张三,你是谁?"}
,
"user_id":"user02",
"hobby":"篮球","足球",
"other_info":{"age":25,"gender":"男"}},config=config)
print(resp)
print(resp"messages"-1.content)
resp=agent.invoke({"messages":{"role":"user","content":"给我查询我的信息"}},config=config)
print(resp)
print(resp"messages"-1.content)
print(agent.get_state(config=config))
我了解到你的信息了!以下是你的一些基本情况:
-
**用户ID**:user02
-
**年龄**:25岁
-
**性别**:男
-
**兴趣爱好**:篮球 🏀、足球 ⚽
Process finished with exit code 0