
摘要本文介绍如何使用 LangChain 搭建 Agent核心围绕 ReAct思考—行动—观察循环展开。文章先解释 Agent 接到任务后如何通过模型思考、调用工具并观察结果来解决问题随后给出基于 LangChain 的完整搭建流程包括安装依赖、初始化模型、定义天气查询工具以及创建 Agent 并调用最终通过一个查询济南天气的示例演示整体运行效果。内容参考于图灵AI大模型全栈Agents代理Agent接到任务后它会开启一个 思考-》行动-》观察的循环解决完问题后结束循环这个流程被称为ReActReasoning Actiong模式。下图中model负责思考思考完调用tools工具然后observation观察工具执行结果一直在思考和调用工具循环request是我们用户的问题result是最终结果使用LangChain搭建Agent安装必要的模块uv add langchain python-dotenv langchain-openai如下图蓝框Agent需要的参数是一个messages类型我们手动构建message类型就是一个json类型如下图红框它返回的也是一个messages类型如下图第一步拿到用户的问题第二下图蓝框步分析问题这里模型不怎么聪明所以看不到回答它实际上是分析了问题然后决定是不是用工具然后第三步下图黄框决定使用工具准备调用的工具信息和提取工具需要的参数也就是城市信息第四步如下图绿框工具的回复第五步下图白框拿到工具回复的内容然后大模型根据工具回复的内容生成答案代码# create_agent是LangChain提供的创建Agent的核心模块 from langchain.agents import create_agent # 引入调用模型的openai from langchain_openai import ChatOpenAI # 引入 把.env文件中的内容加载成环境变量 的库 from dotenv import load_dotenv import os # 把.env文件中的内容加载成环境变量 load_dotenv() 初始化模型 llm ChatOpenAI( modelqwen3.7-flash, api_keyos.getenv(DASHSCOPE_API_KEY), base_urlos.getenv(DASHSCOPE_BASE_URL), ) 创建一个工具获取天气的工具 def get_weather(city): # 工具描述新版本LangChain会获取这个字符串当做工具的描述写到提示词中 获取指定城市的天气信息 # 工具逻辑 return f{city}天气是美好的 agent create_agent( modelllm, tools[get_weather], # 系统提示词 system_prompt你是一个智能助手能够回答用户关于天气的问题可以使用提供的天气工具来获取天气信息 ) messages { messages:[ {role:user,content:济南天气怎么样} ] } result agent.invoke(messages) print(result)