使用 LangChain 设计 Agentic 系统
Dilini K. Sumanapala, PhD
Founder & AI Engineer, Genverv, Ltd.

# 生成聊天机器人图 display(Image(app.get_graph().draw_mermaid_png()))# 定义执行聊天机器人的函数,逐条流式输出消息 def stream_tool_responses(user_input: str): for event in graph.stream({"messages": [("user", user_input)]}):# 返回代理的最后回复 for value in event.values(): print("Agent:", value["messages"])# 定义查询并运行聊天机器人 user_query = "House of Lords" stream_tool_responses(user_query)

Agent: [AIMessage(content='', additional_kwargs={'tool_calls': [{'function': {'arguments': '{"query":"House of Lords"}', 'name': 'wikipedia'}, 'type': 'function'}]}, response_metadata={'...'}])]Agent: [ToolMessage(content='Page: House of Lords\nSummary: The House of Lords is the upper house of the Parliament of the United Kingdom. Like the lower house...The House of Lords also has a Church of England role...', name='wikipedia', id='...',')]Agent: [AIMessage(content='The House of Lords is the upper house of the Parliament of the United Kingdom, located in the Palace of Westminster in London. It is one of the oldest institutions in the world..., additional_kwargs={},response_metadata= {'finish_reason': 'stop', 'model_name': 'gpt-4o-mini-2024-07-18', 'system_fingerprint': 'fp_0ba0d124f1'}, id='run-ae3a0b4f-5b42-4f4e-9409-7c191af0b9c9-0')]
# 导入用于保存记忆的模块 from langgraph.checkpoint.memory import MemorySaver# 启用记忆检查点修改图 memory = MemorySaver()# 编译图并传入记忆 graph = graph_builder.compile(checkpointer=memory)
# 为单个用户设置流式函数 def stream_memory_responses(user_input: str):config = {"configurable": {"thread_id": "single_session_memory"}}# 流式输出图中的事件 for event in graph.stream({"messages": [("user", user_input)]}, config):# 返回代理的最后回复 for value in event.values(): if "messages" in value and value["messages"]: print("Agent:", value["messages"])stream_memory_responses("What is the Colosseum?") stream_memory_responses("Who built it?")
stream_memory_responses("What is the Colosseum?")
Agent: [AIMessage(content='', additional_kwargs={'tool_calls': [{'index': 0, 'id': '...', 'function': {'arguments': ' {"query":"Colosseum"}', 'name': 'wikipedia'}, ...])]Agent: [ToolMessage(content='Page: Colosseum\nSummary: The Colosseum is an ancient amphitheatre in Rome, Italy. It is the largest standing amphitheatre in the world..)]Agent: [AIMessage(content='The Colosseum, located in Rome, is the largest ancient amphitheatre still standing. Built under Emperor Vespasian and completed by his son Titus, it hosted gladiatorial games and public events. It is also known as the Flavian Amphitheatre due to its association with the Flavian dynasty.', additional_kwargs={}, response_metadata={'finish_reason': 'stop', 'model_name': 'gpt-4o-mini-...', ...')]
stream_memory_responses("Who built it?")
Agent: [AIMessage(content='The Colosseum was built by Emperor Vespasian around
72 AD and completed by his successor, Emperor Titus. Later modifications were
made by Emperor Domitian...')]
使用 LangChain 设计 Agentic 系统