· 王思腾 · AI Agent · 12 分钟阅读

AI Agent 架构原理(二):五种工作流模式与多智能体协作

同样是“让大模型干活”,写法可以从固定流水线到完全自主。本文逐个梳理 Prompt 链、路由、并行、编排者-工人、评估者-优化者五种工作流模式,以及自主 Agent 与多智能体架构该怎么选。

同样是“让大模型干活”,写法可以从固定流水线到完全自主。本文逐个梳理 Prompt 链、路由、并行、编排者-工人、评估者-优化者五种工作流模式,以及自主 Agent 与多智能体架构该怎么选。

本系列第二篇。第一篇讲了 Agent 的本质(LLM + 工具 + 记忆 + ReAct 循环),这一篇讲如何把大模型编排成一个完整系统:从确定性的工作流,到自主 Agent,再到多智能体协作。

Anthropic 在《Building Effective Agents》里把生产环境常见的智能体系统归纳为几类可组合的模式。它们不是必须照搬的教条,而是一个“复杂度阶梯”——从最简单、最可控的方案起步,只有在确实能提升效果时才增加复杂度。

一、工作流 vs Agent:先做选型

回顾第一篇的区分:

  • 工作流(Workflow):流程路径由代码预先定义,LLM 在固定节点上完成子任务。优点是可预测、易调试、成本可控。
  • Agent(自主智能体):路径由模型动态决定,灵活但更贵、更难预测。

选型原则一句话:任务越确定,越用工作流;任务越开放,越需要 Agent。 下面从最简单的工作流讲起。

二、五种核心工作流模式

1. Prompt 链(Prompt Chaining)

把一个任务拆成顺序固定的多个步骤,前一步的输出喂给后一步,中间可以插入程序化的“关卡(gate)”做校验。

flowchart LR
    In["输入"] --> S1["LLM 步骤 1"] --> G1{"校验关卡"} --> S2["LLM 步骤 2"] --> G2{"校验关卡"} --> Out["输出"]
    G1 -- 不通过回退 --> S1
    G2 -- 不通过回退 --> S2
  • 适用:任务能干净地拆成固定子任务,用延迟换准确率(每一步让模型做更简单的事)。
  • 例子:先生成营销文案 → 检查是否合规 → 再翻译成多语言;先写大纲 → 校验大纲 → 再成文。

2. 路由(Routing)

先对输入分类,再分发到不同的专门处理流程。

flowchart LR
    In["输入"] --> Cls["分类 LLM"]
    Cls --> R1["退款流程<br/>专门提示词/工具"]
    Cls --> R2["技术支持流程"]
    Cls --> R3["常见问题<br/>小模型 / FAQ"]
  • 适用:输入有明显类别、且各类别最好分开处理的场景;关注点分离,各类别可用专门优化的提示词甚至不同大小的模型。
  • 例子:客服分流(咨询/退款/投诉);简单问题走便宜小模型、疑难问题走强模型。

3. 并行(Parallelization)

让多个 LLM 调用同时工作,再程序化地聚合结果。分两种形态:

  • 分段(Sectioning):把任务拆成相互独立的子任务并行跑。
  • 投票(Voting):同一任务跑多次,取多个视角/多次结果以提升置信度。
flowchart TB
    In["输入"] --> Split["并行分发"]
    Split --> P1["LLM 子任务 A"]
    Split --> P2["LLM 子任务 B"]
    Split --> P3["LLM 子任务 C"]
    P1 --> Agg["聚合"]
    P2 --> Agg
    P3 --> Agg
    Agg --> Out["输出"]
  • 适用:子任务可并行提速;或需要多个独立视角提高可靠性。
  • 例子:
    • 分段:一个实例回答用户、另一个实例并行做内容安全护栏审查(比让同一个调用既回答又审查效果好);
    • 投票:多个提示词分别从不同角度审查一段代码的漏洞,命中即标记;多个评判者投票以平衡误报/漏报。

4. 编排者-工人(Orchestrator–Workers)

