> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pathors.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Pathway 設計守則：一輪對話的跳轉與工具上限

> 了解每一輪對話中 agent 最多能跳幾個節點、執行幾次工具，以及如何用 prompt 控制節點之間的說話節奏

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

## 兩個上限

「一輪對話」指的是使用者說一句話、agent 回一句話之間的過程。在這一輪之內：

* **最多跳 4 個節點**（node 之間的轉移）
* **最多執行 4 個工具步驟**（一次同時呼叫多個工具仍算一步）

兩個上限**互不影響**：跳滿 4 個節點不會用掉工具的額度，反之亦然。撞到上限時 agent **不會靜音**，一定會用文字把這一輪收掉。

| 撞到哪個上限 | agent 會怎樣                              |
| ------ | -------------------------------------- |
| 節點跳轉用完 | 停在目前的節點，這一輪不再換節點，但仍可以查資料、呼叫工具，並正常回覆使用者 |
| 工具步驟用完 | 停止再呼叫工具，用手上已有的資訊直接回覆使用者                |
| 兩個都用完  | 停在目前節點，用手上的資訊回覆；下一輪一切重新計算              |

上限是「每一輪」重新計算的，不是整通對話的總額。一通長對話跳過幾十個節點完全正常。

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

有些人第一次看到「一輪跳了三個節點」會以為是流程設計壞了。多數時候不是——那是**使用者一次講完太多資訊**的正常結果。

想像一個保養預約的流程，設計上是「問服務項目 → 問車型 → 問里程 → 彙整確認」四個節點。如果使用者開口就說：

> 「我想預約定期保養，車子是 2019 年的，里程大概八萬公里。」

三個問題已經全部有答案了。這時候正確的行為是**直接跳到彙整節點**確認資訊，而不是照著節點順序再把「請問您要什麼服務？」「請問車型？」「請問里程？」重問一次。使用者剛講完的事被逐題重問，聽起來像沒在聽——這是語音對話裡最傷體驗的一種毛病。

所以連跳是功能，不是 bug。上限存在的目的只是避免它失控。

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

如果你的情境確實需要 agent 逐節點確認（例如每一步都要複誦讓對方核對），這是**提示詞層的要求，不是流程層的**。做法：

* 在節點的提示詞裡寫清楚：「先向使用者複誦目前掌握的資訊並取得確認，再進入下一步。」
* 在連線條件（edge condition）上加上「使用者已確認」這類前提，讓沒說話就跳過去不成立。
* 逐節點確認會拉長通話時間，只在真的需要核對的節點加，不要整條流程都加。

<Warning>
  不要在全域提示詞裡寫「直接路由到下一個節點，不要說話」這類指令。那等於明確授權 agent 連續跳轉且全程不出聲——對使用者來說就是講完話之後一段莫名其妙的沉默。要求「不要說話」和要求「每步都說話」是相反的兩件事，很容易寫反。
</Warning>

## 關於環狀流程

如果你的 pathway 有環（A → B → A），節點跳轉上限會是最後一道防線：agent 不會無止盡繞下去，撞到上限就停在原地把話講完。

但別把它當成設計許可。環只要沒有明確的離開條件，撞上限之前那幾次繞圈，使用者已經聽到 agent 在原地打轉了。做法是給每個回頭的連線一個明確條件（例如「使用者提供的資訊仍不完整」），並確保一定有一條路走得出去。
