使用指南¶
在这里,您将找到“我该如何…?”类型问题的答案。这些指南是**以目标为导向**且具体的;旨在帮助您完成特定任务。如需概念性解释,请参阅 概念指南。如需全面的操作流程,请查看 教程。如需每个类和函数的全面描述,请参阅 API 参考。
LangGraph¶
可控性¶
LangGraph 提供了对图执行的高水平控制。
这些使用指南展示了如何实现这种可控性。
持久性¶
LangGraph 持久性 使得在图运行之间(线程级持久性)及线程之间(跨线程持久性)持久化状态变得简单。这些使用指南展示了如何向图中添加持久性。
- 如何向图中添加线程级持久性
- 如何向子图添加线程级持久性
- 如何向图中添加跨线程持久性
- 如何使用 Postgres 检查点进行持久性
- 如何使用 MongoDB 检查点进行持久性
- 如何使用 Redis 创建自定义检查点
内存¶
LangGraph 使您能够轻松管理图中的对话 内存。这些使用指南展示了如何实现不同的策略。
人工智能-人类互动¶
人工智能-人类互动 功能允许您在图的决策过程中涉及人类。这些使用指南展示了如何在图中实现人类-循环的工作流程。
关键工作流程:
- 如何等待用户输入:一个基本示例,展示如何使用
interrupt函数在图中实现人类-循环工作流程。 - 如何审核工具调用:在工具调用请求执行前,使用
interrupt函数结合人类-循环来审核/编辑/接受工具调用请求。
其他方法:
- 如何添加静态断点:用于调试目的。对于 人类-循环 工作流程,我们建议使用
interrupt函数。 - 如何编辑图状态:使用
graph.update_state方法编辑图状态。如果通过 静态断点 实现 人类-循环 工作流程,请使用此方法。 - 如何使用
NodeInterrupt添加动态断点:不推荐:请使用interrupt函数 代替。
时间旅行¶
时间旅行 允许您在 LangGraph 应用中重放过去的操作,以探索替代路径和调试问题。这些使用指南展示了如何在图中使用时间旅行。
流式处理¶
流式处理 对于增强基于 LLM 的应用响应性至关重要。通过逐步显示输出,即使在完整响应尚未准备好之前,流式处理显著改善用户体验(UX),尤其是在处理 LLM 的延迟时。
- 如何流式处理您的图的完整状态
- 如何流式处理您图的状态更新
- 如何流式处理 LLM 令牌
- 如何流式处理不使用 LangChain 模型的 LLM 令牌
- 如何流式处理自定义数据
- 如何同时配置多种流式处理模式
- 如何在工具内流式处理事件
- 如何在不使用 LangChain 模型的工具内流式处理事件
- 如何从最终节点流式处理事件
- 如何从子图流式处理
- 如何禁用不支持流式处理的模型的流式处理
工具调用¶
工具调用 是一种聊天模型 API,它接受工具架构以及消息作为输入,并将这些工具的调用作为输出消息的一部分返回。
这些使用指南展示了 LangGraph 中工具调用的常见模式:
子图¶
子图 允许您从另一个图中重用现有图。这些使用指南展示了如何使用子图:
多智能体¶
多智能体系统 有助于将复杂的 LLM 应用分解为多个代理,每个代理负责应用的不同部分。这些使用指南展示了如何在 LangGraph 中实现多智能体系统:
请查看 多智能体教程 获取其他多智能体架构的实现。
状态管理¶
其他¶
- 如何异步运行图
- 如何可视化您的图
- 如何向您的图添加运行时配置
- 如何添加节点重试
- 如何强制函数调用代理结构化输出
- 如何为图运行传递自定义 LangSmith 运行 ID
- 如何在达到递归限制前返回状态
- 如何将 LangGraph 与 AutoGen、CrewAI 及其他框架集成
预构建 ReAct 代理¶
LangGraph 的 预构建 ReAct 代理 是一项 工具调用代理 的预构建实现。
LangGraph 的一个大好处是您可以轻松创建自己的代理架构。因此,虽然在这里快速构建代理是可以的,但我们强烈建议学习如何构建自己的代理,以便您能够充分利用 LangGraph。
这些指南展示了如何使用预构建的 ReAct 代理:
- 如何创建 ReAct 代理
- 如何向 ReAct 代理添加内存
- 如何向 ReAct 代理添加自定义系统提示
- 如何向 ReAct 代理添加人类-循环过程
- 如何从零开始创建预构建 ReAct 代理
- 如何为 ReAct 代理添加长期记忆的语义搜索
LangGraph 平台¶
本节包括 LangGraph 平台的使用指南。
LangGraph 平台是一个商业解决方案,用于在生产环境中部署代理应用,基于开源 LangGraph 框架构建。
LangGraph 平台提供了一些不同的部署选项,这些选项在 部署选项指南 中进行了描述。
Tip
- LangGraph 是一个基于 MIT 许可的开源库,我们致力于为社区维护和发展。
- 您可以始终使用开源 LangGraph 项目在自己的基础设施上部署 LangGraph 应用,而不使用 LangGraph 平台。
应用程序结构¶
学习如何设置您的应用以便部署到 LangGraph 平台:
- 如何设置应用以便部署(requirements.txt)
- 如何设置应用以便部署(pyproject.toml)
- 如何设置应用以便部署(JavaScript)
- 如何添加语义搜索
- 如何自定义 Dockerfile
- 如何进行本地测试
- 如何在运行时重建图
- 如何使用 LangGraph 平台部署 CrewAI、AutoGen 和其他框架
部署¶
LangGraph 应用程序可以使用 LangGraph Cloud 部署,提供一系列服务帮助您部署、管理和扩展您的应用程序。
助手¶
助手 是模板的配置实例。
线程¶
运行¶
LangGraph 平台支持多种运行类型,除了流式运行之外。
流式处理¶
流式输出您的 LLM 应用程序的结果对于确保良好的用户体验至关重要,尤其是在您的图可能调用多个模型并且完全完成一个运行需要较长时间的情况下。请阅读这些指南,以了解如何从您的图中流式传输值:
人工干预¶
在设计复杂图时,完全依赖 LLM 进行决策可能存在风险,特别是当涉及与文件、API 或数据库交互的工具时。这些交互可能会导致意外的数据访问或修改,取决于使用案例。为了减轻这些风险,LangGraph 允许您集成人工干预行为,确保您的 LLM 应用程序按预期正常运行而不产生不良后果。
双重发送¶
图执行可能需要一段时间,有时用户在其原始输入完成运行之前可能会改变想要发送的输入。例如,用户可能会注意到原始请求中的错字,并会编辑提示并重新发送。在这些情况下决定如何处理对于确保流畅的用户体验和防止您的图表现出意外方式非常重要。
Webhooks¶
定时任务¶
LangGraph Studio¶
LangGraph Studio 是一个内置的用户界面,可视化、测试和调试您的代理。
- 如何连接到 LangGraph Cloud 部署
- 如何连接到本地开发服务器
- 如何连接到本地部署(Docker)
- 如何在 LangGraph Studio 中测试您的图(仅限 MacOS)
- 如何在 LangGraph Studio 中与线程交互
故障排除¶
这些是解决您在使用 LangGraph 构建时可能遇到的常见错误的指南。以下引用的错误在代码中抛出时将具有相应的 lc_error_code 属性。