跳轉到內容

流程編排模式與除錯技巧

六個可複用的編排模式 + 一套標準除錯流程。搭建新 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. 上線前回歸

提示詞或流程有改動時,把三類用例完整跑一遍再發布,避免"改好一處、弄壞另一處"。