Skip to main content
本指南回顾常见的工作流与代理模式。
  • 工作流(Workflows)具有预定的代码路径并按特定顺序运行。
  • 代理(Agents)更为动态,可以自行定义过程和工具使用方式。
Agent Workflow LangGraph 在构建代理与工作流时提供多项优势,包括 持久化流式处理、调试支持以及 部署

设置

构建工作流或代理时,可以使用支持结构化输出和工具调用的任意聊天模型。下面示例使用 Anthropic:
  1. 安装依赖
npm
npm install @langchain/langgraph @langchain/core
pnpm
pnpm add @langchain/langgraph @langchain/core
yarn
yarn add @langchain/langgraph @langchain/core
bun
bun add @langchain/langgraph @langchain/core
  1. 初始化 LLM:
import { ChatAnthropic } from "@langchain/anthropic";

const llm = new ChatAnthropic({
  model: "claude-sonnet-4-6",
  apiKey: "<your_anthropic_key>"
});

LLM 与增强

工作流和代理系统以 LLM 为基础,并通过各种增强功能(如 工具调用结构化输出短期记忆)对其进行定制。
import * as z from "zod";
import { tool } from "langchain";

// 结构化输出的 schema
const SearchQuery = z.object({
  search_query: z.string().describe("Query that is optimized web search."),
  justification: z
    .string()
    .describe("Why this query is relevant to the user's request."),
});

// 为 LLM 增加结构化输出能力
const structuredLlm = llm.withStructuredOutput(SearchQuery);

// 定义工具
const multiply = tool(
  ({ a, b }) => {
    return a * b;
  },
  {
    name: "multiply",
    description: "Multiply two numbers",
    schema: z.object({
      a: z.number(),
      b: z.number(),
    }),
  }
);

// 为 LLM 增加工具
const llmWithTools = llm.bindTools([multiply]);

Prompt 链(Prompt chaining)

Prompt 链是指每次 LLM 调用处理上一次调用的输出,常用于将任务拆解为可验证的小步骤,例如翻译、验证生成内容一致性等。 示例演示了 Graph API 与 Functional API 两种实现(原文包含完整示例代码)。

并行化

并行化可以使 LLM 同时完成任务:要么是对独立子任务并行处理以加速,要么是对同一任务多次运行以获得不同输出并提高置信度。常见用途包括并行处理文档不同方面或对同一文档多次评分以评估质量。 示例展示了如何用 Graph API 或 Functional API 实现并行化(原文包含完整代码)。

路由(Routing)

路由工作流会在处理输入后将其导向特定任务,以定义针对不同情景的专用流程。例如,面向产品问题的工作流可以先判断问题类型,再将请求路由到定价、退款或退货的处理流程。 原文提供了 Graph API 与 Functional API 两种实现方式的完整示例代码。

Orchestrator-Worker 模式

在该模式中,orchestrator 将任务分解为子任务并委派给 workers,随后将 workers 的输出综合成最终结果。该模式适用于子任务数目或具体细节在运行时才确定的场景(例如为多个文档更新安装说明)。 LangGraph 提供对该模式的原生支持,使用 Send API 可动态创建 worker 节点并发送特定输入,每个 worker 有自己的状态,所有 worker 输出写入到可供 orchestrator 访问的共享状态键中以便综合。

评估-优化(Evaluator-optimizer)

在此模式中,一个 LLM 生成响应,另一个对其评估;若评估或人工判断需要改进,则提供反馈并重新生成响应,循环直到满足标准。该模式常用于需要多次迭代以满足质量标准的任务(例如高质量翻译)。

代理(Agents)

代理通常由执行工具操作的 LLM 实现。代理运行在连续的反馈循环中,适用于问题和解决方案不可预测的场景。你仍可以定义可用工具集和行为指南。 示例展示如何定义工具、将工具绑定到 LLM,并使用 Graph API 或 Functional API 构建代理执行流程(原文包含完整代码)。