# 调用代理:发送用户消息,并指定线程 ID agent.invoke( {"messages": [{"role": "user", "content": "Hi! My name is Bob."}]}, {"configurable": {"thread_id": "1"}}, # thread_id 用于区分不同对话线程 )
# 导入必要的类和函数 from langchain.messages import RemoveMessage from langgraph.graph.message import REMOVE_ALL_MESSAGES from langgraph.checkpoint.memory import InMemorySaver from langchain.agents import create_agent, AgentState from langchain.agents.middleware import before_model from langgraph.runtime import Runtime from langchain_core.runnables import RunnableConfig from typing importAny
# 多轮对话示例:智能体将记住用户的名字 agent.invoke({"messages": "hi, my name is bob"}, config) agent.invoke({"messages": "write a short poem about cats"}, config) agent.invoke({"messages": "now do the same but for dogs"}, config)
# 验证智能体是否还记得用户的名字 final_response = agent.invoke({"messages": "what's my name?"}, config) final_response["messages"][-1].pretty_print()
# 导入所需模块 from langchain.messages import RemoveMessage from langchain.agents import create_agent, AgentState from langchain.agents.middleware import after_model from langgraph.checkpoint.memory import InMemorySaver from langgraph.runtime import Runtime from langchain_core.runnables import RunnableConfig
# 第一轮对话:介绍名字 for event in agent.stream( {"messages": [{"role": "user", "content": "hi! I'm bob"}]}, config, stream_mode="values", ): print([(message.type, message.content) for message in event["messages"]])
# 第二轮对话:询问名字 for event in agent.stream( {"messages": [{"role": "user", "content": "what's my name?"}]}, config, stream_mode="values", ): print([(message.type, message.content) for message in event["messages"]])
预期输出:
1 2 3
[('human', "hi! I'm bob")] [('human', "hi! I'm bob"), ('ai', 'Hi Bob! Nice to meet you. How can I help you today?')] [('human', "hi! I'm bob"), ('ai', 'Hi Bob! Nice to meet you.'), ('human', "what's my name?")]
# 导入创建智能体函数和总结中间件 from langchain.agents import create_agent from langchain.agents.middleware import SummarizationMiddleware from langgraph.checkpoint.memory import InMemorySaver from langchain_core.runnables import RunnableConfig
# 多轮对话示例 agent.invoke({"messages": "hi, my name is bob"}, config) agent.invoke({"messages": "write a short poem about cats"}, config) agent.invoke({"messages": "now do the same but for dogs"}, config)
# 验证智能体是否还记得名字 final_response = agent.invoke({"messages": "what's my name?"}, config) final_response["messages"][-1].pretty_print()
预期输出:
1 2
================================== Ai Message ================================== Your name is Bob!