跳转至

架构设计模式

概述

智能体架构设计模式是经过实践验证的架构组织方案。从经典的感知-规划-执行(Sense-Plan-Act)到 Brooks 的包容架构,再到现代 LLM 智能体的编排模式,本文梳理智能体架构设计的关键模式及其适用场景。


1. 经典架构模式

1.1 感知-规划-执行 (Sense-Plan-Act, SPA)

最早也最直觉的智能体架构模式:

graph LR
    S[感知<br/>Sense] --> P[规划<br/>Plan]
    P --> A[执行<br/>Act]
    A --> ENV[环境]
    ENV --> S

特点

  • 顺序执行:先完整感知,再完整规划,最后执行
  • 假设世界在规划期间不变(静态环境假设)
  • 代表:Shakey 机器人、STRIPS 规划器

优点:架构清晰、易于实现

缺点: - 规划时间长,无法实时响应 - 静态环境假设在现实中经常不成立 - 感知、规划、执行之间缺乏反馈

1.2 包容架构 (Subsumption Architecture)

Rodney Brooks (1986) 提出的行为主义架构,彻底摒弃了内部表征:

┌──────────────────────────────────┐
│  Layer 3: 探索行为 (Explore)      │ ← 高层行为
├──────────────────────────────────┤
│  Layer 2: 漫游行为 (Wander)       │
├──────────────────────────────────┤
│  Layer 1: 避障行为 (Avoid)        │
├──────────────────────────────────┤
│  Layer 0: 移动行为 (Move)         │ ← 低层行为
└──────────────────────────────────┘
    ↑ 传感器输入      ↓ 执行器输出

核心原则

  1. 层叠抑制:高层行为可以抑制(subsume)低层行为的输出
  2. 无中央控制:每一层独立运行,无需中央规划器
  3. 世界是最好的模型:不需要内部世界模型

优点:实时响应、鲁棒性强、适合动态环境

缺点:难以实现复杂目标导向行为、可扩展性差

1.3 分层架构 (Layered Architecture)

结合 SPA 和包容架构的优点:

graph TD
    subgraph 三层架构
        L3[慎思层<br/>Deliberative Layer<br/>长期规划、目标推理]
        L2[序列层<br/>Sequencing Layer<br/>短期计划、协调]
        L1[反应层<br/>Reactive Layer<br/>即时响应、紧急行为]
    end

    ENV[环境] --> L1
    ENV --> L2
    ENV --> L3
    L3 --> L2
    L2 --> L1
    L1 --> ENV

代表架构

架构 层数 特点
InteRRaP 3层 合作规划层 + 局部规划层 + 行为层
TouringMachines 3层 建模层 + 规划层 + 反应层 + 控制框架
ATLANTIS 3层 顾问层 + 规划层 + 反应层

1.4 黑板架构 (Blackboard Architecture)

多个知识源通过共享数据结构(黑板)协作:

graph LR
    subgraph 知识源
        KS1[知识源 1<br/>语音识别]
        KS2[知识源 2<br/>语法分析]
        KS3[知识源 3<br/>语义理解]
        KS4[知识源 4<br/>上下文推理]
    end

    BB[黑板<br/>共享数据结构]
    CTRL[控制器<br/>调度器]

    KS1 <--> BB
    KS2 <--> BB
    KS3 <--> BB
    KS4 <--> BB
    CTRL --> BB

特点

  • 各知识源独立运行,通过黑板通信
  • 控制器决定哪个知识源在何时运行
  • 适合需要多种专业知识协作的问题
  • 代表:Hearsay-II 语音理解系统

2. 现代 LLM 智能体架构模式

2.1 增强 LLM (Augmented LLM)

最简单的模式:LLM + 检索/工具,无自主循环。

graph LR
    U[用户] --> LLM[LLM]
    LLM --> |需要检索| RAG[检索系统]
    RAG --> LLM
    LLM --> |需要工具| TOOL[工具]
    TOOL --> LLM
    LLM --> R[回复]

适用场景:简单问答、单步工具调用

示例:带搜索的聊天机器人

2.2 ReAct 循环 (ReAct Loop)

思考-行动-观察的迭代循环:

graph TD
    START[任务] --> THINK[Thought<br/>思考当前情况]
    THINK --> ACT[Action<br/>选择并执行动作]
    ACT --> OBS[Observation<br/>观察执行结果]
    OBS --> CHECK{任务完成?}
    CHECK -->|否| THINK
    CHECK -->|是| END[最终答案]

适用场景:需要多步推理和工具使用的任务

关键设计决策

  • 思考的格式(自由文本 vs 结构化)
  • 动作空间的定义
  • 终止条件
  • 最大迭代次数

2.3 计划-执行 (Plan-and-Execute)

先制定完整计划,再逐步执行:

graph TD
    TASK[任务] --> PLAN[规划器 LLM<br/>生成步骤列表]
    PLAN --> S1[步骤 1]
    S1 --> EXEC1[执行器 LLM<br/>执行步骤 1]
    EXEC1 --> S2[步骤 2]
    S2 --> EXEC2[执行器 LLM<br/>执行步骤 2]
    EXEC2 --> S3[步骤 N]
    S3 --> EXECN[执行器 LLM<br/>执行步骤 N]
    EXECN --> CHECK{需要重规划?}
    CHECK -->|是| PLAN
    CHECK -->|否| DONE[完成]

