Claude API 預填充(prefill)不能用了怎麼辦:替代寫法改造提示詞(結構化輸出、直接指令、XML 標籤、續寫)

老代碼裏用「預填充 assistant 消息」來強制 JSON 開頭、跳過開場白或續寫被截斷的回答,升級到 Claude 4.6 及之後的模型後請求報 400 時用:把調用代碼貼給 Claude,讓它判斷每處預填充屬於哪種用途,並按官方給的替代方案逐處改寫。

NNathaniel bigo··原創首發·AI 輔助撰寫
Claude 對話模型通用
我的代碼在調用 Claude API 時使用了預填充(在 messages 最後放一條 assistant 消息,讓模型接着寫)。升級模型後需要去掉這種用法。請幫我逐處改造。

<code>
[粘貼調用代碼]
</code>

目標模型:[目標模型]
使用的 SDK 與語言:[SDK 與語言]
下游怎麼用返回結果:[下游如何使用結果]

請按下面的對照關係處理每一處預填充:

<migration_map>
A. 用來強制輸出格式(如以左花括號開頭逼出 JSON、限定分類標籤)
   → 優先改用結構化輸出(給定 schema);分類任務可改用帶枚舉字段的工具或結構化輸出;也可以先直接要求按指定結構輸出,並在代碼裏加校驗和重試。
B. 用來去掉開場白(如預填「以下是摘要:」)
   → 在 system 提示詞裏直接說明:直接給出結果,不要以「以下是」「根據」之類的話開頭;或要求把結果放進指定的 XML 標籤,由代碼截取;偶爾漏網的開場白在後處理裏去掉。
C. 用來接着寫被截斷的內容或續寫
   → 把續寫要求放進 user 消息,並附上被截斷回答的結尾原文,說明「上一次回答在這裏中斷,請從這裏繼續」;如果只是錯誤重試、對體驗無影響,直接重新請求。
D. 用來在長對話裏反覆提醒角色或注入上下文
   → 把提醒內容放進 user 消息,或通過工具、上下文整理機制提供。
E. 用來規避不必要的拒答
   → 去掉預填充,在 user 消息裏把任務背景和合理用途寫清楚即可。
</migration_map>

輸出:
一、清單:代碼位置 | 原預填充內容 | 屬於 A–E 哪一類 | 採用的替代方案 | 改動風險。
二、改造後的完整代碼(保持原有業務邏輯,只改與預填充相關的部分),以及需要同步修改的 system 提示詞。
三、下游解析代碼需要相應調整的地方(例如原來靠拼接預填充的左花括號才能解析)。
四、建議的迴歸測試:用哪些輸入驗證改造前後輸出一致。
不確定某處預填充的意圖時,先問我,不要猜。

高亮處換成你自己的內容:[粘貼調用代碼]、[目標模型]、[SDK 與語言]、[下游如何使用結果]

Claude Pro 充值

已被複製 0 次

使用說明

背景事實(據 Anthropic 官方提示詞最佳實踐頁面,資料核對於 2026-10-10):從 Claude 4.6 系列模型開始,不再支持在最後一條 assistant 消息上做預填充,帶這種預填充的請求會返回 400 錯誤;更早的模型仍然支持,對話中間位置的 assistant 消息不受影響。官方的解釋是模型的指令遵循能力已經提高,多數預填充場景不再需要它,並給出了按用途分類的替代辦法——提示詞裏 <migration_map> 的五類就是據此整理的。

怎麼填變量:[下游如何使用結果] 很關鍵。很多老代碼會把預填充的 { 和模型輸出拼起來再解析,去掉預填充後這段拼接也得刪,否則會多出一個括號。[目標模型] 寫你要升級到的型號名,結構化輸出等功能的可用範圍以官方文檔對該型號的說明為準。

常見問題與調整:

  • 改成直接指令後偶爾還有一句開場白 → 這是官方也提到的情況,穩妥的做法是讓結果進 XML 標籤或用結構化輸出,再加一層後處理。
  • 分類任務輸出了標籤以外的詞 → 改用帶枚舉的工具定義或結構化輸出,比提示詞約束可靠。
  • 只是想快速確認問題 → 先搜尋代碼裏 messages 數組末尾 role 為 assistant 的地方,這些就是需要改的位置。

示例輸出

示例,僅供參考(Python,原代碼用預填充左花括號強制 JSON)
代碼位置原預填充類別替代方案風險
extract.py 第 41 行{"role": "assistant", "content": "{"}A改用結構化輸出並提供 schema;刪除末尾 assistant 消息低;需同步改解析

下游調整:第 47 行 json.loads("{" + resp_text) 改為直接解析返回內容,不再手動補左花括號。

迴歸測試:取 30 條歷史輸入,比較改造前後各字段的取值是否一致,重點看缺失字段的表示方式有沒有變化。

同款作品

用這條提示詞做出來的作品;原作者會因此獲得積分

做同款

還沒有同款,來做第一個。

Nathaniel 的更多內容

同主題

同模型

0 條評論

登入 後參與評論

還沒有評論,來搶沙發~