Agent 和 workflow 的区别在哪,如何选型?

0 评论 186 浏览 0 收藏 13 分钟

Agent真能取代Workflow?别被融资故事带偏了节奏。本文用“谁来做判断”这一核心差异,厘清两者本质:Workflow靠人写死逻辑,稳定高效;Agent把决策权交给模型,灵活却脆弱。真正落地的AI系统,往往是二者混合——关键业务靠Workflow兜底,边缘场景让Agent试错。

之前,我发的文章《AI Agent架构有缺陷,Workflow一定会存在》遭到了某正在Agent创业CEO的抵制。

他观点很清晰:Workflow没用了,是落后的技术,现在都是Agent时代。让我不要固执己见,拿着一年前过时的技术“妖言惑众”…

当时因为这事群里发生了激烈的争论,很多人都参与进来了,最终结果是谁也没说服谁。但从很多产研大佬的反馈来说,印证了我之前一句话:Agent拿到了融资,Workflow解决了工作问题。

而后,我心有所感写了一篇文章:《AI 编程不是Agent》,下来后依旧感觉没说清楚,今天我们用更通俗点的语言再说下Agent与Workflow的差异是什么?

一、Agent VS Workflow

其实两者差异很清晰的,决策权只要在模型,那么就是Agent,如图所示,Agent是一个标准的ReAct架构(思考→执行→观察 结构):

Workflow就是我们在代码中将所有分支都定死,模型的作用就是根据输入做输出;Agent属于将if/else判断的部分交给模型了。

进一步Workflow最大的特点是:稳定、成本低、效率高,但几乎没有灵活性,流程变一点就一定要人工上手做调整;

而Agent最大的特点是:灵活,可以兼容大部分场景。问题也很明显,黑盒太多,并且ReAct架构天生稳定性差、成本高、响应慢。

以同一个功能来区分Workflow和Agent:上海天气怎么样?

首先是Workflow,他需要做的是意图识别,要么用程序、要么用AI去判断这里是否有天气咨询的需求,如果有就用程序或模型取出参数,自己手动调用API;

而Agent的话,其实跟上述动作大同小异:

首先,两者API调用都是一套,工具代码没有任何不同;

其次,Workflow的意图识别是我们主动发起的,如果这里意图识别很多的话程序可能会很臃肿:if 天气 需求意图,Workflow后续流程if 旅游 需求意图,Workflow后续流程if 机票 需求意图,Workflow后续流程……

可以看到,Workflow的识别全部是显示的;

而在这里,Agent架构的差异性就出来了,他不需要要那么多if判断,取而代之的是工具定义:

[
  {
    “tool_name”: “weather”,
    “tool_desc”: “查询某地的天气”,
    “tool_examples”: [“上海天气怎么样”, “北京天气怎么样”]
  },
  {
    “tool_name”: “travel”,
     “tool_desc”: “某地的游玩计划”,
    “tool_examples”: [“上海有哪些好玩的”, “北京有哪些好玩的”]
  }
]

这里甚至可以说是模型给的一个语法糖,他并没有吃掉之前的if判断,只不过将判断逻辑写进了参数,核心是description、name…

其实为什么要这样做,乃至可以这样做的原因也很简单:模型语义能力大大的提升了产品的泛化能力。

这里结论是:之前Workflow的判断被模型的意图识别替换掉了,这里就大大增加了整天产品的灵活性,是模型泛化能力的体现。

谁来做工具调用的判断,也就是Workflow和Agent的核心差异了

二、如何选择

如上所述,Workflow里面。业务流程是人写死的,模型只是某几个节点里泛化能力(语义理解能力)更强的API;

而Agent是将业务的编排逻辑下放给了模型,他首先要负责想,其次要负责选,这里想和选的部分很依赖模型本身的能力,有些小领域几乎没法做出合理的规划,包括工具调用也是,因为工具调用的背后是意图识别:

所以,当模型能力不足或者各方面要求较高的时候,Workflow都不是首选了,是唯一选择。

更进一步的判断逻辑是:整个业务选型要从任务目的出发,如果稳定性、成本、响应速度要求太高,无脑Workflow就好。

只不过从我之前生产实践来说,Workflow和Agent两者之间并不是互斥的,我们往往都会用到,也就是:最核心的业务,错了要赔钱的任务会用Workflow做基本保障;跳出核心业务,用户对于错误感受不严重的,使用Agent架构;

