Skip to main content
本指南回顾了常见的工作流和智能体模式。
  • 工作流具有预定的代码路径,旨在按特定顺序运行。
  • 智能体是动态的,定义自己的流程和工具使用。
智能体工作流 LangGraph 在构建智能体和工作流时提供多种优势,包括 持久化流式传输,以及对调试和 部署 的支持。

设置

要构建工作流或智能体,您可以使用支持结构化输出和工具调用的 任何聊天模型。以下示例使用 Anthropic:
  1. 安装依赖项:
  1. 初始化 LLM:

LLM 与增强功能

工作流和智能体系统基于 LLM 以及您添加的各种增强功能。工具调用结构化输出短期记忆 是定制 LLM 以满足您需求的几个选项。 LLM 增强功能

提示链

提示链是指每个 LLM 调用处理前一个调用的输出。它通常用于执行定义明确的任务,这些任务可以分解为更小的、可验证的步骤。一些示例包括:
  • 将文档翻译成不同的语言
  • 验证生成内容的一致性
提示链

并行化

通过并行化,LLM 同时处理任务。这可以通过同时运行多个独立的子任务,或者多次运行同一任务以检查不同输出来完成。并行化通常用于:
  • 拆分子任务并并行运行它们,从而提高速度
  • 多次运行任务以检查不同输出,从而提高置信度
一些示例包括:
  • 运行一个处理文档关键词的子任务,以及另一个检查格式错误的子任务
  • 多次运行一个根据标准(如引用数量、来源数量及来源质量)对文档进行评分的任务
并行化

路由

路由工作流处理输入,然后将其定向到特定上下文的任务。这允许您为复杂任务定义专用流程。例如,构建用于回答产品相关问题的流程可能会先处理问题类型,然后将请求路由到定价、退款、退货等的特定流程。 路由

编排器 - 工作者

在编排器 - 工作者配置中,编排器:
  • 将任务分解为子任务
  • 将子任务委托给工作者
  • 将工作者输出综合为最终结果
工作者 编排器 - 工作者工作流提供更灵活性,通常在子任务无法像 并行化 那样预先定义时使用。这在编写代码或需要在多个文件中更新内容的流程中很常见。例如,需要更新多个 Python 库的安装说明的流程,且涉及未知数量的文档,可能会使用此模式。

在 LangGraph 中创建工作者

编排器 - 工作者工作流很常见,LangGraph 内置支持它们。Send API 允许您动态创建工作节点并向其发送特定输入。每个工作者都有自己的状态,所有工作者输出都写入共享状态键,编排器图可访问该键。这使编排器能够访问所有工作者输出,并将其综合为最终输出。下面的示例遍历章节列表,并使用 Send API 将每个章节发送给每个工作者。

评估器 - 优化器

在评估器 - 优化器工作流中,一个 LLM 调用创建响应,另一个评估该响应。如果评估器或 人工介入 确定响应需要改进,则提供反馈并重新创建响应。此循环持续进行,直到生成可接受的响应。 当任务有特定的成功标准但需要迭代才能满足时,通常使用评估器 - 优化器工作流。例如,在两种语言之间翻译文本时,并不总是能完美匹配。可能需要几次迭代才能生成在两种语言中具有相同含义的翻译。 评估器 - 优化器

智能体

智能体通常实现为使用 工具 执行操作的 LLM。它们在连续反馈循环中运行,用于问题和解决方案不可预测的情况。智能体比工作流拥有更多自主权,可以决定使用哪些工具以及如何解决问题。您仍然可以定义可用的工具集以及智能体行为的指导方针。 智能体
要开始使用智能体,请参阅 快速入门 或阅读更多关于 它们如何工作 的信息。
Using tools