Appearance
Q88 · AI Agent 的主流设计模式有哪些?
假设电商客服收到售后单 R-2041:“鞋子签收第 9 天开胶了,想退款。”系统要查订单和政策、判断还缺不缺照片、写回复草稿,但不能自行退款或发送。如果所有售后单都按相同顺序处理,代码预设步骤就很容易检查;如果不同问题需要不同资料,系统要能选路;如果遇到缺失材料或工具错误,下一步还可能依赖刚得到的结果。这些变化,正是选择 Agent 设计模式的原因。
本文沿用 Anthropic《Building effective agents》中的一组常见模式,并加上客服例子讲解。它区分两类“智能体系统”:**workflow(工作流)**由代码预设主要执行路径,模型在路径中的指定位置完成任务;**agent(动态智能体)**由模型根据工具返回和环境反馈决定后续步骤。行业中“Agent”这个词也常被宽泛用于包括工作流的系统,所以交流时最好说清“谁决定下一步”。这些模式是可组合的工程做法,并非强制遵守的行业标准或从低到高的能力等级。Anthropic:Building effective agents
先把术语对上具体事情
以下政策均为虚构示例,不代表真实平台政策或法律判断。假设平台有一条“自签收起 7 天内的无理由退货”规则;“鞋子开胶”可能走单独的质量问题处理流程,需要核对订单与商品照片。签收第 9 天只能说明已超过该假设的无理由窗口,不能直接得出质量问题不可处理或必须退款。所有模式面对的都是同一张 R-2041 售后单。
| 术语 | 意思 | 本例 |
|---|---|---|
| LLM(大语言模型) | 根据输入生成文字,也能按约定选择工具的模型 | 理解客户诉求、写回复草稿 |
| 工具 | 应用提供的可调用能力,有明确输入和返回 | 查询订单、检索正式政策、读取售后附件 |
| workflow(工作流) | 代码事先规定步骤或分支的执行结构 | 先分类,再查对应规则,最后写草稿 |
| agent(动态智能体) | 模型依据当前结果选择下一步工具或何时停止的执行结构 | 查到缺照片后,改为请客户补材料 |
| 提示链(prompt chaining) | 多个模型调用按固定顺序接力,上一段输出交给下一段 | 先抽取事实,再草拟回复 |
| 路由(routing) | 先判定输入属于哪一类,再走相应处理分支 | “质量问题”与“无理由退货”走不同规则 |
| 并行(parallelization) | 彼此无依赖的工作同时进行,结束后汇合 | 同时查订单签收日和质量问题政策 |
| 编排者—执行者(orchestrator–workers) | 中央模型按当前任务拆分子任务,交给多个执行者处理并汇总 | 看见开胶诉求后决定要核对政策、订单和附件 |
| 评估—优化(evaluator–optimizer) | 先产出候选答案,再按明确标准检查、给反馈并修订 | 检查草稿是否把“第 9 天”误写成自动拒绝 |
| 工具循环 | 模型选工具、读返回、再决定动作,直到完成或停止 | 查附件发现缺照片,就停下询问客服 |
| 关口 / 停止条件 | 代码设定“什么情况下不能继续”或“何时结束” | 无订单核验不判断;发送或退款需人确认 |
| 延迟 / 成本 | 用户等待时间 / 模型和工具调用带来的费用 | 多轮检查会比一次调用更慢、更贵 |
这张表的“模型”只是流程中的一个部件。查询工具返回的“签收日期”、照片是否存在、政策版本等是外部事实,不能由模型想象补齐;无论采用哪种模式,应用都应限制能读哪些订单、能执行哪些动作。

