最近我参与了一个企业AI项目的架构评审。团队花了三个月,搭建了一套他们称之为”多Agent协作系统”的东西:一个编排器LLM负责任务分解,四个工人LLM并行处理,外加一个评估器LLM做质量审核。架构图画了三页PPT,代码量超过两万行。
我建议把整套系统拆掉,换成一个多步串行的提示链。准确率从82%涨到91%,延迟从78秒降到47秒,代码量从两万行变成不到四千行。
这不是一个技术选型失误的故事,是一个关于工程判断力的故事。
做AI Agent落地这两年,我观察到一个反复出现的模式:团队倾向于从最复杂的架构开始,然后痛苦地往回退。
而正确的路径恰恰相反,从最简单的方案出发,只在有明确证据时才往上升级。
这篇文章,我把企业级Agent系统的五种核心工作流模式做一次系统梳理。但重点不是介绍它们是什么,而是回答一个更本质的问题:什么时候该用哪个,什么时候不该升级。
01首先分清两个东西:Workflow和Agent
在深入五种模式之前,有一个区分必须先讲清楚。
Workflow(工作流):LLM和工具按照预定义的代码路径被编排,流程由你的代码控制。
Agent(智能体):LLM动态地自我决定下一步做什么,流程由模型控制。
这个区分为什么重要?因为今天市面上绝大多数的”Agent产品”,本质上是Workflow。
这不是贬义,恰恰相反。对于大多数企业场景,Workflow比Agent更合适。
原因很直接:Workflow可预测、可调试、可审计。当系统出了问题,能沿着预定义的路径一步步排查。
Agent呢?它上一次走了路径A,这一次可能走路径B,你连复现bug都困难。
除非你的业务场景本质上要求动态决策(比如开放式的研究探索),否则应该默认选Workflow。“Agent”这个词在营销上很性感,但在生产环境里,可预测性比灵活性重要得多。
接下来的五种模式,是一把复杂度阶梯,你应该从最底部开始,只有在当前层确实撑不住时才往上迈一步。
02模式一:Prompt Chaining,用延迟换准确率
最简单的模式:把一个大任务拆成一串小步骤,前一步的输出喂给后一步,中间可以插入编程检查(Gate)来做质量把关。
输入 → LLM调用1 → Gate检查 → LLM调用2 → 输出这是大多数企业AI项目应该首先尝试的方案。
它有一个被严重低估的优势:每一步都是可观测的。
当最终结果不对时,你可以逐步检查每个中间输出,快速定位问题出在哪一步。这在生产环境中非常非常重要。
典型场景:先生成文档大纲,用规则检查大纲是否满足结构要求,再基于合格的大纲生成正文。或者先从用户输入提取结构化信息,检查格式合规,再基于结构化信息执行后续逻辑。
代价是延迟。
步骤是串行的,总耗时是各步之和。但在大多数企业内部系统中,延迟从1秒变成3秒,用户几乎无感。
如果你的任务可以用”先做X,再做Y”来描述,Prompt Chaining就是你的第一选择。
不要想别的,不要觉得它”不够高级”。够用就是最高级。
03模式二:Routing,让专家处理专家的事
输入进来先做分类,然后根据类别导向不同的下游流程。每个分支可以有独立优化的提示词和工具配置。
输入 → 路由器 → 分支A(专门提示词) → 分支B(专门提示词) → 分支C(专门提示词)这个模式的核心价值是关注点分离。
一个处理退款的提示词和一个处理技术支持的提示词,各自可以调到很精准。如果把所有场景塞进一个巨大的提示词里,不仅效果差,维护起来也是噩梦。
但Routing有一个隐含前提:分类必须足够准确。
如果路由器把10%的请求分错了类,后面的专门流程再好也没用。所以路由器本身的准确率是这个架构的天花板。
实战中一个特别有价值的应用是模型路由:简单问题用便宜的小模型,复杂问题才调用昂贵的大模型。
我在一个项目中做过测试,70%的用户请求可以被小模型准确处理,只有30%需要路由到大模型,整体API成本下降了约60%,而用户满意度几乎没有变化。
什么时候该从Prompt Chaining升级到Routing?当你发现一个串行链里,不同类型的输入需要走完全不同的处理逻辑时。
如果你的提示词里出现了大量的”如果是情况A就怎样,如果是情况B就怎样”,那就是在一个提示词里硬编码路由逻辑,不如显式拆出来。
04模式三:Parallelization,花钱买速度和置信度
让多个LLM同时处理任务。两种变体:
切片(Sectioning):把任务拆成互不依赖的子任务,并行执行。比如代码审查时,一个实例查安全漏洞,一个查性能问题,一个查代码风格,最后合并结果。
投票(Voting):同一个任务跑多遍,用多数投票或打分来提高置信度。比如内容审核,三个LLM独立判断是否违规,两票以上判定违规才标记。
输入 → LLM调用A ─┐ → LLM调用B ─┤→ 聚合器 → 输出 → LLM调用C ─┘并行化的本质是用成本换两样东西:速度和置信度。
切片模式的加速效果很直观,三个子任务并行,耗时接近最慢的那个而非三者之和。
投票模式的置信度提升也有统计学基础:三个独立判断的多数投票,错误率显著低于单次判断。
但有一个容易忽略的陷阱。并行化要求子任务之间真正独立。
如果子任务A的结果会影响子任务B的判断,你拿到的就不是三个独立视角,而是三个各自残缺的片段。聚合出来的结果可能比单次调用还差。
如果把这几个子任务分配给三个互不沟通的人类专家,他们各自能独立给出有意义的结果,那就可以并行化。如果不能,回到Prompt Chaining。
05模式四:Orchestrator-Workers,动态规划的代价
这是并行化的”动态版”。一个编排器LLM根据输入动态决定需要哪些子任务,分配给工人LLM执行,再由编排器合成最终结果。
输入 → 编排器LLM → [动态生成子任务] → 工人A → 结果A ─┐ → 工人B → 结果B ─┤→ 编排器 → 输出 → 工人C → 结果C ─┘与Parallelization的关键区别:子任务不是预先定义的,而是编排器根据输入实时规划的。
比如一个编码任务,编排器分析完需求后决定需要修改哪些文件,每个文件分配给一个工人各自修改,最后由编排器合并所有改动。
这是我观察到团队最容易过度使用的模式。
它的诱惑力很强:灵活、通用、架构图画出来最像”真正的AI”。
但它的隐性代价同样巨大。
第一,编排器本身会出错。它可能遗漏该做的子任务,也可能生成完全不必要的子任务。你现在不仅要调试每个工人的输出质量,还要调试编排器的任务规划。调试复杂度不是线性增长,是指数级的。
第二,合并结果非常难。当三个工人各自修改了代码的不同部分,编排器需要理解所有改动之间的交互关系并正确合并。这本身就是一个难度极高的任务,很多时候比原始问题还难。
第三,延迟和成本不可预测。编排器可能决定拆出3个子任务,也可能拆出15个。你的SLA怎么定?成本预算怎么做?
升级到Orchestrator-Workers的唯一合理理由:你已经用数据证明了子任务确实无法提前预测。
果通过分析历史请求,你发现80%的情况下子任务是固定的那几种组合,那用Routing加上Parallelization就够了,不需要引入动态规划的复杂度。
06模式五:Evaluator-Optimizer,最强大也最危险
一个生成器LLM产出结果,一个评估器LLM打分并给反馈,生成器根据反馈修改,循环往复。类似写作中”作者加审稿人”的关系。
输入 → 生成器LLM → 输出 ↑ ↓ └── 评估器LLM(反馈)这个模式的威力在于,理论上可以逼近任意高的输出质量。每一轮反馈都在打磨结果。
代码生成是一个天然适合的场景:生成代码,跑测试,测试失败了把错误信息反馈给生成器修改,直到所有测试通过。这里的评估标准极其明确,”测试是否通过”是一个二元判断,没有模糊空间。
但这个模式有一个特征:迭代次数不可控。
如果评估器的标准定得太严,循环可能永远不会收敛。如果定得太松,输出质量提升有限,不如单次生成。
找到合适的评估标准本身就需要大量实验和调参,而这个调参过程往往比你省下的人工校验时间还长。
更现实的问题是,每一轮迭代都在消耗token和时间,而你在迭代开始前无法预知需要多少轮。
我见过一个翻译任务,评估器始终不满意某些措辞,循环跑了27轮才停下来,消耗的token量是单次生成的30倍。如果这个任务在生产环境跑,一个用户请求的成本就能吃掉整天的预算。
所以,Evaluator-Optimizer必须设置硬性退出条件。最大迭代次数、超时时间、最低分数阈值,至少要有一个。
07生产环境中被忽略的三个辅助模式
五种核心模式之外,实际部署中还有三个辅助模式经常被忽略,但对系统稳定性至关重要。
增强反馈(Reinforcement)
每次工具调用返回结果时,不只返回数据本身,还注入额外的上下文信息。包括任务提醒、当前进度、以及之前步骤的关键发现。
LLM的注意力是有限的,在长上下文中,早期信息会被逐渐”稀释”。每次工具调用后重新注入关键信息,相当于不断刷新LLM的”工作记忆”。
一个具体技巧:设计一个”自增强工具”,它的唯一功能是接收Agent当前的任务清单,然后原样返回。强迫Agent在每个关键节点重新审视自己的计划,避免在长流程中偏离目标。
失败隔离(Failure Isolation)
把可能失败的操作放到子Agent中执行。子Agent成功了,把结果返回主流程;失败了,只有子Agent的上下文被污染,主流程不受影响。
这大量失败信息涌入主上下文后,LLM的后续判断会严重偏移。它会变得过度关注之前的失败,要么过于保守不敢尝试,要么被错误信息带偏走向完全不相关的方向。失败隔离相当于给主流程加了一道防火墙。
共享文件系统
所有子Agent和子流程共享一个虚拟文件系统,任何一个工具产出的中间结果都可以通过文件系统被其他工具读取。
关键原则:不能有数据孤岛。架构中不能存在”产出了结果但没有其他组件能读取”的数据孤岛。一旦出现死胡同,系统就会在某些边界情况下产生不可预测的行为,而这类bug往往极难定位。
08选择的真正智慧:升级触发条件
把五种模式放在一起看,真正有价值的不是知道每种模式怎么工作,而是知道什么时候该从一种升级到另一种。
| 当前方案 | 升级触发条件 | 升级目标 |
|---|---|---|
| 单次LLM调用 | 准确率不够,单个提示词装不下所有逻辑 | Prompt Chaining |
| Prompt Chaining | 不同类型输入需要完全不同的处理流程 | 加Routing层 |
| Prompt Chaining | 多个步骤互相独立,串行延迟不可接受 | Parallelization |
| Parallelization | 子任务无法提前确定,必须动态规划 | Orchestrator-Workers |
| 任何模式 | 有明确可量化的评估标准,且迭代能带来可衡量的改进 | 叠加Evaluator-Optimizer |
每一次升级都必须回答一个问题:当前模式的哪个具体失败案例,迫使我不得不引入更多复杂度?
如果你答不上来,就还不到升级的时候。
还有一点很多架构文章不会告诉你:这五种模式可以组合嵌套。一个真实的生产系统可能长这样:
路由层 → [类别A: Prompt Chaining] → [类别B: Orchestrator-Workers内部套Evaluator-Optimizer] → [类别C: 单次LLM调用就够了]组合带来了巨大的灵活性,但也带来了组合爆炸的调试复杂度。
我的经验是嵌套不超过两层。如果你发现自己在画第三层嵌套的架构图,停下来,重新审视问题本身是否可以被简化。通常答案是可以的。
09一个值得持续思考的问题
AI Agent这个领域存在一种隐性的”复杂度崇拜”。Orchestrator-Workers听起来比Prompt Chaining高级得多,在技术分享会上画出来也更有面子。
但真正在生产环境里经历过凌晨三点被告警叫醒的人知道,最难的工程判断不是”我能构建多复杂的系统”,而是”我能忍住不把系统搞复杂”。
复杂度不是能力的证明,是成本。
每多一层抽象,就多一个出错的地方,多一个需要监控的指标,多一个新同事入职时需要理解的概念。
LLM的能力在快速提升,今天需要Orchestrator-Workers才能搞定的任务,半年后一个Prompt Chaining可能就够了。你的架构复杂度应该跟着模型能力动态调整,而不是在项目启动时就定死。
下次当你想升级Agent架构时,先问自己:当前方案的具体瓶颈是什么?我有数据证明吗?如果没有数据,就还不到升级的时候。
学AI大模型的正确顺序,千万不要搞错了
🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!
有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!
就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋
📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇
学习路线:
✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析
✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑
✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操
✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用
✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代
✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经
以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!
我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~