LangGraph
快速入门
这些指南旨在帮助你快速上手 LangGraph。
- LangGraph 快速入门:构建一个能使用工具并记录对话历史的聊天机器人。添加人机协作功能,并探索"时间旅行"的工作原理。
- 常见工作流:概述使用 LangGraph 实现的、基于大语言模型(LLMs)的最常见工作流。
- LangGraph 服务器快速入门:在本地启动 LangGraph 服务器,并通过 REST API 和 LangGraph Studio 网页界面与之交互。
- 使用 LangGraph Cloud 快速部署:使用 LangGraph Cloud 部署 LangGraph 应用。
核心概念
这些指南解释了 LangGraph 框架背后的关键概念。
- 为什么选择 LangGraph?:介绍 LangGraph 这一用于构建基于大语言模型的智能代理应用库的设计动机。
- LangGraph 术语表:LangGraph 的工作流被设计为图结构,其中节点代表不同组件,边代表组件间的信息流动。本指南概述了与 LangGraph 图元相关的关键概念。
- 常见智能代理模式:智能代理使用大语言模型自主选择控制流来解决更复杂的问题!代理是许多大语言模型应用中的关键构建块。本指南解释了不同类型的代理架构及其在控制应用流程中的用法。
- 多代理系统:复杂的大语言模型应用通常可拆分为多个代理,每个代理负责应用的不同部分。本指南解释了构建多代理系统的常见模式。
- 断点:断点允许在特定点暂停图的执行,便于逐步调试图的运行过程。
- 人机协作:解释将人类反馈集成到 LangGraph 应用中的不同方式。
- 时间旅行:"时间旅行"允许你重放 LangGraph 应用中过去的操作,以探索替代路径和调试问题。
- 持久化:LangGraph 具有内置的持久化层,通过检查点实现。该持久化层支持人机协作、记忆、时间旅行和容错等强大功能。
- 记忆:AI 应用中的记忆指处理、存储和有效回忆过往交互信息的能力。有了记忆,你的代理可以从反馈中学习并适应用户偏好。
- 流式传输:流式传输对提升基于大语言模型构建的应用的响应性至关重要。通过逐步显示输出(甚至在完整响应准备好之前),流式传输显著改善了用户体验,尤其是在应对大语言模型的延迟问题时。
- 函数式 API:
@entrypoint
和@task
装饰器,可用于在现有代码库中添加 LangGraph 功能。 - 常见问题(FAQ):关于 LangGraph 的常见问题解答。
操作指南
这里你会找到"如何做......"类型问题的答案。这些指南以目标为导向且具体实用,旨在帮助你完成特定任务。
精细控制
这些指南展示了 LangGraph 中能对图的执行进行精细控制的功能。
持久化
持久化便于在图运行之间(线程内持久化)和线程之间(跨线程持久化)保存状态。这些操作指南展示了如何为图添加持久化功能。
查看以下指南,了解如何使用函数式 API 为工作流添加持久化:
记忆
LangGraph 便于在图中管理对话记忆。这些操作指南展示了如何实现不同的记忆管理策略。
人机协作
人机协作功能允许人类参与图的决策过程。这些操作指南展示了如何在图中实现人机协作工作流。
- 如何等待用户输入:一个基础示例,展示如何使用
interrupt
函数在图中实现人机协作工作流。 - 如何审核工具调用:利用
interrupt
函数,在工具调用请求执行前纳入人机协作环节进行审核、编辑或批准。 - 如何添加静态断点:用于调试目的。对于人机协作工作流,我们建议使用
interrupt
函数。 - 如何编辑图状态:使用
graph.update_state
方法编辑图状态。如果通过静态断点 实现人机协作工作流,可使用此方法。
查看以下指南,了解如何使用函数式 API 实现人机协作工作流:
时间旅行
时间旅行 允许你重放 LangGraph 应用中过去的操作,以探索替代路径和调试问题。这些操作指南展示了如何在图中使用时间旅行功能。
流式传输
流式传输 对提升基于大语言模型构建的应用的响应性至关重要。通过逐步显示输出(甚至在完整响应准备好之前),流式传输显著改善了用户体验,尤其是在应对大语言模型的延迟问题时。
- 如何流式传输图的完整状态
- 如何流式传输图的状态更新
- 如何流式传输大语言模型令牌
- 如何在不使用 LangChain 模型的情况下流式传输大语言模型令牌
- 如何流式传输自定义数据
- 如何配置多种流式传输模式
- 如何从工具内部流式传输事件
- 如何从最终节点流式传输
工具调用
子图
子图 允许你从另一个图中重用现有图。这些操作指南展示了如何使用子图:
多代理
查看多代理教程,了解其他多代理架构的实现。
查看以下指南,了解如何使用函数式 API 实现多代理工作流:
状态管理
其他
预制 ReAct 代理
查看以下指南,了解如何使用函数式 API 构建 ReAct 代理:
LangGraph 平台
本节包含 LangGraph 平台的操作指南。LangGraph 平台是一个基于开源 LangGraph 框架的商业解决方案,用于在生产环境中部署智能代理应用。它提供四种部署选项以满足不同需求:免费层级、自托管版本、云 SaaS 和自带云(BYOC)选项。你可以在部署选项指南中详细了解这些选项。
- LangGraph 是一个采用 MIT 许可的开源库,我们致力于为社区维护和发展它。
- 你始终可以使用开源的 LangGraph 项目在自己的基础设施上部署 LangGraph 应用,而无需使用 LangGraph 平台。
应用结构
了解如何设置应用以部署到 LangGraph 平台:
- 如何设置应用以进行部署(requirements.txt)
- 如何设置应用以进行部署(pyproject.toml)
- 如何设置应用以进行部署(JavaScript)
- 如何自定义 Dockerfile
- 如何在本地测试
- 如何将 LangGraph 集成到 React 应用中
部署
LangGraph 应用可以使用 LangGraph Cloud 进行部署,该平台提供一系列服务来帮助你部署、管理和扩展应用。
助手
助手 是模板的配置实例。
线程
运行
LangGraph Cloud 支持除流式运行之外的多种运行类型。
流式传输
流式传输大语言模型应用的结果对于确保良好的用户体验至关重要,尤其是当你的图可能调用多个模型且需要很长时间才能完全完成一次运行时。在这些操作指南中了解如何从图中流式传输值:
前端与生成式 UI
借助 LangGraph 平台,你可以将 LangGraph 代理集成到 React 应用中,并将 UI 组件与代理代码放在一起。
人机协作
在创建复杂的图时,将所有决策都交给大语言模型可能存在风险,尤其是当决策涉及调用特定工具或访问特定文档时。为解决此问题,LangGraph 允许你插入人机协作行为,以确保图不会产生不良结果。在这些操作指南中了解为 LangGraph Cloud 项目添加人机协作功能的不同方式:
重复发送
图的执行可能需要一段时间,有时用户在其原始输入完成运行之前可能会改变主意,想要发送新的输入。例如,用户可能会注意到其原始请求中的拼写错误,并会编辑提示并重新发送。在这些情况下做出正确的处理决策,对于确保流畅的用户体验和防止图出现意外行为至关重要。以下操作指南提供了有关 LangGraph Cloud 为处理重复发送问题提供的各种选项的信息:
Webhooks
定时任务
LangGraph Studio
LangGraph Studio 是一个内置 UI,用于可视化、测试和调试你的代理。
故障排除
这些指南用于解决在使用 LangGraph 构建应用时可能遇到的常见错误。下面提到的错误在代码中抛出时,会具有一个 lc_error_code
属性,该属性对应于以下代码之一。