为什么选择 LangGraph?

在 AI 世界中,检索增强生成(RAG)系统已广泛用于处理简单查询,生成上下文相关回答。

但随着 AI 应用复杂度不断提升,我们迫切需要一种能执行多步推理、保持状态和具备动态决策能力的智能体系统

这正是 LangGraph 登场的舞台:

💡 LangGraph 是 LangChain 的高级扩展,支持具备状态管理与循环控制能力的多角色智能体。

✨ LangGraph 的核心优势

LangGraph 通过无缝管理图结构、状态和智能体协作,重新定义了 AI 应用的开发方式:

LangGraph 的结构概念图(包括节点、状态与边的关系)

✅ 功能亮点:

状态自动管理:跨轮对话中持续保留上下文•多工具调度协调:多角色、多工具之间高效协作•循环计算能力:支持反复推理与修正•灵活+可扩展+稳定:适用于原型验证到企业部署

🔨 项目目标示例

我们将通过一个实战案例来构建智能体:

💬 根据用户每月电费计算太阳能节省效果的 AI 助手

📌 应用场景:

•可部署在太阳能销售网站上•与访客互动、收集数据、给出节省建议•同时辅助销售线索筛选,实现业务转化

🧱 开发步骤详解

🚦 第 1 步:导入必要的库

from langchain_core.tools import toolfrom langchain_community.tools.tavily_search importTavilySearchResultsfrom langchain_core.prompts importChatPromptTemplatefrom langchain_core.runnables importRunnablefrom langchain_aws importChatBedrockimport boto3from typing importAnnotatedfrom typing_extensions importTypedDictfrom langgraph.graph.message importAnyMessage, add_messagesfrom langchain_core.messages importToolMessagefrom langchain_core.runnables importRunnableLambdafrom langgraph.prebuilt importToolNode, tools_condition

🧮 第 2 步:定义节能计算工具

@tooldef compute_savings(monthly_cost:float)->float:"""工具功能:根据用户每月电费计算切换到太阳能后的潜在节省。
参数:        monthly_cost (float):用户当前每月电费支出(单位:美元)
返回:        dict:包含以下内容的字典:-'number_of_panels':预计所需太阳能板数量-'installation_cost':安装费用估算-'net_savings_10_years':安装后10年内的净节省金额"""def calculate_solar_savings(monthly_cost):# 计算的基础假设值        cost_per_kWh =0.28# 每度电(千瓦时)价格(美元)        cost_per_watt =1.50# 每瓦安装成本(美元)        sunlight_hours_per_day =3.5# 平均每日日照时长(小时)        panel_wattage =350# 单块太阳能板功率(瓦)        system_lifetime_years =10# 系统使用年限
# 用户每月用电量(kWh)        monthly_consumption_kWh = monthly_cost / cost_per_kWh
# 系统所需功率(千瓦)        daily_energy_production = monthly_consumption_kWh /30        system_size_kW = daily_energy_production / sunlight_hours_per_day
# 计算面板数量和安装成本        number_of_panels = system_size_kW *1000/ panel_wattage        installation_cost = system_size_kW *1000* cost_per_watt
# 年节省金额与10年净收益        annual_savings = monthly_cost *12        total_savings_10_years = annual_savings * system_lifetime_years        net_savings = total_savings_10_years - installation_cost
return{"number_of_panels": round(number_of_panels),"installation_cost": round(installation_cost,2),"net_savings_10_years": round(net_savings,2)}
# 返回计算结果return calculate_solar_savings(monthly_cost)
📈 工具返回结果:

•所需太阳能板数量•安装成本估算•十年期净节省金额

🧩 第 3 步:状态管理与错误处理

处理工具执行异常
def handle_tool_error(state)-> dict:"""工具执行出错时的错误处理函数。
参数:        state (dict):当前 AI 智能体的状态,包含消息内容和工具调用信息。
返回:        dict:包含每个出错工具对应错误消息的字典。"""# 从状态中提取错误信息    error = state.get("error")
# 获取最近一条消息中的工具调用记录    tool_calls = state["messages"][-1].tool_calls
# 返回包含错误提示的 ToolMessage 列表,每个消息关联一个 tool_call_idreturn{"messages":[ToolMessage(                content=f"Error: {repr(error)}\n 请修复错误。",                tool_call_id=tc["id"],)for tc in tool_calls]}
创建带回退机制的工具节点
def create_tool_node_with_fallback(tools: list)-> dict:"""创建包含错误回退机制的工具节点。
参数:        tools (list):要包含在节点中的工具列表。
返回:        dict:一个支持错误处理回退的工具节点。"""returnToolNode(tools).with_fallbacks([RunnableLambda(handle_tool_error)],        exception_key="error")

