为什么ReAct Agents和Workflow Agents在企业客户服务和复杂业务流程中表现不足
摘要
本文批判了ReAct和Workflow agents在企业客户服务中的不足,指出了诸如缺乏可控性和僵化等问题,然后介绍了TeliChat,这是一种代码优先的对话式代理,它将LLM任务(意图识别、自然语言生成)与代码驱动的业务逻辑分离开来,以提高可追溯性和可调试性。
问题不在于它们“不够智能”。真正的问题在于,它们的工程范式使得同时满足企业级客户服务的几个核心需求变得困难:非线性对话、流畅交互、快速响应、严格规则执行、长对话的可追溯性以及复杂业务逻辑的可调试性。我们先从ReAct Agents说起。典型的ReAct Agent让大语言模型通过多步推理自主决定下一步做什么、调用哪些工具以及如何推进任务。这看起来灵活,但在企业客服场景中,很快暴露了几个问题:
- 它更像一个黑盒,导致其行为难以完全预测;
- 每一步都依赖LLM推理,导致响应变慢、成本更高;
- 在复杂业务规则、权限检查和API边界方面容易产生幻觉;
- 很难像传统工程代码那样精确调试、重放和追踪。
但在企业客服中,许多流程不能以“差不多就行”的方式处理。例如改签退票、保险理赔、售后服务、开户、审批和工单等场景,通常需要明确的规则评估、权限控制、状态转换和外部系统调用。让LLM自由发挥会引入太多风险。现在来看Workflow Agents。Workflow Agents采用不同的方法:它们预先定义流程,并通过节点和边控制对话。这解决了部分可控性问题,但代价是交互变得僵化且不自然。真实用户不会一步步遵循预定义的流程。他们可能不按顺序提供信息、中途纠正自己、添加新细节、跳到另一个话题,甚至在正在进行的流程中插入不同的请求。传统工作流系统难以自然处理这些非线性对话模式。结果往往是机器人反复要求用户重新开始或按固定格式回答。企业客服真正需要的既不是完全自由形式的LLM,也不是僵化的流程图。它需要一种更白盒、面向工程的对话式Agent架构:
- 让LLM处理它擅长的事:意图识别、信息提取和自然语言生成;
- 让代码处理必须由代码处理的事:业务决策、权限检查、API调用和状态管理。
这正是我们构建TeliChat的原因。TeliChat是一种代码优先、白盒的对话式Agent,专为企业客服和复杂业务流程设计。它既不是让LLM自由运行的ReAct Agent,也不是僵化的Workflow Agent。相反,它通过“ChatTree + InfoItem + Python代码”管理多轮对话状态。在TeliChat中,LLM不负责决定所有业务逻辑。实际的业务决策、权限检查和API调用由代码处理,并支持Python断点调试。这保留了LLM带来的自然语言交互能力,同时满足企业对可控性、可追溯性和可调试性的要求。因此,TeliChat可以支持更复杂的真实对话场景。用户可以不按顺序提供信息、纠正或补充之前的信息、切换话题,或者在现有流程中插入新话题,系统都能自然处理。同时,它支持企业环境所需的长对话、可追溯性、可调试性、流畅交互和快速响应。如果你正在构建具有强规则约束的业务流程,例如改签退票、保险理赔、售后服务、开户、审批或工单,你可能已经发现,纯粹依赖ReAct Agents会使系统过于黑盒、速度慢、成本高且容易产生幻觉。而纯粹依赖Workflow Agents则会让体验过于僵化,无法处理用户实际表达方式。
相似文章
聊天优先的AI工具在需要代理自主工作时就会崩溃
作者认为聊天优先的AI工具不足以构建自主代理工作流,并描述了替代原语,如定时触发器和子代理委派,主张从“带着工具聊天”转向“使用LLMs的自主流程”。
大多数AI智能体失败的原因在于人们像构建聊天机器人那样构建它们
许多AI智能体实现失败是因为它们把智能体当作聊天机器人来对待,依赖聊天历史记录来管理状态,而非使用确定性的数据结构。文章提倡将推理(LLM)、动作(工具)、工作流进度(状态机)和外部触发(网络钩子)分开,以构建可靠的业务智能体。
ReAct 还是 CodeAct,这是问题所在
本文探讨了 AI 工程中 ReAct 和 CodeAct 两种编排范式的利弊,强调了 CodeAct 在处理复杂任务时的高效性,并介绍了一个新的开源框架。
AI 智能体开始暴露出大多数工作流程原本就已支离破碎的事实
文章认为,AI 智能体揭示了企业工作流程实际上是多么缺乏结构和混乱不堪,暗示成功的自动化更多取决于整洁的系统和完善文档,而非先进的模型。
AI智能体在实际工作流中真正失败的地方(非演示环境)
讨论AI智能体在实际工作流中失败的地方,重点指出协调问题、混乱输入下的可靠性问题,以及在生产中减少人工干预的挑战。