LangGraph 概览
用 LangGraph 掌控全局,设计能够可靠处理复杂任务的 Agent。
LangGraph 是一个低层级编排框架和运行时,用于构建、管理和部署长时间运行的有状态 Agent。包括 Klarna、Uber、J.P. Morgan 在内的众多前沿企业都在使用 LangGraph 来驱动他们的 Agent 应用。
LangGraph 非常底层,完全专注于 Agent 的编排(orchestration)。在使用 LangGraph 之前,我们建议你先熟悉构建 Agent 时用到的一些基础组件,比如模型和工具。
在文档中,我们经常使用 [LangChain](/tutorials/LangChain/LangChain 概览) 组件来集成模型和工具,但你并不一定需要 LangChain 才能使用 LangGraph。如果你刚开始接触 Agent,或者想要更高级的抽象,我们推荐使用 LangChain 的 Agent(createAgent),它为常见的 LLM 和工具调用循环提供了预置的架构。
LangGraph 聚焦于 Agent 编排所需的底层能力:持久化执行(durable execution)、流式输出(streaming)、人机协作(human-in-the-loop)等。
LangChain 产品矩阵是如何组合的
- Deep Agents 是一个 Agent 外壳(agent harness):在 LangGraph 之上提供规划、子代理、文件系统工具和上下文管理能力。
- [LangChain](/tutorials/LangChain/LangChain 概览) 是 Agent 框架:为模型、工具和 Agent 循环提供抽象和集成。
- LangGraph 是编排运行时:提供持久化执行、流式输出、人机协作和状态持久化。
- LangSmith 是跨框架的平台:用于追踪、评估、提示词管理和部署。
- LangSmith Engine 可以检测你的 LangGraph Agent 追踪中的问题并提出修复建议,你可以直接从 Engine 标签页提交修复 PR。
- LangSmith Fleet 是无代码 Agent 构建器,用于模板、集成和例行自动化。
你可以阅读 Frameworks, runtimes, and harnesses 来对比了解开源技术栈。
安装
npm install @langchain/langgraph @langchain/corepnpm add @langchain/langgraph @langchain/coreyarn add @langchain/langgraph @langchain/corebun add @langchain/langgraph @langchain/core安装完成后,来看一个简单的 Hello World 示例:
import { StateSchema, MessagesValue, type GraphNode, StateGraph, START, END } from "@langchain/langgraph";
// 定义状态结构,包含一个 messages 字段
const State = new StateSchema({
messages: MessagesValue,
});
// 定义一个模拟 LLM 节点,返回固定的 "hello world" 响应
const mockLlm: GraphNode<typeof State> = (state) => {
return { messages: [{ role: "ai", content: "hello world" }] };
};
// 构建图:START -> mock_llm -> END
const graph = new StateGraph(State)
.addNode("mock_llm", mockLlm)
.addEdge(START, "mock_llm")
.addEdge("mock_llm", END)
.compile();
await graph.invoke({ messages: [{ role: "user", content: "hi!" }] });TIP
使用 LangSmith 来追踪请求、调试 Agent 行为和评估输出。只需设置 LANGSMITH_TRACING=true 和你的 API Key 即可开始。建议同时启用 LangSmith Engine,它会自动监控追踪数据、发现问题并提出修复建议。
核心优势
LangGraph 为任意长时间运行的有状态工作流或 Agent 提供底层基础设施。它不会抽象掉提示词或架构,而是提供以下核心能力:
- 持久化:构建能够穿越故障、长时间运行的 Agent,并从上次中断的地方恢复执行。
- 人机协作:在任意节点检查和修改 Agent 状态,融入人类监督。
- 全面的记忆能力:创建有状态的 Agent,既有用于当前推理的短期工作记忆,也有跨会话的长期记忆。
- 使用 LangSmith 调试:通过可视化工具深入洞察复杂的 Agent 行为——追踪执行路径、捕获状态转换、提供详细的运行时指标。
- 生产级部署:使用专为有状态、长时间运行工作流设计的可扩展基础设施,自信地部署复杂的 Agent 系统。
LangGraph 与 LangChain 的关系: LangChain 的
createAgent构建在 LangGraph 之上,因此天然拥有 LangGraph 的持久化执行、人机协作等能力。如果你只需要快速搭建一个 Agent,推荐先用 LangChain;当你需要对执行流程进行更精细的控制时,再深入到 LangGraph 的底层 API。
LangGraph 生态系统
虽然 LangGraph 可以独立使用,但它也与 LangChain 的任何产品无缝集成,为开发者提供构建 Agent 的完整工具链。为了提升你的 LLM 应用开发体验,可以将 LangGraph 与以下工具搭配使用:
LangSmith 可观测性:在一个界面中追踪请求、评估输出、监控部署。在本地用 LangGraph 原型开发,然后迁移到生产环境时享受集成的可观测性和评估能力,构建更可靠的 Agent 系统。
LangSmith 部署:使用专为长时间运行的有状态工作流构建的部署平台,轻松部署和扩展 Agent。跨团队发现、复用、配置和共享 Agent,并在 Studio 中进行可视化原型迭代。
[LangChain](/tutorials/LangChain/LangChain 概览):提供集成和可组合组件来简化 LLM 应用开发,包含构建在 LangGraph 之上的 Agent 抽象。
致谢
LangGraph 的灵感来自 Pregel 和 Apache Beam。公共接口的设计受到了 NetworkX 的启发。LangGraph 由 LangChain Inc.(LangChain 的创造者)开发,但可以不依赖 LangChain 独立使用。
小结
LangGraph 是整个 LangChain 生态的编排基石——如果你需要精确控制 Agent 的执行流程、状态管理和错误恢复,LangGraph 就是你的工具。接下来的章节将从安装开始,带你一步步掌握 LangGraph 的使用方法。
本文基于 LangGraph 官方文档 翻译并二次创作。