第一层:路径已知时,用固定工作流
提示链把大任务拆成几步较小的模型调用。处理 R-2041 可以先从客户原话抽取“商品:鞋子;签收第 9 天;问题:开胶;诉求:退款”,再读正式政策和订单结果,最后生成草稿。每一步都有可检查的输入与输出,抽取结果若漏了“第 9 天”就不放行。它适合步骤顺序稳定、每步目标明确的任务;代价是多次模型调用增加延迟,前一步的错误会传给后一步。特别要注意:把三段提示词连起来不会自动验证事实,业务字段还应由订单工具核对。Anthropic:Prompt chaining
路由先给输入分类,再交给专门路径。R-2041 里有“开胶”,应进入质量问题处理路径;若另一张单只是“买大了想退”,则可能走无理由退货路径。分类可由规则、传统分类器或模型完成,关键是它要达到足够的准确率,并能表达“不确定,交给人复核”。若只看“第 9 天”,把开胶误判为超出无理由窗口并直接拒绝,就是路由错误带来的业务错误。路由适合确有不同规则、不同工具或不同专长的请求;类别边界含糊时,维护路由本身有成本。Anthropic:Routing
并行把互不依赖的工作同时做,再等结果汇合。售后单已附订单号时,可以同时查“实际签收日期”和“当前有效的质量问题处理政策”;两者都到齐后再拟回复。这里的“同时”不等于两条分支可以各自退款,也不等于总时长一定减半:较慢分支仍决定汇合时刻,调用数可能增加。如果政策查询失败,不能把空结果当作“无质量问题政策”;应等待有上限的重试、降级为人工核对,或明确说明尚无法判断。并行适合独立子任务或多视角审阅;有依赖的事必须串行,例如先拿到订单号才能查询对应订单。Anthropic:Parallelization
三者可以组合:先路由到“质量问题”分支,在分支里并行查订单和政策,结果回来后用提示链抽取证据、生成草稿。组合时仍是工作流,因为“分类后查什么、何时汇合、何时写草稿”由应用规定。若单一检索加一次模型回答已经可靠,就无须为了展示模式把流程拆成多次调用。Anthropic 的建议也是先采用足够简单的方案,仅在评测证明确有收益时增加复杂度。Anthropic:Building effective agents
第二层:子任务难以预先列全时,让编排者拆解
编排者—执行者模式在外层仍有固定结构:“编排者决定子任务 → 执行者完成 → 编排者合并”。变化的是子任务由中央模型根据当前输入动态提出。R-2041 里“签收第 9 天”和“开胶”同时出现,编排者可能安排一个执行者核对订单,一个查质量处理规则,一个看附件是否有清晰照片。若换成“少发一只鞋”,它可能换成核对发货重量和仓库记录。子任务集合不能像普通并行那样事先完全写死。Anthropic:Orchestrator-workers
编排者不应只是把一个简单问题拆成很多人做。它要说明每个执行者的输入、允许的工具、期望产物和完成界限;合并时还要检查相互冲突的结果。假设订单执行者说“签收第 9 天”,附件执行者说“未上传照片”,编排者只能起草“请补充开胶部位照片以便继续核查”,不能把“缺照片”推成“客户虚假申诉”。多个执行者会增加调用成本、协调和合并难度;如果子任务可预先列出,用固定并行更简单。Anthropic 把这种模式归为 workflow:外层编排和回收机制是预设的,即使中央模型会动态拆子任务;不要把“有一个模型负责分工”直接等同于完全自主 Agent。Anthropic:Building effective agents
第三层:答案可判好坏时,加有界的检查与修订
评估—优化让一个模型或步骤先写草稿,另一个按标准指出问题,再修改。R-2041 的草稿验收标准可以明确写成:准确提到“签收第 9 天”、不把无理由 7 天规则误当质量问题结论、不编造已退款、说明缺少照片、语气礼貌、不给出未经批准的承诺。第一次草稿若写“超过 7 天,无法处理”,评估器指出误用规则,生成器据此改成“质量问题需核查订单和照片”。这种模式适合有可操作的评价标准且修订能明显提高质量的任务。Anthropic:Evaluator-optimizer
评估器不能凭同样的错误资料凭空创造正确政策;最好让它看到正式政策原文和订单工具结果,并结合程序化检查,例如禁止未经授权的“已退款”措辞。设置最多两轮之类的上限,若仍有事实争议就交人复核。否则两个模型可能互相改写、越写越长却没有更准确。评估—优化是输出质量循环,与 Agent 的“根据环境反馈选下一步工具”不是同一件事;一个系统可以同时有两种循环,但应分别设退出条件。
最后一层:步骤数和路径真无法预估时,用动态工具循环
假如客服提出的任务范围变成“帮我核查这个复杂申诉,列出还需要什么证据”,不同订单可能缺照片、缺签收信息、政策版本冲突或仓库记录异常。此时固定路径会出现大量分支,Agent 可以在许可范围内反复做“选择工具 → 读取真实返回 → 判断下一步”。对 R-2041,它先查订单确认为签收第 9 天,再查政策发现质量问题需证据,再读附件发现没有照片,于是停止进一步判断并向客服提出请客户补照片的草稿。如果附件已有清晰照片,下一步可能是把资料交给质检,而不是再要求同一张照片。Anthropic 对 Agent 的描述正是模型根据环境反馈控制流程和工具使用,并设置完成条件或最大迭代次数。Anthropic:Agents
动态性有代价:模型可能选错工具、误读返回、反复查同一份附件,错误在多步中累积。因此要给工具写清参数与边界,限制最大步数、时间和费用,记录每次调用及证据,重复状态时停止,重要动作前设置人工确认。**模型可以决定在已授权范围内查什么,不能自己扩大权限或批准退款。**如果流程能用清楚的固定分支表达,固定工作流更可预测;若开放任务确需临场决定步骤,再用 Agent 并针对异常路径测试。Anthropic 也提醒自主 Agent 成本更高,误差可能累积,适宜在受控环境中充分测试。Anthropic:Building effective agents
把模式选型落到同一张单上
| 问题 | 优先考虑 | 对 R-2041 的实际决策 | 主要代价或风险 |
|---|---|---|---|
| 单次查资料就能答? | 一次检索加模型调用 | 只问“现行无理由规则是什么”即可查正式条款 | 仍需确认资料版本 |
| 步骤顺序固定? | 提示链 | 抽取字段 → 核验 → 写草稿 | 多次调用;上游错误传递 |
| 不同类别要走不同规则? | 路由 | 开胶进入质量问题路径 | 错分会把质量申诉误拒 |
| 子任务已知且互不依赖? | 并行 | 同时查订单签收日与政策 | 等最慢分支;汇合处理失败 |
| 子任务随输入变化,难列全? | 编排者—执行者 | 动态决定查附件、订单、规则 | 分工、合并和成本增加 |
| 草稿有明确验收标准? | 评估—优化 | 查找不实承诺和政策误用后修订 | 自评可能共享同一错误;需轮次上限 |
| 下一步取决于工具的新发现? | 动态 Agent 工具循环 | 发现缺照片后改为请补材料 | 循环、越权、误动作和累积误差 |
这张表表达的是先诊断任务特征,再选可组合的结构。真实系统可能“路由 + 并行 + 有界评估”,也可能完全不需要多步 Agent。部署前用真实脱敏样本比较答案准确率、越权率、人工接管率、平均与尾部时延、调用成本;若复杂方案只让报告更长、指标并无改善,就回到较简单的实现。退款和发送这样的外部动作,在所有模式中都应由后端权限规则和人工审批控制。
面试时可以这样说
我会先分清固定 workflow 和动态 agent:前者主要路径由代码安排,后者根据工具和环境反馈决定下一步。常见工作流模式有提示链、路由、并行、编排者—执行者和评估—优化;动态 Agent 则是在授权工具范围内循环观察、行动、再观察。比如一张“签收第 9 天鞋子开胶”的售后单,固定链可以先抽取事实再查规则、写草稿;路由到质量问题分支;订单与政策可并行查询;若要按具体情况动态决定查哪些材料,可用编排者或 Agent;草稿再按“不得编造已退款”等标准做有界评估。选择时先看步骤是否可预设、子任务是否独立、反馈会不会改变下一步,并把延迟、成本、停止条件、权限和人工确认一起算进去。
若被追问“编排者也是模型决定任务,为什么仍叫 workflow”,可以回答:按 Anthropic 的划分,外层的“分工、执行、回收”结构由代码固定,模型决定的是其中的子任务;动态 Agent 对后续行动路径有更持续的控制。若被追问“哪个最先进”,可以回答:没有普适赢家,能用一次调用或清晰工作流可靠完成的任务,就不应为了名称升级;以实际评测和风险约束决定复杂度。
资料来源
- Anthropic:Building effective agents:workflow 与 agent 的区分、五种工作流模式、动态工具循环及适用代价。
- Anthropic 官方 Cookbook:Building Effective Agents:上述模式的示例实现入口;本文不依赖特定框架版本。