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

设置

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

LLM 与增强功能

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

提示链式调用

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

并行化

在并行化中,LLM 同时处理一个任务。这可以通过同时运行多个独立的子任务,或多次运行同一任务以检查不同输出来实现。并行化通常用于:
  • 将子任务拆分并并行运行,以提高速度
  • 多次运行任务以检查不同输出,以提高置信度
一些示例包括:
  • 运行一个子任务处理文档中的关键词,同时运行另一个子任务检查格式错误
  • 多次运行一个基于不同标准(如引用数量、使用来源数量和来源质量)对文档准确性进行评分的任务
parallelization.png

路由

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

协调器-工作者

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

在LangGraph中创建工作者

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

评估器-优化器

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

智能体

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