关于为什么要使用这套混合架构的答案很简单:没办法,Workflow只能解决80%不到的需求!

进一步说:用户的意图是无穷的,我们根本做不到穷举他所有的需求,然后一一硬代码做稳定的实现,在这个时候Agent可以缓解产品完整性很大的压力;

换个问题:Agent如果表现得好就能100%解决用户需求了吗?

答案也是否定的。意图是无穷且天马行空的,但每个产品的边界却很清晰:

他首先受控于Tools各种组合可以完成的部分,比如如果Tools没有支付功能,那么Agent怎么都不会有;

其次Agent产品的能力也受控于领域知识的局限性,比如突然从一个医疗Agent跳到法律Agent,在真实世界的框架里是合理的;

比如出了医疗事故,必定会涉及法律部分的问题,但在Agent产品中未必可以这样做,因为不同国家、地区乃至医院体系,这里的处理逻辑会有所不同,所以在各个垂直领域Agent成熟并且对外释放接口前,这一切不会发生。

最后,上述的所有可能都是建立在假设模型基本能力很强,在意图识别上不会出问题的基础上,加之工具的集成还有一个阶段,所以通用Agent的出现还有很长的时间。

至此,我相信大家对Workflow和Agent的差异是什么,以及两者之间该如何选择已经十分清晰了,那么这里只留下最后一个问题了:

前面我们已经说了,Agent架构的核心是意图识别和工具调用,这里意图识别延展出来是上下文工程和模型本身能力提升的问题,这个话题太大我们不做讨论,但Agent所需工具也是千奇百怪,他该如何实现我们也许是值得探讨的问题:

三、AI 编程 和 Agent Tools

得益于模型能力的发展与历史海量的互联网工具的积累,Agent模式虽然在25年没解决太多问题,但已经崭露头角了,而这里工具的实现就很有意思了。

正常情况下,每个工具的调用是我们一个个做的,但是其实这里是否存在另一个可能,Agent依赖的工具是他自己动态添加(实时创造)的呢?

这是一种Agent做产品经理,模型做码农的模式,他理论上是可行的,他最终会指向一个可能性:Agent能否超越预先定义的能力边界,在运行时动态扩展其技能树?

而这已经发生了,之前我就做过一次,如视频所示:

这里我给Agent的指令是为我生成一个游戏,而他马上调用Claude Code做出来了,所以编程这个Agent拥有的工具,几乎理论上是万能的!

更进一步他可以干什么呢?答案是他可以自己创造数据、微调模型,因为这个是真的不难,他也属于标准AI 编程其中一环…

所以,未来的Agent可以很激进,当天在运行过程中发现现有 Tools 不够用,于是自己写一个、自己挂上去,这才是很多人口中的“真正智能体”。一个典型流程可能是这样的:把这 10 万行日志做异常模式分析,再生成一个交互式可视化页面Agent 发现任务没法仅靠现有工具完成;他在一个受控的代码执行环境里,生成一段分析的代码;执行、测试,通过之后,将他包装为Tools;…

如果再往前推一步,这个“代码执行环境”本身,也是一个 Tool,于是就形成了一个很有意思的闭环:

Tool 里的代码由模型生成,模型再调用这些 Tool 来完成更复杂的任务。

从架构视角看,你等于多了一层:以前是:模型 → 工具集现在变成:模型 → 工具工厂 → 新工具集 → 再被模型使用

当然,这一切还远,真的这样做就是在沙滩上建立沙滩碉堡,这种东西是经不起风雨的,但这个趋势已经出现了…

四、结语

最后总结一下:Agent融到了钱,Workflow解决了实际的问题。两者之间没有孰优孰劣,还是要看业务是什么、任务是什么、问题是什么。

Workflow 落不落后、Agent 到底多智能,纠结这些干嘛,谁更适合解决他们,就用什么,工具罢了!

在你的业务里,哪些必须交给 Workflow 保底,哪些可以放心交给 Agent 去冒险?这个边界划得越清楚,你的 AI 项目就越有机会既活得久,又跑得快。

本文由人人都是产品经理作者【叶小钗】,微信公众号:【叶小钗】,原创/授权 发布于人人都是产品经理,未经许可,禁止转载。

题图来自Unsplash,基于 CC0 协议。

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 目前还没评论,等你发挥!