生成與推論
Stop Sequences 停止序列是什麼?叫 AI 說到這裡就閉嘴
Stop Sequences 中文叫停止序列,是一個或多個字串組成的清單。當 AI 在生成文字的過程中遇到清單裡的任何一個字串時,就會立刻停止輸出,不再繼續生成後面的內容。它常用來控制結構化輸出、多輪對話與程式碼區塊的結束位置,讓回應乾淨、可預期,不會多說一句廢話。
Stop Sequences 停止序列是什麼?叫 AI 說到這裡就閉嘴
你請 AI 回一段 JSON,它回完 JSON 還熱情地補了三句說明,害你後面的程式解析失敗。這種時候要用的就是停止序列。
它是呼叫 API 時常見的一個參數,名字通常叫 stop 或 stop_sequences。設定好之後,AI 說到指定符號就會自動收手。
你將學到什麼
定義
一份字串清單,AI 生成時遇到其中任一個就立刻停止輸出。
白話比喻
像跟人約好一個暗號,聽到暗號就不要再講下去。
常見用途
結構化輸出、多輪對話控制、程式碼區塊收尾。
跟誰容易搞混
常跟最大輸出代幣混淆,一個管內容,一個管長度。
定義
Stop Sequences 中文叫停止序列,是一個或多個字串組成的清單。當 AI 在生成文字的過程中,遇到這些字串中的任一個時,就會立刻停止輸出,不會再繼續生成後面的內容。
整個流程很單純:使用者發出請求 → AI 開始生成 → 遇到停止序列 → 強制停止輸出。停止點之後的內容不會被輸出。
常見的停止序列
| 停止序列 | 說明 |
|---|---|
| 換行符號 | 遇到換行就停止,常用於單行輸出 |
| [END] | 自訂的結束標記,最直覺也最常用 |
| 三個井字號 | Markdown 分隔符號,常用於分段輸出 |
| 模型內建的結束符號 | 某些開源模型會使用自己的結束標記 |
實際用例
第一種是結構化輸出。要 AI 只回一段 JSON 時,把連續兩個換行設成停止序列,它吐完物件就會停,不會再補一段親切的說明。
第二種是多輪對話控制。模擬對話時把下一個發言者的標記設成停止序列,AI 就不會自己演完雙方的台詞。第三種是程式碼輸出,把程式碼區塊的收尾符號設成停止序列,避免它在後面多寫一堆解釋。
{
"model": "your-model-name",
"messages": [...],
"stop": ["[END]", "###"],
"max_tokens": 500
}
跟最大輸出代幣差在哪
| 面向 | Stop Sequences 停止序列 | Max Output Tokens 最大輸出代幣 |
|---|---|---|
| 依據 | 基於內容,遇到特定符號就停 | 基於長度,達到代幣上限才停 |
| 結束位置 | 精準停在剛好需要的地方 | 可能在句子中間突然截斷 |
| 適合場景 | 結構化輸出、分段控制、多輪對話 | 控制成本與長度上限,避免過長回應 |
兩者不衝突,實務上通常一起設。停止序列負責讓輸出乾淨,長度上限負責當最後的保險。想把提示詞寫得更可控,可以再看 Prompt 提示詞 這一篇。
常見誤解誤解一,以為停止序列可以寫正則表達式。不行,它就是一段固定字串,一字不差才會觸發。誤解二,把太常出現的字元設成停止序列,例如中文的句號,結果 AI 講完第一句就停了。挑符號的原則是:正常內容裡不會出現,只有你要它結束時才會出現。
本文源起本文內容出自酒Ann 的「AI 實戰陪跑班」課程教材,由酒Ann 編寫成彙編條目。想系統性搞懂 AI 名詞,歡迎追蹤 酒Ann 的 Facebook。
延伸學習
常見問答
停止序列可以設定幾個?
可以設定多個,實際上限依平台而定。設定多個時,AI 只要遇到其中任何一個就會停止,不需要全部符合。常見的組合是換行符號、自訂結束標記與分隔符號一起設。
設了停止序列,AI 就一定會停嗎?
不一定。停止序列只在模型真的輸出那個字串時才會觸發。如果模型從頭到尾都沒生出那個符號,它就不會提前停止,還是會一路寫到最大輸出長度為止。所以停止序列通常要搭配長度上限一起用。
停止序列會出現在最後的回應裡嗎?
多數平台不會把觸發停止的那個字串包含在回傳內容中,你拿到的是停止點之前的文字。細節依各家 API 實作而異,串接前值得先用一個小範例實測一次。

