看到[腾讯技术工程]公众号的一篇文章。主要讲的是如何选取Agent主流框架的逻辑。
讨论了两种路径,workflows和agent。

说了一个观点:只要问题不可完全穷举,要跨多个系统查证,需要在多轮对话过程中澄清的,就需要用Agent,而非workflow。
这个观点猛听起来似乎很符合逻辑。
文中举了个例子:

看到这个例子,我第一反应就是,没有Agent的时候,人工是怎么解决这种问题的?
感觉人工也是同样的方式吧,不断问用户各种问题。
说实话,这些信息都可以从系统中查得到的。
如果可以查得到,不需要和用户问询,那么Agent为什么需要和用户问询呢?
如果通过问询的方式才能拿到这些信息,说实话就不是技术的问题,而是产品或者业务流程的问题,Agent不需要背这个锅。
文中还举了一个例子:

虽然他说这是Agent的强项,但我看下来,这不就是明显的workflow吗?
步骤很清晰啊,第一步意图识别,第二步跨系统取证,第三步正常推理合规,第四步方案生成与协商,第五步执行与闭环。
怎么没办法事前确定分支呢,LLM确实擅长在对话上下文里面做决策,再调用工具,但这个不等于workflow做不到,workflow节点也可以做上下文决策和工具调用啊。
所以这个例子,我也没有看到必须用Agent的必要性。
反而workflow的形式清晰可理解,研发、产品、业务、运营、老板层面都好理解,反而没有清晰的workflow只有LLM自己理解,其他人理解不了。
最经典的是意图识别流程,为了提高意图识别准确度,要求又快有准,还能抗住长尾,一般的逻辑是高频交给规则,主流样本交给内训的ML,模糊长尾的交给LLM兜底,兼顾了速度、准确度、覆盖度和成本。
识别完意图之后,再做槽位填充,如果参数缺失再做一轮reflection。
你看,还是workflow的思路,定义好分几步,以及每一步要做啥。
我是坚定的workflow拥护者,能用workflow就用workflow,实在不行才选择Agent,意思是大部分场景都可以抽象出workflow,极少部分场景需要用纯Agent。
Dify创始人张路宇也是始终坚定 Workflow 的价值。
说回来,大部分场景上Agent无外乎是炫耀的,并不一定是最适合的。
这个场景抽象好,我理解也是可以通过workflow的方式解决的。
无外乎分成三个阶段:
首先拿订单元数据,比如例子中的承运商状态,发货SLA,节假日政策,是否会员,是否叠加优惠券,这些通过订单上下文是可以一口气查询出来的,直接给到大模型就可以了。
第二个阶段是获取物流配送提供商状态,比如是否部分签收,是否报缺货,大概率通过调用供应商接口的方式获得相关数据。
第三个才是需要和用户确认的,比如是否签收等。
你看还是一个workflow的逻辑,只不过每个workflow阶段需要定义好这个阶段的元数据和上下文是啥,我不知道为啥需要810潜在路径分支。
我理解大概率是为了Agent而Agent所找的一个所谓具有代表性的例子吧。
而且你现在用Agent,未来扩展性也是一个问题。
业务想要扩展一个新的场景逻辑,你敢直接用Agent承接吗?
你大概率不敢。
有人说,我们会在Agent上线之前,充分评估模型,确保Agent可以适配新的业务场景需求。
但是业务不会等你Agent ready之后再开量啊。
所以在业务开量到你Agent被评测具备上线能力这段时间,你大概了还是靠一堆规则性的workflow去承接的。
所以从业务扩展性上来说,Agent并没有workflow形式靠谱。
而且Agent其实是没有规则可言的,他是泛化能力强,同时具有所谓的定性价值观。
但这就造成了业务运营人员,根本说不清楚线上的Agent是怎么跑的,以及如何想优化其中一个关键的过程指标,也拿不出迭代抓手,因为你看不见,存在不确定性。
最近正好看到了阿里小蜜过去两年的技术变迁。
整个变迁分为三个阶段:多轮定位(pipeline)->多智能体(multi-agent)->单智能体(single-agent workflow)。
第一阶段打破了传统NLP小模型的局限,提升了意图识别和反问能力,让对话的追问更清晰。
第二阶段引入了多策略和多智能体的协作,在多轮对话中可以提供更清晰的解释与引导。
第三阶段则针对具体场景进行高度策略定制,比如订单场景提供专门的workflow完成方案择优与反馈,提升用户体验。
比如用户问“我要退款”,阿里小蜜会弹出提示,让你确认几个信息“买贵了”、“协商一致退款”、“颜色尺码与描述不符”。
接下来你可以选择对应订单操作退款,它会问你“未收到货,无法退货”、“已收到货,继续退货”、“已寄回,催促退款”等选项,选择之后,它会继续让你确认退货地址。
你看这个流程是妥妥的workflow。
反正我没见到过真正在业务场景落地AI过程中,workflow无法承接的情况,闲聊场景除外。
大部分场景用langchain和langgraph基本的都可以解决了。
而Agent更适合人机协作,比如AI Coding或其他chatbot,因为有个人在旁边可以为Agent的不可控进行兜底。
大家用Agent的目的很多时候并不是从第一性原理出发,很多时候都是为了Agent而Agent,想一想Agent真的比workflow好吗?