如果有任何問題或建議,歡迎隨時聯繫我:
最後一個階段,把 30 天累積的知識收攏成架構思維。第一站是一個貫穿本系列、卻始終沒有完整展開的概念:模型分流(Model Routing)。
先聲明一件事,也是這篇動筆前最重要的查證結論:Claude 官方 API 沒有提供「自動幫你在多個模型之間選擇」的內建功能。 分流不是一個你打開某個參數就會發生的魔法,是你自己設計的架構決策——用哪個訊號判斷任務難度、難度低的送去哪個模型、難度高的送去哪個模型,這整套邏輯要你自己搭。今天要講的,是這套架構背後的學術根據,以及怎麼用本系列前 26 天學過的工具,把它組出來。
本篇引用的學術研究,於 2026 年查證於 arXiv 論文原文與作者資訊;Claude 相關的模型規格與參數,沿用本系列前面各天已查證的內容。
今天的主角聽起來很像架構師才需要的東西。但它的核心其實是一個你每天都在做的判斷,只是你可能從沒把它當成一個決定。
那個判斷是:這件事,值得用最好的工具嗎?
你不會開跑車去買醬油,也不會用微波爐煮一桌年菜。但回到 AI 上,多數人的預設是「反正就用最強的那個」——因為選擇要花腦力,而用最貴的感覺最安全。
Day 1 就講過這個直覺為什麼是錯的,Day 6 給了一張決策表。今天要做的,是把那個「每次手動判斷」的動作,變成一套可以自動執行的規則。
如果你不寫程式,這篇仍然有兩個帶得走的東西:
如果你在做產品,這篇加上明天的 Day 28,是把前 26 天的省錢技巧真正組裝起來的地方。
| 天數 | 主題 | 描述 |
|---|---|---|
| Day 1 | Claude 模型怎麼選?2026 最新四階模型完整比較 | Fable 5 / Opus 5 / Sonnet 5 / Haiku 4.5 的定位、規格與適用場景 |
| Day 2 | Claude 的計價邏輯:搞懂 input / output 為什麼差 5 倍 | 不背數字,理解計價結構,建立可長期沿用的成本直覺 |
| Day 3 | 不知道用哪個模型?官方建議「從 Opus 5 開始」背後的思維 | 為什麼預設起手不是最便宜、也不是最強的那個 |
| Day 4 | Claude Haiku 4.5 適合做什麼?便宜模型的正確用法 | 便宜模型不是次等品,是專用工具 |
| Day 5 | Claude context window 是什麼?1M token 到底能塞多少東西 | 用實際檔案量換算,破除「塞越多越好」的迷思 |
| Day 6 | Claude 模型選擇決策表:一張圖判斷你該用哪一個 | 把前五天濃縮成一張可以貼在螢幕旁的決策流程 |
| Day 7 | Token 是什麼?為什麼你的 Claude 帳單比想像中貴 | 從 tokenizer 原理理解中文為什麼特別燒錢 |
| Day 8 | Claude 省 token 的 5 個實用技巧(一般使用者也適用) | 不寫程式也能立刻套用的五個習慣 |
| Day 9 | Prompt Caching 是什麼?讓重複內容只算 10% 費用 | 快取寫入與命中的計價邏輯,以及什麼時候會虧 |
| Day 10 | Claude Batch API 教學:非即時任務直接省一半費用 | 用時間換金錢,非同步任務的正確打開方式 |
| Day 11 | 新世代 tokenizer:同樣的中文為什麼變貴了 | Claude 4.7 世代換了 tokenizer,這對中文使用者的實際影響 |
| Day 12 | 對話越長越燒錢?Claude 長對話的成本陷阱與解法 | 每一輪都重算全部歷史——以及三種切斷成本累積的做法 |
| Day 13 | Claude 用量怎麼監控?成本失控前的預警機制 | 從 usage 欄位到 Console 儀表板,把帳單變成可觀測系統 |
| Day 14 | Claude effort 參數是什麼?五個檔位該怎麼設 | low / medium / high / xhigh / max 的取捨與實測建議 |
| Day 15 | Adaptive Thinking 是什麼?為什麼你不用再寫「think step by step」 | 模型自己決定何時思考,舊 prompt 技巧為何失效 |
| Day 16 | Claude 回答變淺了?檢查這兩個隱藏設定 | 排查思路:先看 effort,再看 thinking 設定 |
| Day 17 | Claude Prompt 寫法教學:官方最佳實踐的骨架 | 一個可以套用在 90% 情境的 prompt 結構 |
| Day 18 | 用 XML 標籤讓 Claude 輸出更穩定(結構化輸出教學) | 為什麼 Claude 特別吃 XML,以及怎麼設計標籤 |
| Day 19 | System Prompt 怎麼寫?角色設定的正確姿勢 | system 與 user 的分工,以及「你是一位專家」為什麼沒用 |
| Day 20 | Claude 幻覺怎麼防?降低錯誤輸出的實用做法 | 引用來源、允許說不知道、把驗證寫進流程 |
| Day 21 | Claude Code 是什麼?安裝與第一次使用完整教學 | 從安裝到跑完第一個任務,含常見卡關點 |
| Day 22 | Claude Code 省 token 設定:別讓它讀完整個專案 | CLAUDE.md、忽略規則與 context 控制的實戰配置 |
| Day 23 | MCP 是什麼?把外部工具接進 Claude 的原理與實作 | Model Context Protocol 的設計哲學與一個可跑的範例 |
| Day 24 | 前端如何呼叫 Claude API?Messages 端點入門 | 第一支 API 請求,以及為什麼不該在瀏覽器直接呼叫 |
| Day 25 | Claude 串流輸出(Streaming):打造即時回應體驗 | SSE 事件流解析與前端逐字渲染 |
| Day 26 | Claude API 錯誤處理與重試:正式環境該注意什麼 | 429 / 529 的正確退避策略與冪等性設計 |
| Day 27 | 模型分流(Model Routing)是什麼?別再一支模型用到底 | 依任務難度動態選模型的判斷邏輯 |
| Day 28 | LLM 成本優化架構:小模型前置分流 + 大模型收尾 | 一套可落地的分層架構與失敗處理 |
| Day 29 | Vibecoding 做出網站之後:AI 不會主動告訴你的那些事 | 門檻降低的是「做出來」,不是「做對」——怎麼問出你不知道要問的問題 |
| Day 30 | Claude 使用總整理:模型、成本、設定一次看懂 | 全系列濃縮成一份可以收藏的速查表 |
模型分流不是憑空冒出來的工程直覺,背後有明確的學術出處。2023 年,史丹佛大學的 Lingjiao Chen、Matei Zaharia、James Zou 發表了論文《FrugalGPT: How to Use Large Language Models While Reducing Cost and Improving Performance》(arXiv:2305.05176)。
這篇論文提出三種降低 LLM 使用成本的策略,其中一種正是今天的主題——LLM Cascade(模型級聯):把多個不同能力、不同成本的模型串成一條鏈,簡單的請求讓便宜模型先處理,只有便宜模型的答案不夠好時,才升級送到更貴的模型。論文報告的結果是:在維持跟最強模型(論文用 GPT-4 當基準)相當表現的前提下,成本最多可以降低 98%;如果成本抓一樣,準確度甚至能比單獨用最強模型再高 4%。
這裡要誠實說明查證的過程:CLAUDE.md 一開始就標記這塊「正確出處尚未確認」,這次動筆前特地重新查證——FrugalGPT 這篇論文的作者、機構、arXiv 編號、核心主張,經多方比對後可以確認無誤,這是目前該領域最常被引用的奠基性研究之一。但要注意:FrugalGPT 是學術研究成果,不是 Anthropic 官方提供的功能或工具,Claude API 本身沒有一個叫「cascade」或「frugal mode」的參數——它是一套你可以參考、自己實作的架構思路。
FrugalGPT 論文之後,這個研究方向持續發展,後續文獻通常把「多模型選型策略」拆成兩大類:
Cascade(級聯):依序嘗試,從便宜模型開始,答案不滿意才往上升級。優點是大部分請求可能第一關就解決,不需要事先知道問題難度;缺點是真的需要升級的請求,要付兩次成本(先讓便宜模型跑一次,才送到貴的模型)。
Routing(路由):送出前就先判斷這個請求該給哪個模型,直接送過去,不會有「先跑一次再升級」的重複成本。優點是每個請求只跑一次;缺點是判斷難度這件事本身可能不準,如果分類邏輯誤判,一個困難任務可能被誤送到便宜模型,直接拿到品質不夠的答案,而不像 cascade 還有「不滿意就升級」的補救機制。
這兩種策略不是互斥的,多篇後續研究(例如探討路由與級聯統一框架的文獻)都指出,實務上常見的做法是把兩者結合——用路由先做一次篩選,級聯再當最後一道品質保險。
今天不深入介紹學術文獻裡的技術細節(那需要另一個系列的篇幅),但值得把這套架構思維,對照回本系列已經講過的 Claude 工具:
① 難度判斷,對應 Day 3 的「20 個測試案例」。 Cascade 或 Routing 都需要一套判斷任務難度的機制,最簡單的起點就是 Day 3 提過的「先準備一組有代表性的測試案例,跑過所有候選模型,比較結果」——這份測試集不只是選型時用一次就丟,它是分流邏輯長期依賴的判斷基礎。
② 分流目標,對應 Day 1、Day 4、Day 6 的四階模型光譜。 Fable 5 到 Haiku 4.5,天生就是一組現成的「級聯階梯」——簡單任務先給 Haiku 4.5(Day 4),Haiku 答不好或信心不足再升級到 Sonnet 5、Opus 5,真正棘手的才給 Fable 5。
③ 同一模型內的「輕量升級」,對應 Day 14 的 effort。 如果你不想跨模型切換那麼複雜,Day 14 講的 effort 五檔位,其實提供了一種更輕量的分流方式——同一個模型,簡單請求用 low,複雜請求用 high 或 xhigh。這不是論文原本定義的 cascade(沒有換模型),但解決的是同一類問題:用便宜的處理方式對付簡單任務,把「加碼」留給真正需要的地方。
④ 升級的判斷訊號,對應 Day 20 的驗證技巧。 Cascade 需要判斷「這個答案夠不夠好,要不要升級」,Day 20 教的 Best-of-N 驗證、要求引用來源、允許說不知道——這些技巧產生的訊號(例如模型自己承認「沒有把握」),正好可以當作觸發升級的依據。
❌ Before:一支模型從頭用到尾
def answer(question):
return client.messages.create(
model="claude-opus-5", # 不管問題多簡單,一律用最貴的模型
max_tokens=1024,
messages=[{"role": "user", "content": question}],
)
✅ After:依難度分流,便宜模型優先,必要時才升級
def classify_difficulty(question):
# 用便宜模型做前置分類,Day 4 講過這正是 Haiku 4.5 的專長:分類、路由判斷
result = client.messages.create(
model="claude-haiku-4-5-20251001",
max_tokens=10,
messages=[{"role": "user", "content": f"這個問題複雜嗎?只回答 simple 或 complex:{question}"}],
)
return result.content[0].text.strip()
def answer(question):
difficulty = classify_difficulty(question)
if difficulty == "simple":
response = client.messages.create(
model="claude-haiku-4-5-20251001",
max_tokens=1024,
messages=[{"role": "user", "content": question}],
output_config={"effort": "low"}, # Haiku 不支援 effort,此處僅示意其他模型的等效寫法
)
else:
response = client.messages.create(
model="claude-opus-5",
max_tokens=1024,
messages=[{"role": "user", "content": question}],
output_config={"effort": "high"},
)
return response
Before 版本的問題不是「答案不好」,是每一題都付最貴的價錢,不管題目多簡單。After 版本先用便宜模型做一次分類(這一步的成本遠低於直接送去 Opus 5),再依分類結果決定要不要升級。這正是 Day 4 提過的「用便宜的東西保護貴的東西」在架構層級的完整體現——今天你看到它不只是一句原則,是一套真的可以落地的判斷流程。
註:範例中 Haiku 4.5 那一支請求刻意加了
output_config={"effort": "low"}只是示意——Day 14 查證過 Haiku 4.5 不在 effort 支援清單內,實務上這個參數在 Haiku 4.5 身上不會產生作用,請依你實際選用的模型決定要不要帶這個參數。
Day 14 學過的 effort 參數,乍看跟今天的分流很像——都是「依難度調整投入的資源」。但兩者的作用範圍不同,值得在架構設計時分清楚。
effort 是同一個模型內部的調節:模型能力的上限不變,改變的是這個模型願意花多少力氣。分流是跨模型的選擇:不同檔位對應的是完全不同的能力上限——Haiku 4.5 開到最高的努力程度,能力上限還是不會超過 Opus 5 的下限。
這代表兩者解決的是不同層次的問題:如果你的任務難度差異在「同一個模型都能勝任、只是要不要多想」的範圍內,effort 就夠用(例如 Day 14 提過的,同樣是 Opus 5,簡單分類用 low、複雜分析用 high);如果任務難度差異大到「便宜模型即使拚盡全力也做不到」,才需要真正的跨模型分流。 實務上,兩者常常疊加使用——Day 28 的架構範例裡,第二層「依難度選模型」用的正是分流,選定模型之後再疊加 effort 做同一模型內的精細調整。
今日挑戰:盤點你目前所有呼叫 Claude 的地方,有沒有「不管問題難易度、一律用同一個模型」的情況。挑一個流量最大的情境,試著設計一個最簡單的二分類規則(哪怕只是關鍵字比對,不用到 AI),看看能不能把一部分請求導去便宜模型。
反思:FrugalGPT 論文的核心洞察,其實是「多數請求並不需要最強的能力」——這句話聽起來理所當然,但多數人設計系統時,直覺反應是「保險起見都用最好的」。這種「保險心態」在什麼情境下是合理的謹慎,在什麼情境下只是沒有算過帳的浪費?
模型分流的學術根據,是 2023 年史丹佛團隊發表的 FrugalGPT 論文,核心概念是 LLM Cascade——簡單請求給便宜模型,答案不夠好才升級,論文報告的成本降幅最高可達 98%。後續研究把這個方向細分成 Cascade(先跑再升級) 跟 Routing(先分類再送出) 兩條路線,兩者常被結合使用。
最重要的一句話收在這裡:Claude API 沒有內建的自動分流功能,這是你自己要設計的架構。但好消息是,本系列前 26 天教過的每一項工具——Day 1/4/6 的模型光譜、Day 3 的測試案例、Day 14 的 effort、Day 20 的驗證技巧——湊起來就是一套現成的分流工具箱,不需要再另外學什麼新東西。
本日關鍵字回顧
明天把今天的架構思維,擴展成一套完整的分層系統——小模型前置分流、大模型收尾,以及這套架構在失敗時該怎麼處理。
Day 28,LLM 成本優化架構完整拆解。