你大概遇到过这种情况:想让大模型自己查资料、调工具、分几步把活干完,结果 Prompt 越堆越长,改一处崩一处。或者团队里有人喊要上多智能体,做出来却比单个模型还慢还贵。这篇不讲概念史,只按「一件活交给谁、怎么拆、在哪停」三个问题,把常见设计模式过一遍,并给出什么时候不该用它们的判断标准。
你大概遇到过这种情况:想让大模型自己查资料、调工具、分几步把活干完,结果 Prompt 越堆越长,改一处崩一处。或者团队里有人喊要上多智能体,做出来却比单个模型还慢还贵。这篇不讲概念史,只按「一件活交给谁、怎么拆、在哪停」三个问题,把常见设计模式过一遍。
先说清定位:设计模式不是架构图上的名词收藏,而是帮你做取舍的检查表。每引入一个模式,你都多付一笔代价——多一跳调用、多一份上下文、多一个出错的地方。所以下面每一节都配一条判断线和一个不适用情况,照着问自己,答不上来就先别上。
先判断要不要多个智能体
顺序很重要:先问「一个够不够」,答案是不确定就不要拆。单智能体加工具调用能覆盖的范围有明确边界——任务步骤可以提前枚举出来,单次决策不需要另一个角色来交叉验证。只要这两条都成立,先做单智能体,跑通了再谈拆。
| 判断维度 | 单智能体够用 | 值得拆多智能体 |
|---|---|---|
| 任务步骤 | 能提前列清 | 步骤依赖运行时结果动态变化 |
| 决策方式 | 一次判断定结果 | 需要两个以上角色互相挑错才敢交付 |
| 交付物 | 一个角色能独立完成 | 检索、执行、审核这类交付物天然分开 |
| 延迟敏感度 | 对响应时间敏感 | 允许跑几十秒甚至更久 |
| 失败代价 | 错了重跑成本低 | 错了要人工兜底,正确性优先 |
- 多智能体的真实代价:上下文在角色之间传递会丢信息,每多一跳就多一次延迟和一次计费
- 调试时很难复现是哪一环出的错,日志不全只能靠猜
- 一条简单判断线:一个领域的专家能独立把活干完,就用单智能体;需要两个以上角色互相挑错才敢交付,才值得上多智能体
- 不适用情况:流程本身很短、对延迟敏感的场景,拆成多智能体通常得不偿失,收益还不够付协调成本
角色划分与工具边界怎么定
拆角色的第一条规矩:按「职责」拆,不按「技能」拆。检索、执行、审核这种能各交出一份独立产物的角色,比「会写代码的」「会写文案的」稳定得多。后者本质是按能力切,模型换个说法就串岗。
- 写清三件事给每个角色定义输入什么、输出什么格式、什么时候算做完。三样里缺一样,说明这个角色还没拆干净,先回到上个问题重新想。
- 收紧工具清单每个角色只暴露它真用得上的工具。工具越长,选错工具的概率越高,而且你很难在日志里看出它是「不会用」还是「选错了」。
- 对照接口参数工具的参数名、可调模型别凭记忆写,到 /stacks/agent-apis 对照当时的说明,避免本地写通、线上报错。
- 做一次空跑验证每个角色单独跑一遍,只喂固定输入,看输出格式是否稳定。这一步能挡掉大部分后续联调问题。
循环、状态与终止条件
推进方式先选最简单的。常见三种:固定步数的流水线、带反馈的循环(做完检查不合格就退回)、按需分发的路由。能用流水线解决就别上循环,循环一多,排查成本指数上升。
- 流水线
- 步骤固定、顺序执行,最容易复现和估算成本
- 带反馈循环
- 有校验环节,不合格就回退重做,灵活但容易绕圈
- 路由分发
- 先判断任务类型再决定走哪条链,适合入口杂但链路相对固定的场景
- 终止条件必须外置成可判断的规则:步数上限、连续两次没有新信息、工具返回明确失败,三者满足其一就停
- 别只靠模型自己说「我完成了」,这句话在日志里不是证据
- 状态存哪里提前定:临时任务放会话上下文,跨会话或多轮业务放外部存储
- 排查顺序:先看是不是卡在循环里出不来,再看工具调用参数是否写错,最后才怀疑模型能力
成本口径与可观测性
多轮智能体是按量计费里最容易失控的一类:一次用户请求可能触发好几次模型调用,成本要按「每次任务的实际调用次数」估,不要按单次问答估。这个口径想错了,上线后账对不上会很难解释。
上线前先量延迟基线,再谈优化。站内 /tools/speed-test 可以先跑出你自己的接口延迟参考,拿这个数当基准,别用别人的体感数字做决策。
| 要留的日志 | 为什么 | 缺了会怎样 |
|---|---|---|
| 每步输入输出 | 复现问题现场 | 只能靠猜是哪一步崩的 |
| 用了哪个工具 | 判断是选错还是参数错 | 分不清模型问题还是配置问题 |
| token 消耗 | 按任务核算成本 | 费用异常时找不到源头 |
| 终止原因 | 区分正常完成和超限退出 | 误以为效果稳定,其实一直在兜底 |
- 成本口径和单价随时会变,具体数字到 /official-api 和 /tools/model-cost-calculator 按当时的价目算一遍
- 想横向比价或看价格变动,可以到 /price-watch 跟踪一段时间再下结论
- 日志三个人都看得懂才算合格:产品、开发、运维拿去都能对上号
常见问题
智能体设计模式有标准答案吗?
没有。同一个业务,用单智能体加工具调用和用多智能体编排都能跑通,差别在可维护性和成本。选型时优先看任务步骤能不能枚举、需不需要交叉验证、延迟能不能接受,这三点比追新架构重要得多。
多智能体一定比单智能体效果好吗?
不一定。多智能体擅长的是把一个复杂判断拆成几个独立角色互相挑错,代价是信息在多跳传递中会衰减,延迟和调用次数也会成倍上升。任务本身简单、步骤顺序固定时,单智能体反而更稳更便宜。
怎么判断一个智能体是不是该重构了?
看三个信号:提示词里条件分支越加越多、同一个工具反复被调错、出问题时说不清是哪一步坏的。出现其中两个,通常说明角色边界或终止条件没定清楚,该拆就拆,该收就收。