🧠 第 4 步:定义状态结构与助手类

状态结构State

classState(TypedDict):    messages:Annotated[list[AnyMessage], add_messages]

助手类 Assistant

classAssistant:def __init__(self, runnable:Runnable):# 初始化,接收定义好流程的 runnable 对象self.runnable = runnable
def __call__(self, state:State):whileTrue:# 使用当前状态调用 runnable            result =self.runnable.invoke(state)
# 如果没有工具调用结果,或者内容为空,则重新请求有效输出ifnot result.tool_calls and(not result.contentor isinstance(result.content, list)andnot result.content[0].get("text")):                messages = state["messages"]+[("user","请返回有效输出。")]                state ={**state,"messages": messages}else:break# 成功获取有效结果,退出循环
# 返回最终消息状态return{"messages": result}

🧱 第 5 步:使用 AWS Bedrock 配置 LLM

def get_bedrock_client(region):return boto3.client("bedrock-runtime", region_name=region)
def create_bedrock_llm(client):returnChatBedrock(        model_id='anthropic.claude-3-sonnet-20240229-v1:0',        client=client,        model_kwargs={'temperature':0},        region_name='us-east-1')
llm = create_bedrock_llm(get_bedrock_client(region='us-east-1'))

✅ 确保你已设置 AWS 凭证,否则助手无法访问 Bedrock 模型。

🧭 第 6 步:定义助手工作流程

话提示模板

primary_assistant_prompt =ChatPromptTemplate.from_messages([("system",'''你是 Solar Panels Belgium 的客户支持助手。你需要向用户获取以下信息:-每月电费支出
如果无法识别,请请求用户澄清,切勿胡乱猜测。收集完毕后,请调用相应工具。'''),("placeholder","{messages}"),])

工具绑定与执行流定义

# 定义助手会使用的工具part_1_tools =[    compute_savings]
# 将工具绑定到助手的工作流程中part_1_assistant_runnable = primary_assistant_prompt | llm.bind_tools(part_1_tools)

🔄 第 7 步:构建 LangGraph 图结构

在这一步中,我们使用 LangGraph 来构建 AI 助手的图结构,控制它如何处理用户输入、调用工具并在不同阶段之间流转。

builder =StateGraph(State)builder.add_node("assistant",Assistant(part_1_assistant_runnable))builder.add_node("tools", create_tool_node_with_fallback(part_1_tools))
builder.add_edge(START,"assistant")# 从助手开始builder.add_conditional_edges("assistant", tools_condition)# 根据输入跳转到工具builder.add_edge("tools","assistant")# 工具执行后返回助手
memory =MemorySaver()graph = builder.compile(checkpointer=memory)

▶️ 第 8 步:运行 AI 助手

import uuid
# 示例用户问题列表tutorial_questions =['hey','can you calculate my energy saving',"my montly cost is $100, what will i save"]
# 创建唯一线程 ID,用于会话追踪thread_id = str(uuid.uuid4())
# 配置上下文config ={"configurable":{"thread_id": thread_id,}}
# 存储已打印事件(防止重复)_printed =set()
# 模拟与助手的对话流for question in tutorial_questions:    events = graph.stream({"messages":("user", question)}, config, stream_mode="values")foreventin events:        _print_event(event, _printed)

✅ 总结

通过以上 8 个步骤,你成功构建了一个支持多轮交互、状态记忆、错误处理与工具调度的智能太阳能节能助手

🎯 LangGraph 的价值体现在:

•高度模块化与逻辑清晰的图式结构•灵活调用工具,响应用户个性化需求•支持真实业务场景(如能源、客服、营销)部署

💡 不论是构建客服智能体、节能顾问,还是更复杂的 AI 应用,LangGraph 都为你提供强大的基础设施和开发范式。

