0


Agentic 设计模式拆解:6 种结构的优缺点与应用场景

Agentic AI 这项技术并不新,只是模型性能提高后让它从研究环境走向了可以规模化落地的阶段。

所以这篇文章总结一些常见的设计模式,这些模式归纳了在大量已验证实现中反复出现的共性,可以视为一组结构化的骨架,用来理解智能体(Agent)、用户、模型和工具之间的核心交互。

下面会介绍 5 种常见的设计模式:

  1. 单一智能体(Single Agent)
  2. 顺序智能体(Sequential Agents)
  3. 并行智能体(Parallel Agents)
  4. 循环与评审(Loop & Critic)
  5. 协调者与子智能体(Coordinator & Sub-agents)

额外补充一种:作为工具的子智能体(Sub-Agents as Tools)。

单智能体模式

单智能体模式(图 1)从实现角度看是最简单的一种,需要维护的系统级指令和工具定义资产范围较窄。

图 1. 单智能体设计模式示意图

这种模式的做法是给单个智能体绑定相关的工具定义和指令。如果任务本身不复杂、只依赖几件专用工具,它会表现得不错——优点包括:

  • 部署简单
  • 调试更容易
  • 端到端任务延迟更低

当任务开始要求编排多步骤逻辑和多种工具时,单一智能体就会暴露出短板:

  • 难以遵循庞大的系统提示(system prompt)逻辑
  • 整个工作流出现单点故障

顺序智能体

顺序智能体是多智能体系统最简单的一种实例化形式,要求各个智能体像流水线一样工作:前一个智能体的输出直接作为后一个智能体的输入。为了便于讨论,这里只考虑由两个专用智能体组成的顺序结构(图 2)。

图 2. 顺序智能体设计模式示意图

顺序智能体通过共享的短期记忆状态传递数据,两个智能体不仅能访问数据本身,还能在分担整体职责的过程中共享任务状态。

专用智能体的优势在于:

  • 指令集更窄,可以把上下文集中用于执行子任务
  • 顺序结构把执行顺序“硬编码”进了工作流,消除了多步骤任务里常见的乱序执行风险
  • 每个智能体的 LLM 调用次数更少,调试和状态管理都更轻

另一面顺序智能体的执行受到比较硬的约束:

  • 序列中的步骤通常无法跳过,即便某个工作流变体并不需要某一步
  • 后一个智能体必须等待前一个的输出,延迟会逐级累积

并行智能体

有些任务受益于多智能体协作,但并不需要顺序执行——这时候并行智能体模式(图 3)就有了用武之地。独立任务并行执行,对端到端延迟有比较直接的改善。

图 3. 并行智能体设计模式示意图

和计算里任何并行任务一样,这种模式会带来一些额外风险:

  • 单位时间内的资源消耗更高,并行的智能体会同时消耗 Token 并争抢资源
  • 调试和根因分析更难
  • 出现竞态条件(race condition),并行工作流的输出可能互不兼容

竞态条件的代价不容低估,因为它可能迫使整个工作流重新走一遍完整的往返。一种常见的缓解办法,是在并行智能体之后挂一个最终的聚合器(aggregator)智能体。聚合器可以看作整条链路上最后一个顺序智能体,负责合并各路并行输出,给出一个连贯且贴合请求要求的结果。

循环与评审

智能体的输出必须满足某个严格条件。比如编码智能体的输出,必须能通过特定的单元测试才算有效。循环与评审模式提供了一种简单的护栏(guardrail)思路——让一个专用智能体充当另一个智能体输出的“评审者(critic)”或“审批者(approver)”(图 4)。

图 4. 循环与评审设计模式示意图。为简化可视化,图中省略了模型与工具方框。

这种模式的主要陷阱是无限重试循环因此需要:

  • 配置最大循环次数,避免评审者与生产者之间陷入恶性、浪费资源的拒绝/重试循环
  • 仔细定义退出条件,减少评审者的假阴性拒绝和假阳性通过

协调者与子智能体

协调者模式(图 5)大概是当下最常见的一种,它引入了智能体的层级结构和任务分解:一个主智能体协调工作流,并管理多个子智能体的状态。这种模式里的子智能体通常预先配置好了特定的指令和工具,主智能体负责分配并跟踪它们的工作。

图 5. 协调者设计模式示意图。为简化可视化,图中省略了模型与工具方框。

子智能体可以按照前面讨论过的任意模式来编排——并行、顺序、循环都行。这带来的好处包括:

  • 整体模式可塑性强,便于按需调整结构
  • 可以承载复杂的任务分解与执行
  • 分层状态管理使智能体之间的数据交换与协作更顺畅

层级化结构同时也带来一些代价:

  • 延迟和成本更高,主智能体的编排、子智能体的启停都会消耗额外的资源和 Token
  • 管理开销膨胀,越多的主智能体与子智能体,就需要越多的专用系统提示、工具定义和访问控制

作为工具的子智能体

另一种比较常见的模式——作为工具的子智能体(Sub-Agents as Tools),把端到端工作流的控制权最大程度地交给主智能体。它和协调者模式很像,区别在于:主智能体不再把宽泛的、自治性的任务委派出去,而是为狭窄的、增量式的动作临时启用子智能体——例如执行某个特定工具,然后把输出返回。

这种模式下,子智能体是无状态(stateless)的。它们不保留上下文,也不与主智能体以外的任何实体交换信息。这样主智能体就对工作流的状态和记忆拥有绝对控制权,能避免系统范围内出现“上下文漂移(context drift)”。

控制权集中带来的代价是,对指令集的精确度要求很高。子智能体必须能给出结构化、有意义的数据;主智能体则要足够成熟,能把这些增量步骤综合成最终结果。

总结

Agentic 设计模式仍在演化中。生产环境里真正合适的模式,往往是本文所述基础模式的混合或调整版本。

图 6 是一份简单的速查表,列出了几个关键要点。

一张表格,总结了这 6 种设计模式的优缺点和最适合的应用场景。

作者:Eduardo Alvarez

“Agentic 设计模式拆解:6 种结构的优缺点与应用场景”的评论:

还没有评论