小窍门
在访问工作流之前,建议先尝试更简单的模式,看看它们是否符合你的需求。 它们更易于设置和调试。 当需要保证执行顺序,而单个代理无法可靠地自行提供时,工作流最有用。
到目前为止,这一旅程涵盖了使用代理构建的越来越强大的方法。 你已经了解了单个代理如何使用 工具、 加载技能、 通过中间件运行以及 基于丰富的上下文进行绘制。 你已通过 将一个代理用作另一个的工具 来组成代理,并通过 A2A 在服务边界之间连接它们。
所有这些模式共享一个常见特征: LLM 决定接下来会发生什么。 模型选取要调用的工具、是否委托以及何时停止。 对于开放式任务,这很有力,因为正确的路径取决于对话;但当过程本身有固定规则时,这就是一个缺点。
请考虑如下方案:
- 一个文档审查管道,每次必须以该顺序编写、审阅、修订和批准草稿。
- 客户入职流程,用于收集信息、进行合规检查、配置账户,并发送欢迎电子邮件——某些步骤是并行的,某些则需人工批准完成。
- 一个分析工作流,从多个源收集数据,合并结果并生成报告,若在中途出现故障,应从最后一个检查点恢复,而不是重新开始。
在每个情况下,过程 的结构 都是提前知道的。 步骤、顺序、决策点 — 这些不是模型在运行时要弄清楚的事项。 你想要 显式定义关系图 ,并允许代理(或任何其他逻辑)在其内执行。
这就是 工作流 提供的内容。
智能光谱
代理应用程序不必完全自治或完全基于规则 - 两者之间有一个范围,工作流允许你选择要降落的位置。
Fully intelligent Fully deterministic
(model decides everything) (code decides everything)
◄──────────────────────────────────────────────────────────────►
│ │ │
│ Single agent with │ Workflow with agent │ Workflow with only
│ tools — the model │ executors — the graph │ deterministic executors
│ picks every step │ controls the process, │ — no LLM involved,
│ │ agents handle the │ pure business logic
│ │ reasoning-heavy steps │
在左侧,一个具有工具的单一代理处理所有内容。模型来决定该做什么、何时委托以及何时停止。 这是最灵活的方法,也是最不可预测的方法。 在最右端,具有纯确定性执行器的工作流程本质上是传统的流程管道,完全可预测,但根本不具备 AI 推理能力。
大多数实际应用程序位于 中间的某个位置。 工作流定义了结构——按什么顺序运行哪些步骤,以及通过哪些关卡——同时,该工作流中的各个执行单元使用代理来执行那些从 LLM 推理中获益的步骤。 在关键之处,可以通过 AI 的智能获得显式过程的可预测性。
关键见解是 你掌控调节旋钮。 对于流程中的每个步骤,你决定:
这是工作流的真正功能:不替换代理,而是让你明确控制应用程序每个部分的 智能程度 。
选择正确的模式
之前旅程中的模式和工作流不是互相竞争的方法,而是光谱上的不同点。 关键问题是: 谁应该决定接下来会发生什么?
| 问题 | 如果答案是“模型” | 如果答案是“开发人员” |
|---|---|---|
| 接下来要处理哪些子任务? | 代理即工具 - 外部代理动态路由 | 工作流 - 图形定义路径 |
| 是否需要引入另一个代理? | 代理即工具 - 模型驱动委派 | 工作流中的代理 - 图形将代理连接在一起 |
| 什么时候问人? | 工具审批 - 针对每个工具的响应式审批 | 人机循环 - 定义点处的显式入口 |
| 如何处理部分故障? | 工具实现中的重试逻辑 | 检查点 - 从上次保存状态恢复 |
实际上,大多数生产系统 都结合了这两者。 工作流定义高级过程,以及该工作流中的单个执行程序使用代理来执行从 LLM 推理中获益的步骤。 “工作流”页中的代理显示如何执行此操作。
内置编排模式
对于常见的多代理协调方案,代理框架提供 内置业务流程模式 - 预生成的工作流模板,可以直接使用或自定义:
| 图案 | 何时使用 |
|---|---|
| 顺序 | 代理按定义的顺序逐个执行 — 每个代理都基于上一个代理的输出生成 |
| 并发 | 代理并行执行 - 当任务独立且希望降低延迟时非常有用 |
| 切换 | 代理根据上下文相互传输控制 - 非常适合路由到专家 |
| 群组聊天 | 代理在共享对话中协作 - 可用于辩论、审查或集思广益 |
| 磁力 | 管理器代理动态协调专用代理 — 平衡结构与灵活性 |
这些业务流程处理代理协调的样本,以便你可以专注于代理本身。
作为代理的工作流
最强大的组合模式之一是包装工作流,使其看起来像常规代理。 工作流作为代理功能让您可以将复杂的多步工作流通过标准代理接口呈现出来。 其他代理可以将其称为工具,A2A 客户端可以通过 HTTP 调用它,使用者根本不需要知道他们正在与工作流通信。
旅程回顾
你现在已经了解了代理开发模式的完整范围:
| 图案 | 最适用于 |
|---|---|
| LLM 基础知识 | 了解基础 |
| 从 LLM 到代理 | 代理抽象 |
| 添加工具 | 对外部系统执行操作的代理 |
| 添加技能 | 可重用的模块化代理行为 |
| 添加中间件 | 交叉关注和护栏 |
| 上下文提供器 | 内存、个性化和 RAG |
| 代理作为工具 | 简单代理的构成和委派 |
| 代理对代理(A2A) | 跨服务代理通信 |
| 工作流 | 具有显式控制的复杂多步骤编排 |
每个模式都会增加功能和复杂性。 最佳代理系统使用最简单模式来满足其要求,并且仅当方案要求时才能达到更强大的模式。
后续步骤
更深入: