LangGraph #

什么是 LangGraph? #

LangGraph 是由 LangChain 团队开发的低级编排框架和运行时,专门用于构建、管理和部署长时间运行的有状态 Agent。它基于图结构来定义 Agent 的工作流程,提供了精确的控制和高度的可定制性。

文档结构 #

本指南按以下结构组织,循序渐进地帮助你掌握 LangGraph:

1. 入门基础 #

主题 描述 文档链接
LangGraph 简介 LangGraph 的定义、特点、历史与应用场景 intro.md
快速开始 5 分钟上手 LangGraph,运行第一个 Agent quickstart.md
核心概念 StateGraph、Node、Edge 等核心概念 core-concepts.md

2. 核心组件 #

主题 描述 文档链接
状态管理 定义和管理 Agent 状态 state-management.md
节点与边 构建工作流的核心元素 nodes-and-edges.md
工具使用 让 Agent 调用外部工具 tools.md

3. 进阶功能 #

主题 描述 文档链接
记忆与持久化 会话记忆和状态持久化 memory.md
人机交互 Human-in-the-Loop 模式 human-in-the-loop.md

4. 高级应用 #

主题 描述 文档链接
高级模式 多 Agent、并行执行等高级模式 advanced-patterns.md
部署与生产 生产环境部署指南 deployment.md

学习路径 #

text
入门阶段
├── LangGraph 简介
├── 快速开始
├── 核心概念
│
基础阶段
├── 状态管理
├── 节点与边
├── 工具使用
│
进阶阶段
├── 记忆与持久化
├── 人机交互
│
高级阶段
├── 高级模式
├── 生产部署
├── 最佳实践

LangGraph vs 其他框架 #

特性 LangGraph LangChain Agent AutoGPT
控制粒度 低级、精细 高级、抽象 自动化
循环支持 原生支持 有限支持 支持
状态管理 内置 需要额外处理 有限
持久化 内置 需要额外实现 有限
人机交互 原生支持 有限支持 有限
生产就绪 实验性

快速开始 #

安装 #

bash
pip install langgraph langchain-openai

第一个 Agent #

python
from langgraph.graph import StateGraph, MessagesState, START, END
from langgraph.prebuilt import ToolNode
from langchain_openai import ChatOpenAI
from langchain_core.tools import tool

@tool
def search(query: str) -> str:
    """搜索网络"""
    return f"搜索结果: {query}"

tools = [search]
llm = ChatOpenAI(model="gpt-4o-mini").bind_tools(tools)

def agent_node(state: MessagesState):
    response = llm.invoke(state["messages"])
    return {"messages": [response]}

def should_continue(state: MessagesState):
    if state["messages"][-1].tool_calls:
        return "tools"
    return END

graph = StateGraph(MessagesState)
graph.add_node("agent", agent_node)
graph.add_node("tools", ToolNode(tools))
graph.add_edge(START, "agent")
graph.add_conditional_edges("agent", should_continue)
graph.add_edge("tools", "agent")

app = graph.compile()
result = app.invoke({"messages": [("user", "搜索 LangGraph")]})

核心概念预览 #

StateGraph(状态图) #

python
from langgraph.graph import StateGraph
from typing import TypedDict

class State(TypedDict):
    messages: list
    documents: list

graph = StateGraph(State)

Nodes(节点) #

python
def agent_node(state: State):
    response = llm.invoke(state["messages"])
    return {"messages": [response]}

graph.add_node("agent", agent_node)

Edges(边) #

python
graph.add_edge(START, "agent")
graph.add_edge("tools", "agent")

graph.add_conditional_edges(
    "agent",
    should_continue,
    {"continue": "tools", "end": END}
)

Checkpointer(检查点) #

python
from langgraph.checkpoint.memory import MemorySaver

checkpointer = MemorySaver()
app = graph.compile(checkpointer=checkpointer)

适用场景 #

  • 智能客服系统:多轮对话、知识检索、人工接管
  • 代码助手:代码生成、审查、Bug 修复
  • 数据分析 Agent:自然语言查询、自动分析报告
  • 研究助手:文献调研、信息收集、报告撰写
  • 工作流自动化:审批流程、任务编排

LangGraph 的优势 #

text
✅ 精确控制
   - 完全控制 Agent 行为
   - 灵活的流程定义
   - 支持复杂逻辑

✅ 状态管理
   - 内置状态管理
   - 类型安全
   - 自动合并

✅ 持久化
   - 自动保存状态
   - 故障恢复
   - 暂停/继续

✅ 人机交互
   - 原生支持
   - 灵活的干预点
   - 状态修改

✅ 可观测性
   - 完整的执行追踪
   - 可视化调试
   - LangSmith 集成

资源推荐 #

开始学习 #

选择适合你的起点:


继续探索本指南,逐步掌握 LangGraph 技术,从新手成长为 AI Agent 开发专家!

最后更新:2026-03-30