普通人如何抓住AI大模型的风口?

领取方式在文末

为什么要学习大模型?

目前AI大模型的技术岗位与能力培养随着人工智能技术的迅速发展和应用 , 大模型作为其中的重要组成部分 , 正逐渐成为推动人工智能发展的重要引擎 。大模型以其强大的数据处理和模式识别能力, 广泛应用于自然语言处理 、计算机视觉 、 智能推荐等领域 ,为各行各业带来了革命性的改变和机遇 。

目前,开源人工智能大模型已应用于医疗、政务、法律、汽车、娱乐、金融、互联网、教育、制造业、企业服务等多个场景,其中,应用于金融、企业服务、制造业和法律领域的大模型在本次调研中占比超过 30%。
在这里插入图片描述

随着AI大模型技术的迅速发展,相关岗位的需求也日益增加。大模型产业链催生了一批高薪新职业:
在这里插入图片描述

人工智能大潮已来,不加入就可能被淘汰。如果你是技术人,尤其是互联网从业者,现在就开始学习AI大模型技术,真的是给你的人生一个重要建议!

最后

只要你真心想学习AI大模型技术,这份精心整理的学习资料我愿意无偿分享给你,但是想学技术去乱搞的人别来找我!

在当前这个人工智能高速发展的时代,AI大模型正在深刻改变各行各业。我国对高水平AI人才的需求也日益增长,真正懂技术、能落地的人才依旧紧缺。我也希望通过这份资料,能够帮助更多有志于AI领域的朋友入门并深入学习。

真诚无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发

【附赠一节免费的直播讲座,技术大佬带你学习大模型的相关知识、学习思路、就业前景以及怎么结合当前的工作发展方向等,欢迎大家~】
在这里插入图片描述

大模型全套学习资料展示

自我们与MoPaaS魔泊云合作以来,我们不断打磨课程体系与技术内容,在细节上精益求精,同时在技术层面也新增了许多前沿且实用的内容,力求为大家带来更系统、更实战、更落地的大模型学习体验。

图片

希望这份系统、实用的大模型学习路径,能够帮助你从零入门,进阶到实战,真正掌握AI时代的核心技能!

01 教学内容

图片

  • 从零到精通完整闭环:【基础理论 →RAG开发 → Agent设计 → 模型微调与私有化部署调→热门技术】5大模块,内容比传统教材更贴近企业实战!

  • 大量真实项目案例: 带你亲自上手搞数据清洗、模型调优这些硬核操作,把课本知识变成真本事‌!

02适学人群

应届毕业生‌: 无工作经验但想要系统学习AI大模型技术,期待通过实战项目掌握核心技术。

零基础转型‌: 非技术背景但关注AI应用场景,计划通过低代码工具实现“AI+行业”跨界‌。

业务赋能突破瓶颈: 传统开发者(Java/前端等)学习Transformer架构与LangChain框架,向AI全栈工程师转型‌。

image.png

vx扫描下方二维码即可
【附赠一节免费的直播讲座,技术大佬带你学习大模型的相关知识、学习思路、就业前景以及怎么结合当前的工作发展方向等,欢迎大家~】
在这里插入图片描述

本教程比较珍贵,仅限大家自行学习,不要传播!更严禁商用!

03 入门到进阶学习路线图

大模型学习路线图,整体分为5个大的阶段:
图片

04 视频和书籍PDF合集

图片

从0到掌握主流大模型技术视频教程(涵盖模型训练、微调、RAG、LangChain、Agent开发等实战方向)

图片

新手必备的大模型学习PDF书单来了!全是硬核知识,帮你少走弯路(不吹牛,真有用)
图片

05 行业报告+白皮书合集

收集70+报告与白皮书,了解行业最新动态!
图片

06 90+份面试题/经验

AI大模型岗位面试经验总结(谁学技术不是为了赚$呢,找个好的岗位很重要)图片
在这里插入图片描述

07 deepseek部署包+技巧大全

在这里插入图片描述

由于篇幅有限

只展示部分资料

并且还在持续更新中…

真诚无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发

【附赠一节免费的直播讲座,技术大佬带你学习大模型的相关知识、学习思路、就业前景以及怎么结合当前的工作发展方向等,欢迎大家~】
在这里插入图片描述

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