01 LangGraph 概述与快速入门
01 LangGraph 概述与快速入门一、什么是 LangGraphLangGraph 是一个低级编排框架和运行时环境用于构建、管理和部署长期运行的有状态智能体Agent。核心理念将 Agent 工作流建模为图Graph。组件说明类比节点Nodes计算单元可以是 LLM 调用、工具执行或自定义逻辑流程图中的操作框边Edges定义节点之间的转换逻辑决定执行流程流程图中的箭头状态State整个图执行过程中共享和传递的数据流程中传递的文件夹核心能力能力说明持久化执行构建能从故障中恢复并长时间运行的智能体人机协作在任何时刻检查和修改智能体状态记忆管理支持短期工作记忆和跨会话的长期记忆流式处理专为流式工作流设计生产级部署为有状态、长期运行的工作流提供可扩展基础设施二、与 LangChain 的区别维度LangChainLangGraph抽象层级高级抽象低级细粒度控制执行模型线性链式图结构可循环、可分支状态管理有限内置持久化、检查点适用场景简单 RAG、链式调用复杂多智能体、需要精细控制一句话总结当 LLM 应用需要「有状态、可循环、可分支的多步骤控制流」时必须用 LangGraph。三、环境安装# 创建虚拟环境conda create-nlanggraphpython3.12conda activate langgraph# 安装 LangGraphpipinstalllanggraph1.0.5# 验证安装pip show langgraph四、编程五步法使用 LangGraph 构建应用的固定流程定义状态State → 数据结构定义节点函数Node Functions → 处理逻辑创建 builder添加节点和边→ 组装图编译 graph→ 生成可执行对象调用 graph→ 运行并获取结果五、快速入门示例 快速入门RAG 并行检索 汇总问答系统 图结构 START ──→ rag_search_node ──→ final_answer_node ──→ END │ ↑ └──→ web_search_node ─────────────────────────────────┘ 运行方式python 01_快速入门.py fromtypingimportTypedDictfromlanggraph.constantsimportSTART,ENDfromlanggraph.graphimportStateGraph# 1. 定义状态classMyState(TypedDict):rag_result:strweb_search_result:strquery:strfinal_answer:str# 2. 定义节点函数defrag_search_node(state:MyState):querystate[query]rag_resultf关于「{query}」的知识库检索结果print(f[RAG] 检索完成)return{rag_result:rag_result}defweb_search_node(state:MyState):querystate[query]web_search_resultf关于「{query}」的联网搜索结果print(f[Web] 搜索完成)return{web_search_result:web_search_result}deffinal_answer_node(state:MyState):ragstate[rag_result]webstate[web_search_result]final_answerf综合回答{rag}{web}return{final_answer:final_answer}# 3. 创建 builder添加节点和边graphStateGraph(state_schemaMyState)graph.add_node(rag_search_node)graph.add_node(web_search_node)graph.add_node(final_answer_node)graph.add_edge(START,rag_search_node)graph.add_edge(START,web_search_node)graph.add_edge(rag_search_node,final_answer_node)graph.add_edge(web_search_node,final_answer_node)graph.add_edge(final_answer_node,END)# 4. 编译compiled_graphgraph.compile()# 5. 调用if__name____main__:resultcompiled_graph.invoke({query:如何使用LangGraph})print(f最终结果:{result})# 可视化图结构print(compiled_graph.get_graph().draw_ascii())相关笔记[[15-大模型概述/01-大模型入门.md|大模型入门]] · [[02-状态]] · [[03-节点]] · [[04-边]] · [[05-子图Subgraph|子图]] · [[06-持久化Persistence|持久化]] · [[07-人机协作Human-in-the-loop|人机协作]]