摘要: 拆解Workflow与Agent的本质差异。Workflow是确定性流水线,Agent是自主探索的思考者。从LangChain管道到ReAct框架,厘清两种范式各自的边界与交汇点。
都是 AI 在执行任务,为什么长得完全不一样?
如果你同时用过 Coze 工作流 和 AutoGPT 这类 Agent,大概率产生过一种困惑:它们看起来都像在"让 AI 干活",但内部逻辑似乎完全不同。Coze 里你拖拽节点、连线、定义输入输出,流程一目了然;AutoGPT 里你只需要给一个目标,它就自己上网搜、自己写代码、自己纠错,中间发生了什么你并不完全清楚。
这种困惑的根源在于:Workflow 和 Agent 是 AI 工程中两种截然不同的范式。它们解决的问题不同,适合的场景不同,底层技术路线也完全不同。把它们混为一谈,就像把工厂流水线和自由职业者放在同一个坐标系里比较------它们确实都在"产出价值",但工作机制没有可比性。
Workflow:确定性的 AI 流水线
Workflow 的核心理念就一个词:预定义。它是一条设计好的 AI 工作链路,每一步都有明确的输入和输出,节点之间的流转逻辑是固定的。当条件满足,自动进入下一环节;当条件不满足,走预设的分支。整个过程可预测、可审计、可复现。
从 LangChain 的 pipe 说起
在代码层面,Workflow 的典型形态是 LangChain 的 pipe 管道:
javascript
const creativeChain = storyPrompt
.pipe(creativeModel)
.pipe(outputParser);
creativeChain.invoke("恭喜拿下offer");
三条 .pipe() 串联出一个完整的 AI 工作流:PromptTemplate 接收原始输入,ChatOpenAI 调用大模型生成内容,StringOutputParser 将输出解析为纯文本。数据在管道中单向流动,每个节点的职责清晰可辨,整条链的行为完全由代码定义。
这就是 Workflow 的核心特征:节点之间的流转关系在编码阶段就已经写死了。运行 100 次,数据走的路径完全相同,变化的只是每个节点内部的输出内容。
Coze 的可视化编排
Coze 把这种"固定流转"的思想做到了极致,提供了拖拽式的可视化编排界面。一个典型的 Coze 工作流包含以下节点类型:
- 输入节点:接收用户传入的文本、图片等原始数据
- LLM 节点:调用大模型进行文本生成或理解
- 逻辑判断节点:if-else 分支,根据条件决定走哪条路径
- 代码节点:执行自定义的 JavaScript/Python 逻辑
- 图片生成节点:调用 DALL-E 或 Stable Diffusion 等模型
- 输出节点:将最终结果返回给用户
一个典型的 AI 照相馆工作流在 Coze 上可能是这样的:用户上传照片 → 代码节点裁切尺寸 → LLM 节点分析画面风格 → 图片生成节点做风格迁移 → 输出节点返回结果。全程不需要写一行代码,但整条链路的行为是确定的------每一张照片走的都是同一条路径。
正因如此,Coze 上出现了大量付费工作流。用户购买的不是"智能",而是"将智能融入既定流程的稳定性"。一键生成、质量可控、结果可预期------这是 Workflow 的核心价值。
一个完整的 Workflow 案例:简历筛选
招聘场景天然适合 Workflow,因为筛选简历的流程本身就是标准化的。假设我们用 LangChain 搭建一条简历筛选流水线,大致包含以下节点:
第一步:解析 PDF。简历文件通常是 PDF 格式,需要先用文档加载器提取原始文本。这一步的输入是文件路径,输出是纯文本字符串。
第二步:信息提取。LLM 节点接收纯文本,按预定 schema 提取关键信息------技能描述、工作经历、教育背景、项目经验。输出一个结构化的 JSON 对象。
第三步:岗位匹配。将提取出的技能列表与岗位需求做 RAG 检索,计算语义相似度,生成匹配度评分。这一步可能调用向量数据库或知识库。
第四步:打分排序。代码节点根据匹配度评分、工作年限、学历等维度,按预设权重计算综合分数,按分数从高到低排序。
第五步:结果输出。最终节点将排序后的简历列表格式化为表格或 Markdown 报告,返回给 HR。
整条链路中,每一步的输入输出格式都是预先定义好的。即使某份简历的格式非常混乱,LLM 节点也会尽力提取信息,但流的走向不会变------它不会因为"这份简历看起来不太适合这个岗位"而跳过匹配环节直接拒绝。这就是 Workflow 的确定性:流程不变,结果可预测。
Agent:不确定性的自主探索
Agent 的逻辑和 Workflow 完全相反。它不走在一条预设的轨道上,而是站在一个开放的空间里,自己去探索怎么完成任务。
三个核心能力
从技术角度拆解,一个 Agent 通常具备三个相互耦合的能力:
感知环境。Agent 通过输入文本、图像、数据来理解当前任务。它需要知道"我手上有哪些工具可以调用"、"当前情况如何"、"任务目标是什么"。这不是一次性完成的,而是持续进行的------每执行一个动作后,Agent 都会重新感知环境状态,判断下一步该做什么。
规划路径。Agent 的任务链不是在编码阶段写死的,而是在运行时动态生成的。它根据当前感知到的环境状态和可用工具列表,自主决定"先做什么、再做什么"。同一份任务,Agent 在不同时刻可能选择完全不同的执行路径。
执行行动。Agent 调用工具完成子任务,观察结果,并根据结果调整后续计划。如果发现某个工具调用失败,它会尝试替代方案;如果发现新的信息改变了任务目标,它会重新规划路径。
这三个能力构成了一个闭环:感知 → 规划 → 执行 → 再感知 。这个循环就是 Agent 领域最经典的 ReAct(Reasoning + Acting)框架------推理驱动行动,行动反馈环境,环境触发新一轮推理。
一个 Agent 案例:旅行规划
假设你给 Agent 一个任务:"帮我规划一趟 12 月去北海道的旅行,预算 1.5 万,5 天 4 晚。"
Agent 不会直接按固定流程输出结果。它可能会这样执行:
第一轮:搜索札幌和新千岁的机票价格,发现 12 月是旺季,直飞航班价格偏高。
第二轮:根据新发现的信息,调整策略------搜索经东京中转的航班,发现便宜 3000 元,但多花 4 小时。
第三轮:同时搜索酒店价格和天气预报,发现札幌市区酒店价格偏高但交通便利,郊区的温泉酒店性价比更高但需要租车。
第四轮:结合你的偏好(假设你之前提到过喜欢温泉),权衡后推荐郊区温泉酒店 + 租车的方案,并附上租车费用和驾照要求。
第五轮:生成完整行程,包含航班、酒店、每日景点安排、预算明细。
整个过程中,Agent 走的路径可能和你预期的完全不同。它可能在中途发现了你没考虑到的因素(比如 12 月札幌雪祭期间酒店翻倍),然后主动调整方案。这就是 Agent 的关键区别:自主性和适应性。它不会被一个固定的流程限制,而是像一个思考中的个体,根据环境变化不断调整策略。
本质差异:高速公路 vs 司机
把 Workflow 和 Agent 放在一起对比,核心差异可以浓缩为一句话:Workflow 是确定性的执行,Agent 是不确定性的探索。
Workflow 像一条高速公路。路线清晰、固定、高效,你能精确预测到达终点的时间,但不能偏离既定路线。即使前方堵车,它也不会主动绕行------绕行意味着"流程变了",而 Workflow 的流程是不变的。
Agent 像一个司机。他知道目的地,但随时可以根据路况改道。遇到修路,绕行;发现更美的风景,停下来;目的地变了,重新规划。他不需要预设路线,路线在他脑中动态生成。
从这个比喻出发,可以系统性地对比两者的差异:
| 维度 | Workflow | Agent |
|---|---|---|
| 执行逻辑 | 预定义,固定流转 | 动态生成,自主规划 |
| 可预测性 | 高,每次运行路径一致 | 低,同一任务可能走不同路径 |
| 灵活性 | 低,无法应对流程外的情况 | 高,能根据环境变化调整策略 |
| 核心依赖 | 规则引擎、流程编排、条件判断 | LLM 推理能力、记忆能力、工具调用 |
| 技术栈 | LangChain、Coze、流程引擎 | ReAct 框架、Function Calling、记忆模块 |
| 典型工具 | 拖拽式节点编排、pipe 管道 | AutoGPT、MetaGPT、Agent SDK |
| 适用场景 | 审批流程、数据清洗、客服 AI、简历筛选 | 复杂搜索、策略规划、开放域问答、旅行规划 |
| 错误处理 | 走预设的异常分支 | 自主尝试替代方案 |
Workflow 的稳定性来自"流程不变",Agent 的智能性来自"流程可变"。这决定了它们各自适合的场景完全不同。
什么时候用 Workflow,什么时候用 Agent
选型不是拍脑袋,而是看任务本身的特征。
Workflow 适合流程化、重复性的任务。这类任务有三个共同特征:步骤固定、边界清晰、结果可标准化。每一次执行的路径都是相同的,变化的只是输入数据。审批流程就是典型------每一步做什么、谁来审批、什么条件下通过或驳回,规则是明确的。AI 的作用是加速每个环节的处理速度,而不是改变流程本身。
Agent 适合动态、探索性的任务。这类任务的特征是:目标明确但路径不清晰,执行过程中可能需要根据新信息调整方向。复杂搜索是典型------你不知道答案在哪个页面上,需要先搜索、再阅读、再判断、再搜索,整个过程是动态试探的。Agent 的自主规划能力在这里是刚需,而不是锦上添花。
一个实用的判断标准:如果你能把任务画成一张确定的流程图,用 Workflow;如果你画不出来,或者画出来之后发现"这个分支太多了根本画不完",用 Agent。
双引擎架构:Workflow 做骨架,Agent 做大脑
把 Workflow 和 Agent 对立起来,是一种短视的二分法。在实际的 AI 工程中,两者不是替代关系,而是互补关系。
一个成熟的 AI 系统,底层往往是 Workflow 提供的稳定性和可控性,上层是 Agent 提供的灵活性和智能性。Workflow 是骨架,确保系统的基座不会崩塌;Agent 是大脑,让系统在稳定的基座上做出聪明的决策。
以智能客服系统为例:
Workflow 层负责流程性事务:用户进线 → 意图识别 → 路由分配到对应技能组 → 生成工单 → 记录日志。这条链路是固定的,每个节点有明确的输入输出,出错时有预设的兜底逻辑。
Agent 层负责对话中的智能决策:用户问了一个复杂问题,Agent 判断需要先查知识库、再调用订单接口查历史记录、最后综合两种信息生成回复。这个过程中,Agent 动态决定调用哪些工具、以什么顺序调用、什么时候可以结束对话。Workflow 不关心 Agent 做了什么,它只管"对话结束后,生成工单、记录日志"。
这种"双引擎"架构正在成为 AI 工程的主流范式。Coze 本身也在朝这个方向演进------在可视化工作流中嵌入 Agent 节点,让工作流中的一个环节由 Agent 自主完成。Workflow 负责"把事做对",Agent 负责"把事做聪明"。
总结
Workflow 和 Agent 的本质差异不在于"谁更智能",而在于确定性与不确定性的取舍。Workflow 牺牲了灵活性,换来了稳定性和可复现性;Agent 牺牲了可控性,换来了自主性和适应性。
没有谁比谁高级。需要处理 1000 份简历时,你不会希望 Agent 对每份简历都"自主规划"一番------你只需要一条稳定的流水线,快速、准确、一致地完成筛选。需要规划一趟旅行时,你不会希望 Workflow 按固定模板输出一个千篇一律的行程------你需要一个能根据实时信息动态调整方案的智能体。
在 AI 工程的未来版图中,Workflow 和 Agent 将深度融合。底层的 Workflow 提供骨架,确保系统的稳定性和可预测性;上层的 Agent 提供大脑,在关键决策节点上释放智能。Workflow 没有创造力,Agent 不可控------两者结合,才能既高效又有智慧。
这正是 LangChain 这类框架的价值所在:它既能用 pipe 构建确定性的工作流,也能集成 Agent 的动态推理能力。同一个框架,两种范式,按需组合,适配不同场景。