一个中心 LLM(编排者)动态拆解任务,把子任务分派给多个工人 LLM,最后综合它们的结果。

flowchart TB
    In["输入"] --> Orch["编排者 LLM<br/>动态拆解任务"]
    Orch --> W1["工人 A"]
    Orch --> W2["工人 B"]
    Orch --> W3["工人 C"]
    W1 --> Syn["编排者综合"]
    W2 --> Syn
    W3 --> Syn
    Syn --> Out["输出"]
  • 与并行的关键区别:子任务不是预先定义的,而是编排者根据具体输入临时决定的。
  • 适用:无法预测需要哪些子任务的复杂任务。
  • 例子:编程修改——需要改几个文件、每个文件改什么,取决于任务本身;多源信息检索与综合分析。

5. 评估者-优化者(Evaluator–Optimizer)

一个 LLM 生成结果,另一个 LLM 评估并给出反馈,循环迭代直到达标。

flowchart TB
    In["输入"] --> Gen["生成者 LLM"]
    Gen --> Draft["草稿"]
    Draft --> Eval["评估者 LLM"]
    Eval --> Q{"达标?"}
    Q -- 否:带反馈重做 --> Gen
    Q -- 是 --> Out["输出"]
  • 适用:有明确评估标准、且迭代打磨能带来可衡量提升的任务。两个信号:① 人给反馈能明显改进结果;② LLM 自己能给出这类有效反馈。
  • 例子:文学翻译(韵味需要反复打磨);复杂搜索(评估者判断信息是否充分、是否需要再检索)。

模式速查

模式流程何时用
Prompt 链固定顺序、可插校验任务可拆成固定步骤,追求准确率
路由先分类再分流输入类别清晰、需分开优化
并行同时跑、再聚合子任务独立可并行 / 需多视角投票
编排者-工人中心动态拆派子任务无法预先确定
评估者-优化者生成+评估循环有明确标准、迭代有价值

三、自主 Agent(Autonomous Agent)

当任务开放式、步骤数无法预估、无法写死路径时,就该让模型自己掌控流程。自主 Agent 就是第一篇讲的 ReAct 循环的完整形态:

flowchart TB
    Start["用户指令"] --> Agent["Agent LLM<br/>规划 + 决策"]
    Agent -- "工具调用" --> Env["工具 / 环境<br/>执行 + 返回"]
    Env -- "观察反馈(地面真相)" --> Agent
    Agent -- "每步用反馈校正,循环" --> Stop{"停止条件?"}
    Stop -- "未完成" --> Agent
    Stop -- "完成 / 达最大步数" --> End["输出结果"]
    Stop -- "遇阻塞/检查点" --> Human["暂停 · 请求人类确认"]

它的运行特征:

  1. 从指令或交互开始,任务明确后独立规划与执行;
  2. 每一步都从环境获取真实反馈(工具结果、代码执行、测试通过与否)来评估进展;
  3. 在检查点或遇到阻塞时暂停,向人类请求信息或判断(human-in-the-loop);
  4. 有明确停止条件(任务完成,或最大迭代次数等),防止失控。
  • 适用:开放式问题,需要模型连续多轮决策,且你对其决策有一定信任——尤其适合在受信任的环境里规模化任务。
  • 典型例子:能解决 SWE-bench 真实 GitHub issue 的编程 Agent(可用自动化测试验证、用测试结果当反馈);操作电脑完成任务的 computer-use Agent。
  • 代价:成本更高,错误可能在多步中复合累积。因此必须在沙箱中充分测试,并设置护栏与人审检查点。

四、多智能体系统(Multi-Agent)

当单个 Agent 的上下文或能力不够时,可以让多个专职 Agent 协作。常见拓扑:

  • 层级式(编排者-工人 / 主管-专家):一个主管 Agent 负责任务拆解与调度,专家 Agent 各管一摊(如“检索员”“编码员”“测试员”)。这其实是编排者-工人模式在自主层面的延伸。
  • 流水线式:多个 Agent 像产线一样顺序交接(研究 → 写作 → 审校)。
  • 辩论/对抗式:多个 Agent 扮演不同角色互相质疑(如正方/反方、红队/蓝队),用对抗提升结论可靠性。

