第四章:大模型(LLM)

第八部分:Agent 教程

第五节:LangGraph 简介与用法介绍


1. 什么是 LangGraph

LangGraph 是一种基于 图(Graph)结构 的工作流编排工具,用于管理和执行大模型应用中的复杂流程。
它将 节点(Node)边(Edge) 的思想引入到 Agent 架构中,使得开发者能够清晰定义 数据流动、工具调用、模型推理、状态管理 等过程。

  • LangChain 的扩展:LangGraph 构建在 LangChain 基础上,更适合构建多步骤、多工具交互的应用。

  • 状态驱动:LangGraph 使用状态机思想来管理执行过程,确保可控、可追踪。

  • 可视化:开发者能用图的形式直观理解 agent 的执行逻辑。


2. LangGraph 的核心概念
  • Graph(图):表示整个工作流。

  • Node(节点):执行的单元,可能是一个 LLM 调用、工具函数调用、条件判断等。

  • Edge(边):节点之间的连接,表示数据流和执行顺序。

  • State(状态):全局或局部上下文,存储当前执行的中间结果。


3. 使用场景
  • 复杂的 Agent 设计:需要多个工具和 LLM 组合决策。

  • 可控执行:保证流程符合预期,不会出现无限循环或不可控行为。

  • 可视化与调试:便于追踪每一步执行逻辑。


4. LangGraph 的基本用法

① 定义节点

from langgraph.graph import StateGraph

# 定义状态
class AgentState:
    question: str
    answer: str

# 定义节点函数
def llm_node(state: AgentState):
    state.answer = f"回答: {state.question}"
    return state

② 定义图结构

graph = StateGraph(AgentState)

# 添加节点
graph.add_node("LLM解析", llm_node)

# 设置开始与结束节点
graph.set_entry_point("LLM解析")
graph.set_finish_point("LLM解析")

# 编译图
app = graph.compile()

③ 执行

result = app.invoke({"question": "LangGraph 是什么?"})
print(result["answer"])

5. 与传统 Agent 的对比
特点 传统 Agent 基于 LangGraph 的 Agent
流程控制 决策不透明,依赖 LLM 选择工具 由图结构定义,流程更可控
可视化 不直观 节点-边关系直观展示
复杂任务 难以维护 易于扩展和维护
调试 依赖日志 可视化追踪执行路径

6. 小结

LangGraph 提供了一种 图结构化 的方式来设计和管理 Agent,适合 复杂任务编排多工具调用 的应用场景。它既继承了 LangChain 的灵活性,又增强了可控性与可维护性,是构建生产级 LLM 应用的重要工具。

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