适用场景:复杂任务需要明确的步骤分解

优势: - 使用小模型做执行、大模型做规划,节省成本 - 步骤可见,便于调试和监控 - 支持动态重规划

2.4 路由器 (Router)

根据输入分发到不同的处理流:

graph TD
    INPUT[用户输入] --> ROUTER[路由器 LLM<br/>分类判断]
    ROUTER -->|代码问题| CODE[代码助手]
    ROUTER -->|数据分析| DATA[数据分析师]
    ROUTER -->|文档写作| WRITE[写作助手]
    ROUTER -->|简单问答| QA[直接回答]

适用场景:多类型输入需要不同处理策略

2.5 编排者-工作者 (Orchestrator-Worker)

中心编排者动态分配任务给专门的工作者:

graph TD
    TASK[复杂任务] --> ORCH[编排者 LLM<br/>分解 + 分配 + 汇总]
    ORCH --> W1[工作者 1<br/>子任务 A]
    ORCH --> W2[工作者 2<br/>子任务 B]
    ORCH --> W3[工作者 3<br/>子任务 C]
    W1 --> ORCH
    W2 --> ORCH
    W3 --> ORCH
    ORCH --> RESULT[汇总结果]

适用场景:复杂任务需要多种能力协同

与多智能体的区别:编排者是固定的控制中心,工作者无自主决策能力。

2.6 评估-优化 (Evaluator-Optimizer)

生成者和评估者交替工作:

graph TD
    TASK[任务] --> GEN[生成器 LLM<br/>生成初始方案]
    GEN --> EVAL[评估器 LLM<br/>评估并反馈]
    EVAL --> CHECK{达到标准?}
    CHECK -->|否| REFINE[优化器 LLM<br/>根据反馈改进]
    REFINE --> EVAL
    CHECK -->|是| DONE[输出最终方案]

适用场景:有明确质量标准的生成任务(代码、文案、翻译等)


3. 架构模式对比与选型

3.1 复杂度 vs 能力矩阵

模式 实现复杂度 任务复杂度 LLM 调用次数 延迟 可控性
增强 LLM 1
ReAct 循环 3-10
计划-执行 中-高 5-20 中-高
路由器 多类型 2+
编排-工作者 10-50
评估-优化 质量敏感 3-10
自主循环 开放式 10-100+

3.2 选型决策树

graph TD
    START[你的任务] --> Q1{单步可完成?}
    Q1 -->|是| AUG[增强 LLM]
    Q1 -->|否| Q2{步骤可预定义?}
    Q2 -->|是| PE[计划-执行]
    Q2 -->|否| Q3{需要多种能力?}
    Q3 -->|是| Q4{子任务独立?}
    Q4 -->|是| OW[编排-工作者]
    Q4 -->|否| REACT[ReAct 循环]
    Q3 -->|否| Q5{需要高质量输出?}
    Q5 -->|是| EO[评估-优化]
    Q5 -->|否| REACT

4. 设计原则

4.1 Anthropic 的设计原则

基于《Building Effective Agents》总结:

  1. 保持简单:能用简单模式解决的不用复杂模式
  2. 优先确定性:能用代码逻辑实现的不用 LLM 判断
  3. 显式状态管理:让智能体的状态可观测、可调试
  4. 优雅失败:设计好的错误处理和回退机制
  5. 人类兜底:关键决策点让人类确认

4.2 工程实践原则

原则 描述
最小权限 工具和动作只给必要的权限
幂等操作 同一操作多次执行应产生相同结果
可观测性 每一步都有日志和追踪
超时机制 为每个操作设置合理的超时
成本控制 限制最大 LLM 调用次数和 Token 消耗
渐进式自主 从低自主度开始,逐步放开

5. 架构演进趋势

graph LR
    A[单体 LLM<br/>2022] --> B[ReAct 循环<br/>2023初]
    B --> C[Plan-Execute<br/>2023中]
    C --> D[多智能体编排<br/>2023末]
    D --> E[自适应架构<br/>2024-2025]
    E --> F[自主进化架构<br/>未来]

趋势观察

  1. 从固定到自适应:架构不再是预定义的,而是根据任务动态调整
  2. 从单模型到多模型:不同任务使用不同规模/能力的模型
  3. 从无状态到有状态:越来越重视记忆和状态管理
  4. 从单智能体到多智能体:复杂任务分解给多个专门的智能体
  5. 从同步到异步:支持长时间运行的后台任务

参考文献

  1. Brooks, R.A. (1986). A Robust Layered Control System For a Mobile Robot. IEEE JRA, 2(1), 14-23.
  2. Müller, J.P. (1996). The Design of Intelligent Agents. LNCS 1177. Springer.
  3. Nii, H.P. (1986). Blackboard Systems. AI Magazine, 7(2), 38-53.
  4. Anthropic. (2024). Building Effective Agents. anthropic.com.
  5. Yao, S. et al. (2022). ReAct: Synergizing Reasoning and Acting in Language Models. ICLR 2023.
  6. Wang, L. et al. (2024). A Survey on Large Language Model based Autonomous Agents. Frontiers of Computer Science.

评论 #