资源描述
LangGraph 是 LangChain 官方推出的开源状态化图计算框架,专为构建可复用、可调试、支持循环与条件分支的多角色 LLM Agent 系统而设计。适用于复杂工作流编排、多智能体协作、带状态记忆的对话系统等场景,提供 Python 原生 API 与可视化调试能力,是当前主流 LLM 应用工程化落地的关键基础设施。
详细内容
# LangGraph:面向状态化多角色 Agent 的图计算框架
## 框架简介与定位
LangGraph 是由 LangChain 团队开发并维护的开源框架(GitHub: https://github.com/langchain-ai/langgraph),定位为 **LLM Agent 的底层运行时图引擎**。它在 LangChain 的链式(Chain)抽象基础上,引入有向图(Directed Acyclic/Cyclic Graph)模型,显式建模 Agent 的状态(State)、节点(Node)、边(Edge)及条件路由(Conditional Edge),支持循环、并行、中断恢复等高级控制流,填补了传统 LLM 编排框架对长期状态管理和复杂决策逻辑支持的空白。
## 核心特性
- **状态驱动架构(Stateful Execution)**:所有节点共享一个可序列化的 `State` 对象(如 `TypedDict` 或 Pydantic 模型),实现跨步骤的数据一致性与持久化感知。
- **循环与条件图(Cyclic & Conditional Graphs)**:原生支持带环图(如 `agent → tool → agent` 自修正循环),并通过 `conditional_edge` 实现基于状态的动态路由决策。
- **节点类型丰富**:内置 `StatelessNode`(纯函数)、`StatefulNode`(含副作用)、`ToolNode`(工具调用封装)、`StartNode`/`EndNode` 等,支持自定义节点行为。
- **内置调试与可观测性**:提供 `stream()` 接口逐帧输出执行轨迹,兼容 LangChain 的 `CallbackHandler`,支持集成 LangSmith 进行全链路追踪与性能分析。
- **无缝集成 LangChain 生态**:直接复用 LangChain 的 `LLM`、`Tool`、`Retriever`、`PromptTemplate` 等组件,无需适配层;同时兼容 `langchain-core` 的 `Runnable` 协议,可作为标准 `Runnable` 被嵌入更高层应用。
## 适用场景
- 多角色协作 Agent 系统(如:Researcher + Writer + Critic 三方协同生成报告)
- 具备反思与重试机制的自主 Agent(如:工具调用失败后自动修正提示词并重试)
- 需要长期状态维护的对话系统(如:客服 Agent 记忆用户历史偏好与未完成任务)
- 复杂业务流程编排(如:金融风控中多模型串联+人工审核节点介入)
- 教学与研究用途的可解释 Agent 行为建模与可视化分析
## 快速入门步骤
1. **安装依赖**:
```bash
pip install langgraph langchain-openai # 基础 + OpenAI 支持
# 或按需安装其他 LLM/Tool 适配器(如 langchain-anthropic, langchain-community)
```
2. **定义状态与节点**:
- 使用 `TypedDict` 或 `pydantic.BaseModel` 定义 `State` 结构
- 编写普通 Python 函数作为节点(接收 `State` 并返回更新后的 `State`)
3. **构建图**:
- 使用 `StateGraph(State)` 初始化图
- 调用 `.add_node(name, func)` 添加节点
- 使用 `.add_edge(from_node, to_node)` 或 `.add_conditional_edges()` 设置流转逻辑
- 调用 `.set_entry_point()` 和 `.set_finish_point()` 指定起止点
4. **编译并运行**:
```python
graph = builder.compile()
result = graph.invoke({"messages": [HumanMessage(content="Hello")]})
# 或使用 stream() 获取实时执行流
for chunk in graph.stream({"messages": [...]}, stream_mode="values"):
print(chunk)
```
## 生态与社区说明
LangGraph 是 LangChain 2.x 架构演进的核心组件,已深度整合至 LangChain 官方文档(https://langchain.com/docs/langgraph)与 LangSmith 平台(https://smith.langchain.com)。社区活跃度高,GitHub Star 数持续增长(截至 2024 年中已超 8k),官方提供完整教程、实战示例(如 `React Agent`、`Multi-agent Debate`)、API 参考与常见问题解答。开发者可通过 LangChain Discord 的 `#langgraph` 频道获取实时支持,并参与 GitHub Issues 与 Discussions 贡献改进提案。