结合前几篇的铺垫,这里简介一下常用的几种 Agent 模式:WorkFlow 模式、自主规划 Reflection 模式和ReAct 模式。

1. 任务型Agent架构简介

2. 任务型Agent:执行计划详细设计

3. 任务型Agent:工具详细设计

4. 任务型Agent:prompt工程实践

一、WorkFlow 模式

        在实际工作中,很多任务求解的过程往往规则比较明确,其使用“固定套路”都可以使用工作流来描述,相对于其他模式,工作流模式具备结构清晰、流程可控,同时具有高可解释性、高可维护性,这也是业界普遍使用工作流模式的原因。WorkFlow 模式下运营人员会提前预设好固定的流程模板,当前 Agent 会根据用户的意图路由到指定任务的流程模板,系统根据该模板生成执行计划(EP),最后定时任务会轮询执行执行计划,直到整个执行计划全部执行完成。如下图:

        执行计划节点执行过程中,为了让用户感觉在大模型在执行和推理,工具执行过程采用了流式输出的方式,即对话框会同步打印出工具执行前后的提示。

二、自主规划 Reflection 模式

自主规划 Reflection 模式下执行流程如下(参考下图):

  1. 思考用户需求,并初步生成执行计划;

  2. 系统调度并执行执行计划节点,且每执行完一个节点时,会根据节点输出刷新执行计划(已执行的节点不能再变更);

  3. 直到所有节点执行完成,则结束当前执行计划;

        实践过程中发现刷新完整的 EP 所需的 prompt 的 token 超过了现有资源的限制,导致模型 QPM非常低。针对该问题进行性能优化,最终达到了意图识别 2s 以下、刷新当前 EP 节点深度思考模式下 30ms 上下,非深度思考模式 10s 上下。核心两点:

  1. 在复杂和准确率要求高的( EP 刷新)场景下选择推理型模型,简单(如意图识别)场景下选择通用型模型。比如 Qwen 允许用户在 enable_thinking=True 时动态控制模型的行为,即可以在用户提示或系统消息中添加 /think 和 /no_think 来逐轮切换模型的思考模式。

  2. 拆分刷新 EP 的 prompt。

三、ReAct 模式

       ReAct 模式中大模型遵守“推理->执行->观察”的思路去解决用户的任务,如下图所示。实践过程中需要思考以下几个问题:

  • 工具调用失败(如系统异常、大模型推理参数错误等)的情况下,会影响执行计划节点的状态,此时是否要进行下一轮推理?

  • 结合用户体验,在执行比较“重”(如执行时间长)的工具之前,通常让用户来确认/修改参数,这里采用“面向失败设计”的理念,赋予用户充分的控制权。

  • 真实业务场景中,经常为了解决大模型幻觉问题,不得不添加各种兜底逻辑,就会导致系统越来越臃肿,维护成本越来越高。

Logo

更多推荐