多智能体不是越多越好。Anthropic 与 OpenAI 的实践都指出:额外的 Agent 会带来延迟、成本和错误传播,只有当任务确实需要独立上下文、专职分工或互相制衡时才值得。很多时候一个设计良好的单 Agent + 好工具就够了。

五、工具生态:MCP

无论哪种模式,Agent 的能力边界都由工具决定。为避免“每个 Agent 都要为每个系统单独对接”,Anthropic 提出了 MCP(Model Context Protocol,模型上下文协议):

  • 它像 AI 应用的 “USB-C 接口”:用一套开放标准,把 AI 应用连接到外部数据源(文件、数据库)、工具(搜索、计算)和工作流;
  • Agent 只需实现一次客户端,就能接入整个 MCP 服务器生态(日历、Notion、数据库、Figma、Blender 等);
  • Claude、ChatGPT、VS Code、Cursor 等已广泛支持,实现“一次构建、处处接入”。

MCP 让“工具”从零散的私有集成,变成了可复用的标准化能力,是多智能体/Agent 工程化的重要基础设施。

六、如何选型

一个实用的决策顺序:

  1. 单次调用 + 检索 + 示例能搞定吗?能就别做复杂系统。
  2. 步骤固定、可预测?→ 用工作流(链 / 路由 / 并行 / 编排 / 评估)。
  3. 步骤开放、需要动态决策?→ 用自主 Agent,配沙箱、护栏、停止条件与人审。
  4. 需要独立上下文、专职分工或对抗制衡?→ 再考虑多智能体,并警惕额外开销。

三条贯穿始终的原则(Anthropic 总结):

  • 简单性(Simplicity):保持设计简单;
  • 透明性(Transparency):显式展示 Agent 的规划过程,便于调试与信任;
  • 精心打磨 ACI(Agent–Computer Interface):像投入 HCI 一样投入工具的文档、参数与测试——工具接口的质量往往比提示词更决定成败。

下一篇,我们进入工程落地:记忆、规划、可观测性、评估与护栏,谈谈怎么把一个 demo Agent 做成生产可用的系统。

参考资料:Anthropic《Building Effective Agents》、OpenAI《A Practical Guide to Building Agents》、Model Context Protocol 官方文档。

本文由 AI 辅助创作,所有内容仅供交流与参考。
分享:
返回博客
落地案例:用 AI Agent 自动写周报,2 小时变 10 分钟

落地案例:用 AI Agent 自动写周报,2 小时变 10 分钟

团队每周要汇总十几个项目的进展,过去靠人翻群聊、查工单、看提交记录,动辄两三个小时。我们用一套“固定流水线 + 局部用模型”的自动化流程,把它压到 10 分钟出初稿。这篇完整拆解这个真实案例的架构、为什么不用自主 Agent、人机怎么分工、踩过的坑和成本,并沉淀出一套可复制到其他办公场景的方法论。

AI Agent 架构原理(一):从大模型到自主智能体

AI Agent 架构原理(一):从大模型到自主智能体

大模型本身只会“生成文本”,Agent 却能自主规划、调用工具、根据反馈纠错。本系列第一篇从最基础的问题入手,讲清 Agent 到底是什么:增强型大模型、ReAct 推理-行动循环,以及模型、工具、记忆、规划四大核心能力。

智能体开发(Agent):构建能自主执行任务的 AI 系统——从“会说话”到“会做事”

智能体开发(Agent):构建能自主执行任务的 AI 系统——从“会说话”到“会做事”

聊天机器人只会“说”,智能体(Agent)能“做”——它能理解目标、拆解任务、调用工具、根据反馈自我修正,直到把事办成。本文讲清 Agent 与普通 LLM 对话的本质区别、自主执行的闭环(感知-规划-行动-观察)、工具调用与函数执行、记忆与状态管理,以及从简单脚本到可靠 Agent 的落地路径与护栏设计。