除了撰寫更好的提示之外,還有兩種強大的技術可用於控制 Claude 的輸出:預填助理訊息(prefilled assistant messages)和停止序列(stop sequences)。這些方法讓您能夠精確控制 Claude 如何回應以及何時停止生成文本。
預填助理訊息
訊息預填讓您能夠提供 Claude 回應的開頭,這會強烈影響其答案的方向。您不必讓 Claude 自行決定如何開始回應,而是給它一個特定的開場,引導對話的走向。

運作方式如下:您建立正常的訊息列表,包含使用者的問題,但接著在最後加入一則助理訊息,其中包含您想要的回應開頭。當 Claude 處理這個訊息時,它會看到這則助理訊息,並認為「我已經開始回答這個問題了,所以我應該從我停下的地方繼續」。

舉例來說,如果您問「早餐喝茶還是咖啡比較好?」並預填「咖啡比較好,因為」,Claude 會從那個點繼續,並建構一個支持咖啡的回應。關鍵的洞察是,Claude 會準確地從您預填文本結束的地方接續下去——它不會重複您已經寫的內容。
讓我們實際看看:
messages = []
add_user_message(messages, "Is coffee or tea better for breakfast?")
add_assistant_message(messages, "Coffee is better because")
chat(messages)這會回傳類似「它含有更多咖啡因」的內容。請注意,Claude 是直接從您預填的文本繼續,所以您需要將兩部分結合起來,才能得到完整的回應:「咖啡比較好,因為它含有更多咖啡因。」
您可以透過改變預填文本,將 Claude 引導至任何方向:
"Tea is better because"(茶比較好,因為)——推向茶"They are the same because"(它們是一樣的,因為)——建立中立的回應
停止序列
停止序列會強制 Claude 在生成特定文本時立即結束其回應。當您想要在特定點截斷輸出,或防止 Claude 繼續超過某個標記時,這非常有用。

這個概念很直接:您提供一個字串列表,一旦 Claude 生成其中任何一個字串,它就會停止並回傳目前已生成的內容。停止序列本身不會包含在回應中。
要使用停止序列,您需要修改您的聊天函式,使其能夠接受停止序列作為參數:
def chat(messages, system=None, temperature=1.0, stop_sequences=[]):
params = {
"modelId": model_id,
"messages": messages,
"inferenceConfig": {
"temperature": temperature,
"stopSequences": stop_sequences
},
}這是一個實際的範例:
messages = []
add_user_message(messages, "Count from 1 to 10")
chat(messages, stop_sequences=["5"])這會回傳「1, 2, 3, 4,」並在包含「5」之前停止。您可以指定多個停止序列,Claude 會在遇到其中任何一個時停止:
chat(messages, stop_sequences=["5", "3, 4"])停止序列特別適用於:
- 控制回應的長度
- 在結構化輸出中的自然斷點處停止
- 防止 Claude 繼續超過特定的標記或分隔符
這兩種技術都能讓您對 Claude 的行為進行精細控制,使您能夠以單純提示無法達成的方式來塑造回應。