Skip to main content
設計 pathway 時,有兩個上限值得先知道。它們不是給你調的旋鈕,而是在流程設計出錯時把對話拉回來的安全網——理解它們,你就能預期 agent 在極端情況下會怎麼表現。

兩個上限

「一輪對話」指的是使用者說一句話、agent 回一句話之間的過程。在這一輪之內:
  • 最多跳 4 個節點(node 之間的轉移)
  • 最多執行 4 個工具步驟(一次同時呼叫多個工具仍算一步)
兩個上限互不影響:跳滿 4 個節點不會用掉工具的額度,反之亦然。撞到上限時 agent 不會靜音,一定會用文字把這一輪收掉。 上限是「每一輪」重新計算的,不是整通對話的總額。一通長對話跳過幾十個節點完全正常。

一輪連跳多個節點是刻意允許的

有些人第一次看到「一輪跳了三個節點」會以為是流程設計壞了。多數時候不是——那是使用者一次講完太多資訊的正常結果。 想像一個保養預約的流程,設計上是「問服務項目 → 問車型 → 問里程 → 彙整確認」四個節點。如果使用者開口就說:
「我想預約定期保養,車子是 2019 年的,里程大概八萬公里。」
三個問題已經全部有答案了。這時候正確的行為是直接跳到彙整節點確認資訊,而不是照著節點順序再把「請問您要什麼服務?」「請問車型?」「請問里程?」重問一次。使用者剛講完的事被逐題重問,聽起來像沒在聽——這是語音對話裡最傷體驗的一種毛病。 所以連跳是功能,不是 bug。上限存在的目的只是避免它失控。

想讓 agent 每跳一個節點就講一次話

如果你的情境確實需要 agent 逐節點確認(例如每一步都要複誦讓對方核對),這是提示詞層的要求,不是流程層的。做法:
  • 在節點的提示詞裡寫清楚:「先向使用者複誦目前掌握的資訊並取得確認,再進入下一步。」
  • 在連線條件(edge condition)上加上「使用者已確認」這類前提,讓沒說話就跳過去不成立。
  • 逐節點確認會拉長通話時間,只在真的需要核對的節點加,不要整條流程都加。
不要在全域提示詞裡寫「直接路由到下一個節點,不要說話」這類指令。那等於明確授權 agent 連續跳轉且全程不出聲——對使用者來說就是講完話之後一段莫名其妙的沉默。要求「不要說話」和要求「每步都說話」是相反的兩件事,很容易寫反。

關於環狀流程

如果你的 pathway 有環(A → B → A),節點跳轉上限會是最後一道防線:agent 不會無止盡繞下去,撞到上限就停在原地把話講完。 但別把它當成設計許可。環只要沒有明確的離開條件,撞上限之前那幾次繞圈,使用者已經聽到 agent 在原地打轉了。做法是給每個回頭的連線一個明確條件(例如「使用者提供的資訊仍不完整」),並確保一定有一條路走得出去。