工作流与智能体循环:核心区别与系统设计选择

在构建 Agentic AI 系统的过程中,一个反复出现的困惑是:工作流(Workflow)与智能体循环(Agentic Loop)究竟有什么区别?两者常常被同时提及,也经常共存于同一个应用中,但它们解决的其实是根本不同的问题。厘清这一区别,是设计可靠、可扩展的智能体系统的前提。
本文基于 Reddit 社区一篇引发广泛讨论的技术帖,梳理二者的核心差异及其对系统设计的影响。

工作流:预定义的执行图
工作流是一组按照预先定义好的顺序连接在一起、以完成特定目标的流程集合。它代表的不是智能,而是编排(orchestration)——它定义了「应该发生什么」以及「什么时候发生」。
一个工作流可以包含许多基于条件分裂又合并的分支。因此,它本质上可以被看作一个有向图(Directed Graph):节点代表任务,边代表执行依赖关系。有向图是图论中的基本概念,由节点和有方向的边组成——在工作流语境下,只有前置节点完成后,后续节点才能被触发。更具体地说,大多数工作流引擎使用的是 DAG(Directed Acyclic Graph,有向无环图),即不允许存在环路的有向图,这保证了任务执行终将完成而不会陷入无限循环。Apache Airflow 将 DAG 作为其核心抽象,每个 DAG 定义了一组任务及其依赖关系,调度器(scheduler)根据拓扑排序决定执行顺序;Temporal 则采用了更强大的确定性重放(deterministic replay)机制——它将工作流的每一步执行记录为事件历史(event history),当工作流因故障中断后,引擎通过重放这些事件来恢复工作流状态,而非从头重新执行,这使得长时间运行的工作流(可能持续数天甚至数月)具备了企业级的容错能力。Prefect 则在 DAG 的基础上引入了动态任务映射(dynamic task mapping),允许在运行时根据上游结果动态生成下游任务数量,在保持确定性框架的同时提供了一定灵活性。
编排(orchestration)一词源自音乐领域的管弦乐编排,强调一个中央协调者对多个参与者行为的统一调度,与之相对的是"编舞"(choreography)模式——各参与者通过事件驱动自行协调。在微服务架构中,这两种模式的区别尤为重要:编排模式由一个中心服务(orchestrator)统一发号施令,知晓全局流程状态;编舞模式则让各服务监听事件总线上的消息,各自决定何时响应。工作流引擎采用的是编排模式,因为它需要一个全知视角来管理任务间的依赖、处理失败重试和维护全局状态。工作流的设计者需要显式地指定起始条件、执行顺序、分支逻辑、同步点以及终止条件。
确定性是工作流的核心特征
由于每一条可能的执行路径在设计阶段就已经被规划好,工作流是确定性的(deterministic)。给定相同的输入,它总是沿着相同的路径执行。系统本身永远不会「发明」出一套新的动作序列,它只是忠实地沿着预定义的图前进——每一个决策分支都已由设计者事先定义完毕。
这种可预测性正是传统企业软件的价值所在。业务流程管理(BPM)系统、CI/CD 流水线、ETL 数据管道都高度依赖工作流,因为它们提供了可预测性、可重复性和易于调试的特性。具体来说,BPM 系统(如 Camunda、Activiti)使用 BPMN 2.0(Business Process Model and Notation)标准来可视化建模企业流程,支持人工任务节点、网关分支、事件触发等元素——BPMN 2.0 定义了超过 100 种图形符号,能够精确表达并行网关(parallel gateway)、排他网关(exclusive gateway)、事件子流程等复杂模式,使得业务分析师和开发者能够用同一套语言沟通流程设计。CI/CD 流水线(如 Jenkins Pipeline、GitHub Actions)将代码从提交到生产的全过程编码为构建、测试、打包、部署等确定性阶段,每个阶段都有明确的成功/失败判定标准和回滚策略。ETL(Extract-Transform-Load)数据管道则负责从异构数据源(关系型数据库、API、日志文件等)抽取原始数据,经过清洗、去重、格式转换、聚合计算后加载到目标数据仓库(如 Snowflake、BigQuery),支撑下游的商业智能分析和机器学习训练。这三类系统的共同特征是:执行路径在设计时完全可知,故障点可精确定位,审计追踪(audit trail)可完整还原每次执行的决策路径。当你需要每次都得到一致结果、并且能够精确追溯问题发生在哪个环节时,工作流是理想选择。
智能体循环:动态推理取代固定路径
智能体循环解决的是另一类问题。它不遵循预先定义的动作序列,而是让智能体持续推理下一步应该做什么,直到达成某个停止条件为止。
与工作流截然不同,开发者不需要提前编码每一个步骤,而只需指定四个要素:
- 初始状态(initial state)
- 可用工具(available tools)
- 约束条件(constraints)
- 停止条件(stopping conditions)
至于中间的具体步骤,则由智能体在运行时动态决定。这通常被称为「观察 → 推理 → 行动」(observe → reason → act)循环。这一思想根植于人工智能中经典的感知-决策-执行(Sense-Plan-Act)架构,最早可追溯到 1960 年代的 Shakey 机器人项目——由斯坦福研究院(SRI International)开发的世界上第一个能够对自身行动进行推理的移动机器人。Shakey 使用了 STRIPS(Stanford Research Institute Problem Solver)规划系统,通过维护一个世界状态模型,推理出从当前状态到达目标状态的动作序列。这一基本范式——感知环境状态、基于内部模型进行规划、执行动作并观察结果——历经半个世纪的演进,至今仍是智能体系统的核心设计模式。
在大语言模型时代,该范式被 ReAct(Reasoning + Acting)论文(Yao et al., 2022)系统化。ReAct 的核心洞见是:将推理轨迹(reasoning traces)和行动决策交织在一起,比单纯的思维链(Chain-of-Thought, CoT)或单纯的行动序列都更加有效。纯 CoT 方法让模型进行多步推理但无法与外部环境交互,容易产生事实幻觉;纯行动方法(如早期的 WebGPT)虽能与环境交互但缺乏显式推理过程,难以处理需要复杂逻辑判断的任务。ReAct 将两者统一:模型在每一步先生成一段推理文本(thought),明确当前的判断和下一步意图,然后决定调用哪个外部工具(action),观察工具返回的结果(observation),再进入下一轮推理。这种交替进行推理与行动的方式,使得模型能够处理需要多步信息收集和逻辑判断的复杂任务,同时推理轨迹提供了可解释性——开发者可以审查每一步的 thought 来理解智能体的决策逻辑。
OpenAI 的函数调用(function calling)机制和 Anthropic 的工具使用(tool use)协议都是这一循环在工程层面的具体实现。函数调用机制的工作原理是:开发者以 JSON Schema 格式向模型声明可用的函数签名(包括名称、参数类型、描述),模型在推理过程中如果判断需要外部信息或执行外部操作,就会生成一个结构化的函数调用请求(包含函数名和参数值),由应用层执行该函数并将结果以特定角色(tool/function role)回传给模型,模型再基于返回结果继续推理。这一机制将自然语言推理与外部世界的确定性操作连接起来,使得语言模型能够查询数据库、调用 API、执行代码、操作文件系统等——本质上将 LLM 从一个纯文本生成器升级为一个能够感知和改变外部世界状态的智能体。
迭代次数无法事先预知
这是智能体循环最关键的特性:迭代次数事先未知。同一个智能体,一次执行可能只需要两次工具调用,而另一次可能需要二十次。确切的动作序列是在执行过程中,根据任务状态的演变而逐步涌现出来的。
举个例子,假设你对一个 AI 旅行助手说:「帮我订下周五飞往上海的最便宜航班。」智能体会反复评估当前情况、选择最合适的工具、观察结果,然后继续——直到它找到令人满意的行程,或者判断出没有合适的选项为止。这个过程中究竟要查询多少次航班、比较多少个价格,事先都无法确定。在实际执行中,智能体可能先调用航班搜索 API 获取初始结果,发现价格偏高后尝试调整日期范围再次查询,然后比较直飞与转机选项的价差,接着检查用户的会员积分是否能兑换升舱,最终综合评估后给出推荐——每一步决策都依赖前一步的观察结果,形成一条无法预编程的动态路径。
停止条件不止「任务完成」
值得强调的是,智能体循环的停止条件远不止「当前状态匹配目标状态」这一种。它还可能包括:
- 最大推理迭代次数
- 时间限制
- Token 预算
- 工具调用失败
- 置信度阈值
- 需要人工显式批准
这些多元化的停止条件,本质上是为了给「不确定的动态过程」套上一个安全边界,避免智能体陷入无限循环或消耗过多资源。在生产环境中,停止条件的设计直接关系到系统的成本控制和安全性。
Token 预算限制防止单次执行消耗过多计算资源——以 GPT-4 为例,输入 token 价格约为每百万 token 30-60 美元(视具体模型版本而定),一次涉及长上下文的深度推理可能消耗数万甚至十万 token,折合数美元成本。对于高频调用的生产系统(如客服机器人每天处理数千次会话),缺乏预算控制可能导致单日成本从预期的几百美元飙升至数万美元。因此,成熟的 Agentic 系统通常实现分层预算控制:为每次会话设定 token 上限,为每日/每月设定总预算,并在接近阈值时触发降级策略(如切换到更便宜的模型或返回简化回答)。
最大迭代次数类似于递归函数的深度限制或操作系统中的看门狗定时器(watchdog timer),是防止逻辑死循环的硬性保障。当智能体在两个矛盾的推理路径间反复振荡时——例如工具 A 的返回结果促使智能体调用工具 B,而工具 B 的结果又指向需要重新调用工具 A——迭代上限确保系统能够及时熔断(circuit break),而非无限消耗资源。工程实践中,这个上限通常设为 10-25 次迭代,具体取决于任务复杂度。
置信度阈值允许智能体在自评估把握不足时主动停止并请求人工介入。实现方式包括让模型在每一步输出一个 0-1 之间的置信度分数,或通过多次采样(如 temperature > 0 时的多次推理)计算答案一致性。当置信度低于预设阈值时,系统不会冒险执行可能造成不可逆后果的操作,而是将决策权交还给人类——这在医疗诊断辅助、法律文书生成或金融交易等高风险场景中尤为关键。
Human-in-the-Loop(人机协作)机制确保高风险操作必须经过人工审批才能执行,体现了"AI 建议、人类决策"的负责任 AI 设计理念。在技术实现上,这通常表现为智能体在执行特定类型的 action(如转账超过一定金额、删除数据、发送外部通信)前暂停循环,通过 webhook、消息队列或 UI 通知将决策请求发送给人类审批者,待审批通过后才继续执行。这也是欧盟 AI 法案(EU AI Act)等监管框架对高风险 AI 系统的核心要求之一——该法案将 AI 系统按风险等级分为四类(不可接受、高风险、有限风险、最小风险),对高风险系统明确要求必须具备人类监督(human oversight)能力,确保自然人能够在必要时中止系统运行。
工作流与智能体循环的核心对比
将二者放在一起对比,差异就非常清晰了:
| 维度 | 工作流 | 智能体循环 |
|---|---|---|
| 核心能力 | 编排(orchestration) | 推理(reasoning) |
| 执行路径 | 预定义、确定性 | 动态涌现、不确定 |
| 迭代次数 | 已知 | 未知 |
| 可调试性 | 高 | 相对较低 |
| 适用场景 | 规则明确、可重复的流程 | 开放性、探索性的任务 |
| 错误处理 | 预定义重试策略和回滚路径 | 自适应错误恢复和策略调整 |
| 状态管理 | 显式、持久化的全局状态 | 隐式、存在于上下文窗口中 |
| 可观测性 | 完整的执行日志和指标 | 推理轨迹和工具调用记录 |
工作流与智能体循环并非对立,而是互补
需要澄清的一个误区是:工作流和智能体循环并不是「二选一」的对立关系。在真实系统中,二者往往协同工作。一个合理的架构常常是:用工作流来编排那些确定性的、需要严格顺序和可审计性的环节(如数据校验、权限检查、结果落库),而在需要灵活判断和探索的节点上,嵌入一个智能体循环去动态完成任务。
在实际的 Agentic AI 系统架构中,这种嵌套组合有多种成熟模式。最常见的是"确定性外壳+智能内核"模式:外层工作流负责权限校验、输入验证、结果持久化、审计日志等合规性要求极高的环节,而在需要自然语言理解、信息检索或复杂决策的节点处,调用一个智能体循环来动态完成子任务。这种模式的优势在于:即使智能体循环产生了意外输出,外层工作流的后续验证步骤仍然能够捕获异常并触发回滚或人工审查——相当于为不确定性加装了确定性的"护栏"(guardrails)。
LangGraph 是这一领域最具代表性的框架之一,它通过状态图(StateGraph)实现了条件边与循环节点的统一建模——开发者可以定义一个图,其中某些边是确定性的(类似工作流),而某些节点内部包含循环结构(类似智能体循环),图的状态通过 TypedDict 或 Pydantic 模型严格类型化,使得状态流转具有良好的可追踪性。CrewAI 提供了多智能体角色协作的抽象层,允许工作流中的某个阶段交由一组具有不同专长(如"研究员"、"写手"、"审核员")的智能体协商完成——每个智能体有自己的系统提示词、可用工具集和目标描述,它们通过结构化的消息传递协作完成复杂任务。AutoGen(由微软研究院开发)则侧重于多轮对话式的智能体交互,其核心特色是支持人类参与者作为流程中的节点——在自动化的多智能体对话中,人类可以在关键节点介入提供反馈或做出决策。
另一种模式是"智能体作为工作流调度器":顶层智能体根据用户意图动态选择要激活哪条预定义工作流,实现意图路由(intent routing)。例如,用户说"帮我退掉上周的订单",顶层智能体首先进行意图识别,判断这属于"退款流程"而非"查询流程"或"投诉流程",然后激活对应的预定义退款工作流。这类似于传统软件架构中的 API 网关或服务路由层,但路由决策由语言模型基于语义理解做出,而非基于硬编码的 URL 匹配规则或关键词匹配——这意味着系统能够处理用户的模糊表述、多意图混合和上下文依赖的请求,而无需穷举所有可能的输入模式。这种模式特别适合客服系统、内部 IT 工单系统等场景,其中工作流本身(退款、换货、投诉升级)是成熟且固定的,但用户触发这些流程的方式却千变万化。
这两种模式的选择取决于系统对确定性的需求程度和任务的开放性水平。当业务流程本身是固定的、只是触发方式需要灵活性时,"智能体作为调度器"更合适;当流程中存在需要深度推理的环节、但整体骨架需要可控时,"确定性外壳+智能内核"更合适。在最复杂的系统中,这两种模式可能同时存在并相互嵌套。
换句话说,工作流为系统提供了「骨架」和边界,而智能体循环为系统注入了「智能」和适应性。理解何时该用确定性的编排、何时该交给动态推理,正是设计可靠 Agentic AI 系统的核心判断力。
结语
随着 Agentic AI 的快速发展,越来越多的团队开始将大模型接入生产系统。但如果不能清晰区分工作流与智能体循环,就容易在该用确定性编排的地方引入不可控的动态推理,或在该保留灵活性的地方过度约束智能体。
记住这条主线:工作流回答「应该按什么顺序做」,智能体循环回答「现在该做什么」。 前者追求可预测,后者追求适应性。真正强大的系统,往往懂得让二者各司其职。
核心要点
- 工作流是预定义的有向图(通常是 DAG),确定性地编排任务执行顺序;智能体循环是动态推理过程,迭代次数和执行路径事先未知
- 工作流的价值在于可预测性、可重复性和可审计性,适用于 BPM、CI/CD、ETL 等规则明确的场景,主流引擎包括 Apache Airflow、Temporal、Prefect
- 智能体循环基于「观察→推理→行动」范式,源自经典 AI 的 Sense-Plan-Act 架构,在 LLM 时代通过 ReAct 框架得到系统化实现,工程层面通过函数调用/工具使用协议落地
- 停止条件是智能体循环的安全边界,包括迭代上限、Token 预算、置信度阈值和人工审批等多种机制,直接关系到生产系统的成本控制和合规性
- 二者并非对立而是互补:成熟的 Agentic AI 系统通常采用"确定性外壳+智能内核"或"智能体作为工作流调度器"的混合架构,可通过 LangGraph、CrewAI、AutoGen 等框架实现
相关推荐
观点碰撞Scaling Law再思考:参数不是唯一答案
深度解析Scaling Law从Kaplan到Chinchilla再到MoE时代的演进历程,探讨为什么盲目堆参数是误区,以及GLM-5.3如何通过后训练证明扩展存在多个旋钮。

本地AI Agent部署太慢?轻量级优化实战指南
本地部署AI Agent速度慢、频繁超时?本文从Agent框架隐藏开销、硬件瓶颈出发,提供精简配置、轻量工具选择、模型量化等针对性优化方案,并介绍通过Telegram Bot远程交互的实用技巧。

AI专业选电脑:MacBook还是NVIDIA笔记本?深度对比指南
AI专业大学生选电脑深度分析:MacBook Air M5搭配远程GPU vs NVIDIA独显笔记本,从CUDA支持、便携性、续航、性价比等维度全面对比,附实操建议。