你已經在網頁應用、批次腳本和筆記本裡重複貼上相同的模型名稱、系統提示詞和 temperature。現在想調整其中一個參數,就得同時改三個地方。OpenRouter 的 Presets 就是為了解決這個問題而設計的:把 LLM 呼叫的設定當成程式碼來管理,定義一次,處處引用。
什麼是 Preset?
Preset 是一個具名、有版本的設定檔,裡面儲存了模型選擇(單一模型或 fallback 陣列)、系統提示詞、provider 路由偏好、取樣參數(如 temperature、top_p),以及工具(包括 OpenRouter 的 server tools,例如網頁搜尋、圖片生成、advisors 和 subagents)。
你可以把它想成 .env 檔或 Terraform module:設定獨立於應用程式邏輯之外,用名稱參照,而不是複製進程式碼。差別在於存放位置和誰能修改。.env 檔跟著 repo 走,更新需要重新部署;Preset 存放在 OpenRouter dashboard,修改後立即套用到所有參照它的應用。
建立第一個 Preset
在 openrouter.ai/settings/presets 建立 Preset,選一個好記的 slug,之後在 API 請求中用 @preset/your-slug 參照。接著設定模型與路由:可以選單一模型,或加入有序的 fallback 清單,當第一個模型因 rate limit、outage 或 context 過長而失敗時,自動嘗試下一個。Provider 路由也能在此設定,例如依價格或延遲排序,或封鎖特定 provider。
加上系統提示詞與取樣參數後,這些就成為每個使用該 Preset 的請求的預設值。在 API 呼叫中,只要把 model 欄位設為 Preset slug 即可:
resp = client.chat.send(
model="@preset/tech-writer",
messages=[
{"role": "user", "content": "Explain preset versioning."},
],
)
你也可以透過 API 建立 Preset,用 POST 請求到 preset endpoint,系統會儲存屬於 Preset 設定的欄位,忽略 messages、stream、prompt 等 transient 欄位。
覆寫與合併規則
每個請求都可以覆寫 Preset 的設定。如果請求 body 包含 temperature,該值會覆蓋 Preset 的值。合併是 shallow 的:請求欄位取代對應的 Preset 欄位,未指定的 Preset 欄位則保留。tools 是例外:Preset 的工具與請求的工具會合併,若名稱相同,請求的工具會取代 Preset 的工具。
你也可以用獨立的 preset 欄位("preset": "@preset/tech-writer")或合併形式("model": "anthropic/claude-opus-4.8@preset/tech-writer")。preset 欄位需要完整的 @preset/ 前綴,單獨的 slug 會被忽略。
實際應用:圖片提示詞增強與 Fusion 面板
Preset 不只是簡化參數管理,也能封裝較複雜的工作流程。例如,圖片模型通常需要詳細的提示詞才能產出好結果。你可以建立一個 Preset,內含一個文字模型、一段系統提示詞(將簡短請求擴展為包含主體、構圖、光線、色調和風格的完整視覺 brief),以及圖片生成工具。之後只要用 @preset/image-enhancer,所有應用都能享有相同的提示詞增強行為。
另一個例子是把 Fusion 設定釘選成 Preset。Fusion 會執行一個模型面板,讓主要模型參考面板的輸出撰寫最終答案。將整個設定(包括 openrouter:fusion 工具、analysis_models 面板和 analyst model)存入 Preset 的 tools,然後在任何地方用 @preset/fusion-panel 參照。你的網頁應用、評估工具和 Slack bot 都使用相同的面板,調整時只需在 dashboard 修改,不必編輯三個 codebase。這也讓 ML 工程師能用同一個穩定 slug 重複執行評估設定。
版本管理與團隊協作
每次用現有 slug 儲存 Preset,系統會建立新版本並設為 active。API 請求會使用 active 版本。在 dashboard 修改系統提示詞,所有使用該 slug 的應用在下一次請求時就會套用變更,無需重新部署。如果變更造成品質下降,可以在 dashboard 還原到較早版本。
對團隊而言,Preset 提供一個有版本的集中位置來管理模型選擇、路由和提示詞,取代散落在多個 repo 的常數。組織帳號的所有成員都能存取組織 Preset,方便分享最佳實務。
限制與注意事項
Preset 不改變 rate limit,每個模型的限制仍然適用。API 沒有全域預設 Preset,每個請求都必須明確指定 Preset。Chatroom 則有 Default Preset 設定,套用於新訊息。
如果你正在思考如何把設定從程式碼中抽離,Preset 是一個值得嘗試的方向。它與我們之前討論過的流程編排執行模型有相似的精神:把決策點從程式碼中拉出來,讓非工程角色也能調整行為,同時保持可追溯性。
建立第一個 Preset 後,可以參考 preset-enhanced images cookbook 進一步了解圖片生成的完整流程。
參考來源
本文由 AI 協助自上述來源整理,經人工審核後發布。
