跳转到内容

流程编排模式与调试技巧

六个可复用的编排模式 + 一套标准调试流程。搭建新 Agent 时,先看你的需求匹配哪个模式,不要从空白画布凭空开始。

六个常用编排模式

模式 1:直连问答 (最小 Chatflow)

Start ─▶ LLM ─▶ Answer

适用:单一职责的问答助手。任何 Chatflow 都应该先搭出这个骨架跑通,再加复杂度。

模式 2:意图路由 (客服类标配)

Start ─▶ Question Classifier ─┬▶ 分支A(LLM 知识问答)─┐
                              ├▶ 分支B(Tool 查数据)  ─┼▶ Branch Aggregator ─▶ Answer
                              └▶ 分支C(兜底话术)     ─┘

适用:用户问题类型多样的场景。语义级分流用 Question Classifier,字段级判断 (如"金额 > 0") 用 IF Else。

模式 3:工具增强 (先查后答)

Start ─▶ Tool / Http Request ─▶ LLM(基于数据作答)─▶ Answer

适用:回答需要实时数据 (行情、公告)。要点:让 LLM 只基于工具返回的数据作答,在提示词中明确"数据以工具返回为准,不得编造"。

模式 4:自主 Agent(让模型自己决定调什么)

Start ─▶ Agent(挂载多个工具)─▶ Answer

适用:任务路径不固定、需要多步推理的场景。Agent 节点采用 Function Calling 模式:模型通过函数调用自主使用工具,循环执行直到任务完成。注意:自主性越强越要用试运行覆盖各种输入,并配合合规护栏。

模式 5:流水线加工 (Workflow 标配)

Start ─▶ Http Request(取数)─▶ LLM(结构化输出)─▶ Variables Transformer(排版)─▶ End

适用:研报生成、内容加工等一次进一次出的任务。

模式 6:批量处理

Start ─▶ Iteration(并行)[ 子流程: LLM / Code ] ─▶ LLM(汇总)─▶ End

适用:对列表逐项处理再汇总。数据量大时开 Iteration 并行模式,并配置错误处理避免单项失败拖垮整体。

编排原则

  1. 先跑通最小链路,再逐段加节点 —— 每加一个节点就试运行一次,问题定位永远只在最新加的一段
  2. 单一节点单一职责 —— 一个 LLM 节点又分类又生成又排版,不如拆成分类器 + 生成 + Transformer,分开各自可测
  3. 凡分支必有兜底 —— Question Classifier 设"其他"分类,IF Else 用好 Else 分支,不让任何输入走进死路
  4. 给节点写注释 —— 复杂流程里每个节点的注释写清"输入什么、做什么、输出什么",团队协作和三个月后的自己都会感谢你
  5. 控制成本 —— LLM/Agent 节点是主要成本来源:能用 IF Else/Code 判断的不用 LLM 判断;记忆窗口开够用的最小值;批量任务评估调用次数

标准调试流程

1. 单节点试运行

除 IF Else、Branch Aggregator 等纯路由/聚合节点外,处理类节点 (LLM、Agent、Tool、Code、Iteration、Loop、Parameter Extractor 等) 均可点击节点上的运行按钮单独测试 (以节点上是否出现运行按钮为准)。配置完一个节点立即试运行,不要攒到最后。

2. 全流程测试的用例设计

每个 Agent 至少准备三类用例:

用例类型例子验证什么
正常输入"什么是市盈率?"主流程正确
边界输入空消息、超长文本、中英混杂、表情流程不报错、有兜底
越界输入"帮我推荐一只必涨的股票"合规护栏生效

3. 常见故障定位表

现象先查什么
流程没走到预期分支试运行分类器/条件节点,看分类结果或条件值;检查分类描述是否可区分
LLM 输出不稳定提示词是否有明确格式约束;需要精确字段就改结构化输出
Http Request 失败先在节点内试运行看状态码;检查 URL、请求头、鉴权、参数
Iteration 部分元素失败查错误处理配置;单独拿失败元素的数据试运行子流程
回答带出了不该说的内容把 bad case 加进 System Prompt 的 ❌ 示例;必要时在下游加规则校验

4. 上线前回归

提示词或流程有改动时,把三类用例完整跑一遍再发布,避免"改好一处、弄坏另一处"。