当前位置: 首页 > news >正文

从0到1实战:基于 LangGraph + 智谱AI + 高德天气API,打造多步骤自动化查询智能体

前言

在大模型应用开发中,LangGraph 作为 LangChain 生态内的工作流编排利器,可以轻松实现多步骤、有状态、可循环的智能体流程。本文将带你从零开发一个真实天气查询智能体
通过智谱 GLM-4.5-Air 生成查询计划,利用 LangGraph 分步执行,调用高德天气官方 API获取实时气温,完成一套可落地、可扩展的 LLM 自动化流程。


一、技术栈介绍

  • LangGraph:智能体工作流编排,状态管理、条件分支、循环执行
  • LangChain:大模型调用、提示词模板、结构化输出
  • 智谱AI ChatZhipuAI:使用 glm-4.5-air 生成结构化计划
  • 高德地图天气 API:提供国内城市真实、稳定的实时天气数据
  • Python:整体开发语言

二、整体流程设计

本项目采用计划-执行双节点智能体架构:

  1. 生成计划节点:LLM 生成四个直辖市天气查询步骤
  2. 执行查询节点:依次调用天气 API,更新状态
  3. 条件路由:判断是否还有未完成计划,自动循环/结束

流程图:
START → 生成计划 → 执行单步查询 →(还有计划?)→ 继续执行 / END

三、环境准备

1. 安装依赖

pipinstalllanggraph langchain langchain-core langchain-community pydantic requests

2. 获取 API Key

  1. 智谱AI Key
    前往:https://open.bigmodel.cn/ 获取 API Key
  2. 高德 Web 服务 Key
    前往:https://lbs.amap.com/ → 控制台 → 应用管理 → 创建应用 → 添加 Key(选择 Web 服务)

四、完整代码实现

1. 导入库与基础配置

importoperatorimportosimportrequestsfromlangchain_core.messagesimportAnyMessage,HumanMessage,AIMessagefromlanggraph.graphimportSTART,END,StateGraphfromlangchain_core.runnablesimportRunnableConfigfromlangchain_community.chat_modelsimportChatZhipuAIfromlangchain_core.promptsimportChatPromptTemplatefromtypingimportTypedDict,List,AnnotatedfrompydanticimportBaseModel,Field

2. 配置 API 信息

# 智谱AI配置os.environ["ZHIPUAI_API_KEY"]="你的智谱API Key"model=ChatZhipuAI(temperature=0.1,model="glm-4.5-air")# 高德天气API配置GAODE_KEY="你的高德Web服务Key"

3. 定义状态与数据结构

# 智能体状态classMessageState(TypedDict):title:strplans:List[str]# 待执行计划finished:List[str]# 已完成计划messages:Annotated[List[AnyMessage],operator.add]# 结构化输出:计划列表classPlans(BaseModel):plans:List[str]=Field(description="天气查询步骤")

4. 封装真实天气 API

defget_real_weather(city_name:str)->str:"""调用高德天气API,获取真实气温"""try:url="https://restapi.amap.com/v3/weather/weatherInfo"params={"city":city_name,"key":GAODE_KEY,"extensions":"base","output":"json"}resp=requests.get(url,params=params,timeout=10)data=resp.json()ifdata.get("status")=="1"anddata.get("lives"):live=data["lives"][0]returnf"{live['weather']},气温{live['temperature']}℃"exceptExceptionase:print(f"查询{city_name}失败:{e}")return"天气获取失败"

5. 构建 LangGraph 节点

节点1:生成查询计划
defmake_plan_node(state:MessageState):prompt=ChatPromptTemplate.from_messages([("system","只输出4个计划:查北京天气、查上海天气、查天津天气、查重庆天气"),("user","{title}")])chain=prompt|model.with_structured_output(schema=Plans)resp=chain.invoke({"title":state["title"]})plans=resp.plansifrespelse["查北京天气","查上海天气","查天津天气","查重庆天气"]return{"plans":plans}
节点2:执行单步天气查询
defrun_plan_node(state:MessageState):plans=state["plans"]ifnotplans:return{"plans":[]}current=plans[0]city=current.replace("查","").replace("天气","").strip()weather=get_real_weather(city)return{"plans":plans[1:],"finished":state["finished"]+[current],"messages":[AIMessage(content=f"{city}{weather}")]}
路由函数
defshould_continue(state):returnENDiflen(state["plans"])==0else"run_plan_node"

6. 编译并运行智能体

# 构建流程图builder=StateGraph(MessageState)builder.add_node("make_plan_node",make_plan_node)builder.add_node("run_plan_node",run_plan_node)builder.add_edge(START,"make_plan_node")builder.add_edge("make_plan_node","run_plan_node")builder.add_conditional_edges("run_plan_node",should_continue)graph=builder.compile()# 执行if__name__=="__main__":out=graph.invoke({"title":"查询四个直辖市天气","plans":[],"finished":[],"messages":[HumanMessage(content="开始查询真实天气")],})print("\n===== 天气查询结果 =====")formsginout["messages"]:print(msg.content)

