别再混着用了:agent 和 workflow 到底有什么区别?

前言

一个agent,一个workflow。很多朋友在群里一聊就是"我搞了个 agent",结果仔细一看,其实只是配了个固定流程;也有老哥把本该交给 workflow 的事,硬塞给 agent,最后调了半天,成本起飞,效果还不稳定

所以这篇文章,笔者就把 agent 和 workflow 的区别掰开揉碎了讲清楚

基本概念

workflow 是什么

说白了,它像流水线。第一步做什么,第二步做什么,什么条件走哪个分支,基本都是提前写死的。它不会自己思考,也不会临场发挥,只会按规则执行

比如一个很常见的自动化流程:

1)收到 Git 提交 -> 2)执行单元测试 -> 3)构建镜像 -> 4)推送镜像仓库 -> 5)部署到测试环境 -> 6)发送部署通知

这个流程里,每一步都是明确的。前一步成功,才继续下一步;中间某一步失败,就按预设逻辑告警或者终止。整个过程可预测、可审计、可复现

Agent 是什么

Agent 更像一个带目标的执行者。你给它的不是一串固定步骤,而是一个目标,它自己去拆任务、做判断、选工具、尝试执行,必要时还会根据结果动态调整

比如你跟一个 Agent 说:

帮笔者分析昨晚线上接口报警的原因,整理成一份简短结论

1)先去读告警信息 -> 2)定位涉及的服务和时间段 -> 3)拉取对应日志 -> 4)分析异常栈和高频错误 -> 5)结合最近发布记录判断是否和变更有关 -> 6)输出结论

这里面的步骤不是一开始逐条写死的,而是 Agent 根据目标自己规划出来的。如果日志位置变了,它可能会先找路径;如果发现异常信息不够,它可能会继续查链路或调用别的工具。目标是给定的,但路径是动态生成的

最大区别

workflow 负责按既定流程执行,agent 负责为了完成目标做决策。之所以容易混淆,是因为它们表面上都像自动化。但实际上,这俩自动化完全不同

Workflow 更像地铁:

  • 站点固定
  • 路线固定
  • 到站顺序固定
  • 你只要别出轨,它就稳稳往前跑

Agent 更像打车:

  • 起点和终点给定
  • 具体走哪条路,它自己判断
  • 路堵了会绕
  • 司机甚至可能根据实时情况换高架、走辅路、避开施工
  • 甚至去到陌生的城市,司机会强行绕路-_-(投诉他)

所以,真正的区别不是有没有自动化,而是执行过程里,谁在做判断:

  • 如果判断都由人提前设计好,那大概率是 workflow
  • 如果系统在运行时自己做判断,那才更接近 agent

差异对比

对比维度 workflow agent
核心驱动 固定流程 目标驱动
决策能力 基本没有 有,且通常是核心能力
执行路径 预定义 动态生成
灵活性 低 高
可控性 很强 相对弱
可解释性 高,步骤清楚 一般,过程可能不稳定
容错方式 失败后走预设分支 遇到问题可尝试调整策略
成本 通常更低 通常更高
适合场景 重复、规则清晰的任务 复杂、开放、非结构化任务

workflow 赢在稳定,agent 胜在灵活

workflow 的 场景

很多任务,Workflow 才是性价比最高的方案。尤其是下面几类。

规则清晰的重复任务

1)定时同步数据

2)日报生成后自动发送

3)代码提交后自动测试和部署

4)订单支付成功后触发短信、发票、库存更新

这类事情最大的特点就是:

  • 输入结构明确
  • 处理步骤固定
  • 输出形式稳定

这种场景下,你让 Agent 来做,多少有点大炮打蚊子的意思。不但不一定更稳,还可能平白增加模型成本和不确定性

需审计、合规的流程

1)审批流

2)财务流

3)发版流

审批顺序,哪个节点必须卡住,哪个条件下必须中断,这些都要清晰明了。每个节点流程都可以追责、审计、复盘

  • 路径固定
  • 节点清晰
  • 每一步都能记录日志
  • 出问题也容易定位

结果必须高度一致的任务

1)固定格式的数据清洗

2)固定模板的通知发送

3)标准化报表导出

Agent 的场景

任务目标明确,但实现路径不明确。就像旅长把独立团交给李云龙带,目标就是要快速有战斗力,怎么搞枪、搞补给,只要不违反纪律,旅长一概不管(当然不允许有骑兵营-_-)

只要符合这个特征,Agent 往往就有发挥空间。

需要理解上下文的任务

1)根据一堆聊天记录总结结论

2)根据用户反馈归类问题

3)从日志、监控、发布记录里推测异常原因

这类任务的难点不在执行步骤,而在理解内容和动态判断。workflow 很难搞定,agent 更适合

需要多工具协同的任务

1)查文档

2)调接口

3)读数据库

4)看日志

5)生成结论

如果这些步骤之间的顺序、次数、条件都不固定,agent 就比较合适。它可以根据当前结果决定下一步要调哪个工具

需要试错和回退的任务

比如将复杂需求整理成技术方案草稿:

  • 先提炼需求
  • 再补背景资料
  • 再形成初稿
  • 再检查是否有冲突
  • 最后做一次压缩和润色

实际使用

agent 不等于 更高级的 workflow

workflow 和 agent 不是简单的升级关系,更像是两种不同的解决问题范式。

如果你把一个纯固定流程交给 agent:

  • 成本会上去
  • 延迟会上去
  • 结果波动会上去
  • 排障难度也会上去

反过来,如果你把一个高不确定性的任务硬塞进 workflow:

  • 分支会越写越多
  • 规则会越补越乱

很多成熟方案其实都不是二选一,而是一起使用,互补的关系。用 workflow 保证主流程可控,用 agent 处理高不确定性的局部任务

比如一个告警排查

1)判断线上是否有告警

2)获取告警日志内容

3)分析所有关联日志

4)出具分析报告

5)解决问题

  • 第 1、2、5 步非常适合 workflow
  • 第 3、4 步则很适合 agent

怎么选

1)这个任务的步骤能不能提前写死?

2)执行过程中需不需要动态判断?

3)结果是不是必须高度稳定一致?

4)出了问题以后,是不是很需要完整审计链路?

如果答案偏向下面这组:

  • 能写死
  • 不太需要判断
  • 要求稳定一致
  • 特别需要审计

那优先选 workflow

如果答案偏向下面这组:

  • 很难提前写死
  • 需要边做边判断
  • 允许一定波动
  • 更重视完成目标而不是固定路径

那优先考虑 Agent

如果一半一半,那大概率就该上混合架构了

总结

agent 和 workflow,最大的区别不在有没有自动化,而在系统是否需要自己做决策。workflow 更像严格执行的流水线,agent 更像为了完成目标而自主决策的执行者

如果任务规则清晰、路径固定、审计要求高,那就老老实实上 workflow;如果任务目标明确但过程充满不确定性,那 agent 才能真正发挥价值。很多生产级方案,最后都会走向混合方法:外层用 workflow 控节奏,内层用 agent 解 复杂

联系我

  • 联系我,做深入的交流

至此,本文结束

在下才疏学浅,有撒汤漏水的,请各位不吝赐教...