2026/5/21 20:01:48
网站建设
项目流程
徐州企业网站推广,消防公司宣传册设计样本,一站式服务就像一个什么,用前端框架做自适应网站在过去的一年多里#xff0c;LLM 应用开发经历了一个显著的范式转移#xff1a;我们正在从构建 Chains 转向构建 Agents。如果你是 LangChain 的老用户#xff0c;你可能习惯了 LangChain Expression Language那种行云流水的链式调用。然而#xff0c;当你试图构建一个能自…在过去的一年多里LLM 应用开发经历了一个显著的范式转移我们正在从构建 Chains 转向构建 Agents。如果你是 LangChain 的老用户你可能习惯了 LangChain Expression Language那种行云流水的链式调用。然而当你试图构建一个能自我纠错、长期记忆、甚至能模拟多人协作的复杂 Agent 时你会发现“链”这种结构变得捉襟见肘。实不相瞒之前写Agents我基本不依赖外部框架一般直接用Python代码手写。最近接手一个其他同事的项目是用LangGraph写的所以就俗速成了一下把整理的文档分享出来吧。一、 为什么我们需要 LangGraph要理解 LangGraph首先要理解 DAG有向无环图 的局限性。1.1 链的困境开弓没有回头箭传统的 LangChain 就像一条工厂流水线。输入原料进去经过步骤 A、步骤 B、步骤 C最后输出产品。特点确定性强路径单一。缺点一旦开始无法回头。如果步骤 C 发现步骤 A 的结果有误整条链无法自动跳转回 A 重做。1.2 图的革命引入“循环”与“状态”真实的智能往往包含循环Loops。比如写代码写代码 - 运行 - 报错 - 看错误日志 - 修改代码 - 再运行。这是一个循环迭代的过程直到成功为止。LangGraph 的核心哲学在于循环能力Cyclic允许控制流回到之前的节点。状态主导Stateful不再只是传递字符串而是维护一个全局的“状态对象”State所有节点都在读取和修改这个共享状态。打个比方LangChain 是接力赛跑棒子数据传给下一个人跑完就结束。LangGraph 是一个项目会议室。白板上写着项目状态State不同的专家Nodes轮流走上白板更新内容项目经理Edges根据白板上的最新进展决定下一个叫谁上来或者是不是该打回去重做。二、 LangGraph 的重点概念在使用 LangGraph 之前我们需要了解几个基本概念1. State状态应用的记忆中枢这是图的“白板”。通常是一个 PythonTypedDict或 Pydantic 模型。它定义了在这个应用生命周期内我们需要追踪哪些数据聊天记录、中间结果、工具输出等。2. Nodes节点执行者节点本质上就是 Python 函数。ounter(line func(state) - new_state_update它们接收当前状态执行逻辑调用 LLM、查数据库、运行代码然后返回需要更新的数据。3. Edges边控制流边决定了“下一步去哪”。Normal Edge由于 A所以 B。Conditional Edge这是 Agent 的“大脑”。根据当前状态例如 LLM 是否决定调用工具动态决定跳到哪个节点。三、 实战构建一个会反思的 Agent在这个 Demo 中我们不仅让 AI 调用工具还赋予它循环执行的能力。如果 LLM 觉得需要工具它会进入工具节点执行完后强制循环回到 LLM 节点让 LLM 根据工具结果生成最终答案。3.1 环境准备ounter(line pip install langgraph langchain langchain-openai3.2 代码实现ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(line import operator from typing import Annotated, TypedDict, Union, Literal from langchain_openai import ChatOpenAI from langchain_core.tools import tool from langchain_core.messages import BaseMessage, HumanMessage, AIMessage from langgraph.graph import StateGraph, START, END from langgraph.prebuilt import ToolNode # --- 1. 定义状态 (The Memory) --- # 使用 add_messages 策略新的消息会 append 到列表末尾而不是覆盖 from langgraph.graph.message import add_messages class AgentState(TypedDict): # Annotated 允许我们定义状态更新的策略 messages: Annotated[list, add_messages] # --- 2. 定义工具 (The Tools) --- tool def get_weather(city: str): 获取指定城市的实时天气 # 模拟 API 返回 if 上海 in city: return 上海今天多云22摄氏度。 return 未知地区天气数据。 tools [get_weather] # --- 3. 初始化模型 (The Brain) --- # 绑定工具让 LLM 知道它有哪些能力 llm ChatOpenAI(modelgpt-4o, temperature0) llm_with_tools llm.bind_tools(tools) # --- 4. 定义节点逻辑 (The Workers) --- def agent_node(state: AgentState): Agent 节点负责思考和生成回复或者发起工具调用请求 messages state[messages] response llm_with_tools.invoke(messages) # 返回的内容会自动 merge 到 state[messages] 中 return {messages: [response]} # 利用 LangGraph 预构建的 ToolNode它会自动执行 tool_calls tool_node ToolNode(tools) # --- 5. 定义条件边逻辑 (The Router) --- def should_continue(state: AgentState) - Literal[tools, END]: 决策逻辑检查上一条消息是否包含工具调用 last_message state[messages][-1] # 如果 LLM 决定调用工具 if last_message.tool_calls: return tools # 否则任务结束 return END # --- 6. 构建图 (The Graph Assembly) --- workflow StateGraph(AgentState) # 添加节点 workflow.add_node(agent, agent_node) workflow.add_node(tools, tool_node) # 设置入口 workflow.add_edge(START, agent) # 添加条件边从 agent 出来后走 should_continue 逻辑 workflow.add_conditional_edges( agent, should_continue, ) # 关键循环工具执行完必须回到 agent让 LLM 看到结果并生成最终回复 workflow.add_edge(tools, agent) # 编译应用 app workflow.compile() # --- 7. 运行 (Execution) --- print( 开始运行 Agent ) inputs {messages: [HumanMessage(content上海今天天气怎么样)]} # stream 模式让我们能看到每一步的思考过程 for chunk in app.stream(inputs): for node_name, node_state in chunk.items(): print(f--- 节点: {node_name} 完成执行 ---) print(f最新消息: {node_state[messages][-1].content}) print(-------------------------------)四、 LangGraph 的重要特性如果仅仅是上面的循环普通的 Pythonwhile循环也能写。LangGraph 真正的威力在于以下两点1. Persistence持久化与记忆LangGraph 内置了 Checkpointer 机制。它可以将图的每一步状态自动保存到数据库Redis, Postgres 等。这意味着什么长程对话即使用户隔了三天再来你只需提供thread_idAgent 就能加载之前的状态State无缝继续。时光回溯你可以获取 Agent 以前的某个状态修改它然后从那里重新分叉运行。这对于调试和“反事实推理”极其有用。2. Human-in-the-loop在企业级应用中全自动的 Agent 是危险的比如自动退款、群发邮件。LangGraph 允许你在特定的节点前设置interrupt_before。工作流如下Agent 思考并决定“我要给用户退款 1000 元”。LangGraph 检测到下一步是敏感操作暂停运行保存当前状态。系统通知管理员。管理员在后台查看“Agent 要退款 1000 元是否批准”管理员点击“批准”或“修改为 500 元”。LangGraph 恢复运行Agent 继续执行。ounter(lineounter(lineounter(lineounter(lineounter(lineounter(line # 简单的 Human-in-the-loop 示例 memory MemorySaver() app workflow.compile( checkpointermemory, interrupt_before[tools] # 在执行工具前暂停 )最后如果你想真正掌握 LangGraph建议从以下路径入手跑通上面的 Demo。尝试添加一个checkpointer实现对话记忆。去官网查看 Multi-Agent 的案例学习如何让一个“写手 Agent”和一个“审核 Agent”互相配合工作。最后我在一线科技企业深耕十二载见证过太多因技术卡位而跃迁的案例。那些率先拥抱 AI 的同事早已在效率与薪资上形成代际优势我意识到有很多经验和知识值得分享给大家也可以通过我们的能力和经验解答大家在大模型的学习中的很多困惑。我整理出这套 AI 大模型突围资料包✅AI大模型学习路线图✅Agent行业报告✅100集大模型视频教程✅大模型书籍PDF✅DeepSeek教程✅AI产品经理入门资料完整的大模型学习和面试资料已经上传带到CSDN的官方了有需要的朋友可以扫描下方二维码免费领取【保证100%免费】为什么说现在普通人就业/升职加薪的首选是AI大模型人工智能技术的爆发式增长正以不可逆转之势重塑就业市场版图。从DeepSeek等国产大模型引发的科技圈热议到全国两会关于AI产业发展的政策聚焦再到招聘会上排起的长队AI的热度已从技术领域渗透到就业市场的每一个角落。智联招聘的最新数据给出了最直观的印证2025年2月AI领域求职人数同比增幅突破200%远超其他行业平均水平整个人工智能行业的求职增速达到33.4%位居各行业榜首其中人工智能工程师岗位的求职热度更是飙升69.6%。AI产业的快速扩张也让人才供需矛盾愈发突出。麦肯锡报告明确预测到2030年中国AI专业人才需求将达600万人人才缺口可能高达400万人这一缺口不仅存在于核心技术领域更蔓延至产业应用的各个环节。资料包有什么①从入门到精通的全套视频教程⑤⑥包含提示词工程、RAG、Agent等技术点② AI大模型学习路线图还有视频解说全过程AI大模型学习路线③学习电子书籍和技术文档市面上的大模型书籍确实太多了这些是我精选出来的④各大厂大模型面试题目详解⑤ 这些资料真的有用吗?这份资料由我和鲁为民博士共同整理鲁为民博士先后获得了北京清华大学学士和美国加州理工学院博士学位在包括IEEE Transactions等学术期刊和诸多国际会议上发表了超过50篇学术论文、取得了多项美国和中国发明专利同时还斩获了吴文俊人工智能科学技术奖。目前我正在和鲁博士共同进行人工智能的研究。所有的视频教程由智泊AI老师录制且资料与智泊AI共享相互补充。这份学习大礼包应该算是现在最全面的大模型学习资料了。资料内容涵盖了从入门到进阶的各类视频教程和实战项目无论你是小白还是有些技术基础的这份资料都绝对能帮助你提升薪资待遇转行大模型岗位。智泊AI始终秉持着“让每个人平等享受到优质教育资源”的育人理念通过动态追踪大模型开发、数据标注伦理等前沿技术趋势构建起前沿课程智能实训精准就业的高效培养体系。课堂上不光教理论还带着学员做了十多个真实项目。学员要亲自上手搞数据清洗、模型调优这些硬核操作把课本知识变成真本事如果说你是以下人群中的其中一类都可以来智泊AI学习人工智能找到高薪工作一次小小的“投资”换来的是终身受益应届毕业生无工作经验但想要系统学习AI大模型技术期待通过实战项目掌握核心技术。零基础转型非技术背景但关注AI应用场景计划通过低代码工具实现“AI行业”跨界。业务赋能 突破瓶颈传统开发者Java/前端等学习Transformer架构与LangChain框架向AI全栈工程师转型。获取方式有需要的小伙伴可以保存图片到wx扫描二v码免费领取【保证100%免费】**