五、运行效果

===== 天气查询结果 ===== 开始查询真实天气 北京:晴,气温 14℃ 上海:多云,气温 19℃ 天津:晴,气温 12℃ 重庆:阴,气温 17℃

六、常见问题与排坑

  1. No module named ‘langgraph’
    pip install langgraph
  2. jwt.encode 报错
    pip uninstall jwt && pip install pyjwt
  3. 第三方天气接口不通
    优先使用高德、和风天气等官方正规 API,不要依赖免费小接口
  4. 智能体死循环/消息重复
    节点只返回需要更新的字段,不要覆盖整个 state

七、扩展方向

  • 支持任意城市天气查询
  • 增加多轮重试、异常处理机制
  • 接入工具调用(ToolCall)自动选择查询城市
  • 构建多智能体协作:计划者 + 执行者 + 总结者
  • 部署为 API 服务,提供前端调用

八、总结

本文通过LangGraph + 智谱AI + 高德天气API,完成了一个标准的企业级 LLM 自动化智能体开发流程。你学到了:

  • LangGraph 状态管理与条件路由
  • 大模型结构化输出(Pydantic)
  • 真实第三方 API 接入
  • 智能体工作流设计思想

这套架构可直接迁移到:自动化报告、批量数据查询、RAG 流程、多步骤任务执行等场景。

  • 博客园
  • 公众号行走之飞鱼
http://www.jsqmd.com/news/414144/

相关文章:

  • 分析上海地区靠谱的酸奶生产线品牌,特色定制价格多少钱 - 工业设备
  • 幸运水分仪好用吗,它在的价格和售后服务情况怎样? - myqiye
  • 好写作AI | 职场人的进阶利器:用好写作AI,让邮件和汇报更显专业
  • 2026 国内靠谱的无损分选机厂商哪家好?排行情况一览,智能无损选果机/无损选果机/冬枣选果机,分选机厂商推荐榜 - 品牌推荐师
  • 2026年2月京东卡回收平台推荐,安全回收流程全解析 - 品牌鉴赏师
  • 好写作AI | 跟好写作AI学写作:每天30分钟,见证文笔蜕变
  • 2026年桥式称重传感器厂家权威推荐榜:纽扣式测力传感器/轮辐式测力传感器/高精度测力传感器/高精度称重传感器/选择指南 - 优质品牌商家
  • 2026年国产语音客服机器人核心厂商盘点,头部品牌及真实案例展示 - 品牌2025
  • 2026年SaaS模式电话语音机器人厂商及支持语音识别厂商推荐 - 品牌2025
  • 2026年有哪些好用的工单系统,零售及汽车行业专属推荐 - 品牌2025
  • 2026年智能语音机器人厂商精选:技术赋能行业,方案适配多元需求 - 品牌2025
  • 2026年客服系统厂商优选:聚焦远程协助、知识库管理等核心需求 - 品牌2025
  • 2026年智能语音机器人厂商选型指南:性价比、品牌与实力全面盘点 - 品牌2025
  • 2026年高接通率电话语音机器人厂商,免费试用+优质售后厂商推荐 - 品牌2025
  • 四轮转向LQR控制路径跟踪仿真 Simulink和Carsim联合仿真,横向控制为前馈+反馈lqr
  • 专注 . 创新 我们的元征 - 速递信息
  • 2026年硅酸钙保温管选购指南:源头厂家考察要点,碳纤维增强硅酸钙板/硅酸钙保温板,硅酸钙保温管生产厂家口碑推荐 - 品牌推荐师
  • 2026 在线少儿编程 TOP3 测评:核桃、猿编程、学而思核心实力比拼 - 速递信息
  • 好写作AI | 写作路上的私教:好写作AI如何帮你复盘并提升文笔?
  • 2026年磁吸门帘厂家推荐:商场棉门帘、商场磁吸门帘、商店磁吸门帘、店铺磁吸门帘、磁吸门帘板材、西安磁吸门帘选择指南 - 优质品牌商家
  • Linux策略路由配置的多种实现方式 - wanghongwei
  • 好写作AI | 不会写开头?不会结尾?好写作AI给你N种满分示范
  • GEO引流获客哪家好用,西安布道传播值得选吗 - myqiye
  • 2026年国产称重传感器厂家推荐:垫圈式测力传感器/平面测力传感器/微量程称重传感器/悬臂梁式称重传感器/选择指南 - 优质品牌商家
  • 好写作AI | 从烂稿到佳作:好写作AI的智能润色功能有多强?
  • 点检巡检靠人盯、易遗漏?搭贝能自动派单提醒吗? - 搭贝
  • 电子取证数据安全
  • everything is agent
  • 探讨启程国际旅行社,旅游攻略专业吗,靠谱吗 - 工业品网
  • 青岛符合 “好房子” 标准的隔音品牌 TOP10 口碑榜:行业认证、技术实力与品质保障深度对比(附选型指南) - 资讯焦点