操作指南
如何在 LangGraph.js 中完成常见任务
操作指南
在这里,你可以找到回答“如何……?”类型问题的答案。这些指南是目标导向和具体的;它们旨在帮助你完成特定的任务。有关概念性解释,请参阅概念指南。有关端到端的分步教程,请参阅教程。有关每个类和函数的完整描述,请参阅API 参考。
安装
LangGraph
可控性
LangGraph.js 以其高度可控的代理框架而闻名。 这些操作指南展示了如何实现这种可控性。
持久化
LangGraph.js 可以轻松地在图运行之间持久化状态。下面的指南展示了如何为你的图添加持久化。
有关如何使用函数式 API 为工作流添加持久化的指南,请参阅:
记忆
LangGraph 可以轻松管理图中的对话记忆。这些操作指南展示了如何实现不同的记忆策略。
Human-in-the-loop
Human-in-the-loop 功能允许你让真人参与图的决策过程。这些操作指南展示了如何在图中实现 human-in-the-loop 工作流。
关键工作流:
- 如何等待用户输入:一个基本示例,展示了如何使用
interrupt函数在图中实现 human-in-the-loop 工作流。 - 如何审查工具调用:使用
interrupt函数,在工具调用请求执行前实现 human-in-the-loop 来审查/编辑/接受这些请求。
其他方法:
- 如何添加静态断点:用于调试目的。对于 human-in-the-loop 工作流,我们建议使用
interrupt函数。 - 如何编辑图状态:使用
graph.update_state方法编辑图状态。如果通过静态断点实现 human-in-the-loop 工作流,请使用此方法。 - 如何使用
NodeInterrupt添加动态断点:不推荐:请改用interrupt函数。
有关如何使用函数式 API 实现 human-in-the-loop 工作流的指南,请参阅:
时间旅行
时间旅行 允许你在 LangGraph 应用中回放过去的操作,以探索替代路径和调试问题。这些操作指南展示了如何在图中使用时间旅行。
流式处理
LangGraph 是专为流式处理而构建的。 这些指南展示了如何使用不同的流式模式。
- 如何流式传输图的完整状态
- 如何流式传输图的状态更新
- 如何流式传输 LLM token
- 如何在没有 LangChain 模型的情况下流式传输 LLM token
- 如何流式传输自定义数据
- 如何配置多种流式模式
- 如何从工具中流式传输事件
- 如何从最终节点进行流式传输
工具调用
子图
子图 允许你从一个图中复用另一个图。这些操作指南展示了如何使用子图:
多代理
有关其他多代理架构的实现,请参阅多代理教程。
有关如何使用函数式 API 实现多代理工作流的指南,请参阅:
状态管理
其他
预构建的 ReAct 代理
- 如何创建 ReAct 代理
- 如何为 ReAct 代理添加记忆
- 如何为 ReAct 代理添加系统提示
- 如何为 ReAct 代理添加 Human-in-the-loop
- 如何从 ReAct 代理返回结构化输出
有关如何使用函数式 API 构建 ReAct 代理的指南,请参阅:
LangGraph Platform
本节包含 LangGraph Platform 的操作指南。
LangGraph Platform 是一个用于在生产环境中部署代理应用的商用解决方案,基于开源的 LangGraph 框架构建。它提供了四种部署选项以满足不同需求:免费版、自托管版、云 SaaS 版以及 BYOC(自带云)选项。你可以在部署选项指南中详细了解这些选项。
:::tip
- LangGraph 是一个 MIT 许可的开源库,我们致力于维护和促进其在社区中的发展。
- 你可以随时使用开源的 LangGraph 项目在你自己的基础设施上部署 LangGraph 应用,而无需使用 LangGraph Platform。
应用结构
了解如何设置你的应用以部署到 LangGraph Platform:
- 如何设置应用以进行部署(requirements.txt)
- 如何设置应用以进行部署(pyproject.toml)
- 如何设置应用以进行部署(JavaScript)
- 如何自定义 Dockerfile
- 如何在本地测试
- 如何将 LangGraph 集成到你的 React 应用中
部署
LangGraph 应用可以使用 LangGraph Cloud 进行部署,它提供了一系列服务来帮助你部署、管理和扩展你的应用。
认证与访问控制
修改 API
Assistants
Assistants 是模板的配置实例。
线程
运行
LangGraph Cloud 除了支持流式运行外,还支持多种类型的运行。
流式处理
流式传输你的 LLM 应用的结果对于确保良好的用户体验至关重要,特别是当你的图可能调用多个模型并需要很长时间才能完成一次运行时。在这些操作指南中,了解如何从图中流式传输值:
前端与生成式 UI
借助 LangGraph Platform,你可以将 LangGraph 代理集成到你的 React 应用中,并将 UI 组件与代理代码放在同一位置。
Human-in-the-loop
在创建复杂的图时,让每个决定都由 LLM 做出可能是危险的,特别是当这些决定涉及调用某些工具或访问特定文档时。为了解决这个问题,LangGraph 允许你插入 human-in-the-loop 行为,以确保你的图不会产生不必要的结果。在这些操作指南中,详细了解你可以将 human-in-the-loop 功能添加到 LangGraph Cloud 项目的不同方式:
重复输入(Double-texting)
图执行可能需要一段时间,有时用户可能在原始输入完成运行之前改变主意,想要发送不同的输入。例如,用户可能会注意到原始请求中有拼写错误,并会编辑提示词重新发送。在这些情况下,决定做什么对于确保流畅的用户体验并防止你的图以意想不到的方式运行非常重要。以下操作指南提供了有关 LangGraph Cloud 为你提供的处理重复输入的各种选项的信息:
Webhooks
定时任务
LangGraph Studio
LangGraph Studio 是一个用于可视化、测试和调试代理的内置 UI。
故障排除
这些是用于解决你在使用 LangGraph 构建时可能遇到的常见错误的指南。下面引用的错误在代码中抛出时将具有相应的 lc_error_code 属性。