<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>模型路由 on KnightLi的博客</title>
        <link>https://knightli.com/zh-tw/tags/%E6%A8%A1%E5%9E%8B%E8%B7%AF%E7%94%B1/</link>
        <description>Recent content in 模型路由 on KnightLi的博客</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-tw</language>
        <lastBuildDate>Sat, 11 Jul 2026 11:00:00 +0800</lastBuildDate><atom:link href="https://knightli.com/zh-tw/tags/%E6%A8%A1%E5%9E%8B%E8%B7%AF%E7%94%B1/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>9Router Claude Code 設定教學：API Base URL、模型路由與常見錯誤</title>
        <link>https://knightli.com/zh-tw/2026/07/11/9router-claude-code-api-base-url-routing-errors/</link>
        <pubDate>Sat, 11 Jul 2026 11:00:00 +0800</pubDate>
        
        <guid>https://knightli.com/zh-tw/2026/07/11/9router-claude-code-api-base-url-routing-errors/</guid>
        <description>&lt;p&gt;把 Claude Code 接到 9Router，不是複製一段設定就結束；客戶端、9Router Provider 與目標模型名稱必須一致。遇到 401、404 或「模型不可用」時，應先分層定位，而不是反覆更換 API key。&lt;/p&gt;
&lt;h2 id=&#34;設定前先確認三件事&#34;&gt;設定前先確認三件事
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;9Router 服務已啟動，且可開啟本機管理介面。&lt;/li&gt;
&lt;li&gt;已在 9Router 新增 Provider，且其金鑰與連線正常。&lt;/li&gt;
&lt;li&gt;記下 9Router 提供給 OpenAI-compatible 客戶端的 Base URL、API key，以及可用模型或 Combo 名稱。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Claude Code 只應請求 9Router 的 Base URL；要發往哪個 Provider、哪個模型，交給 9Router 的路由規則處理。安裝與背景可先看 &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/zh-tw/2026/05/08/9router-ai-coding-router-token-saver/&#34; &gt;9Router 使用教學&lt;/a&gt;。&lt;/p&gt;
&lt;h2 id=&#34;建議的接入順序&#34;&gt;建議的接入順序
&lt;/h2&gt;&lt;p&gt;先在 9Router 建立單一 Provider 的測試路由，再讓 Claude Code 指向此路由。確認可完成一次簡單對話後，再加入 fallback、多帳號或本機模型。&lt;/p&gt;
&lt;p&gt;設定時重點核對：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Base URL 是否為 9Router 的 OpenAI-compatible endpoint，而非上游廠商位址；&lt;/li&gt;
&lt;li&gt;API key 是否由目前的 9Router 執行個體簽發；&lt;/li&gt;
&lt;li&gt;Claude Code 填寫的模型名是否與 9Router 模型或 Combo 名完全一致；&lt;/li&gt;
&lt;li&gt;修改環境變數或設定後，終端與 Claude Code 是否已重新啟動。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;不要把上游 Provider 的 key 散落在多個專案設定。將其保留在 9Router，Claude Code 只保存本機路由器所需的最小憑據，遷移與撤銷更容易。&lt;/p&gt;
&lt;h2 id=&#34;常見錯誤怎麼排查&#34;&gt;常見錯誤怎麼排查
&lt;/h2&gt;&lt;h3 id=&#34;401-或-unauthorized&#34;&gt;401 或 Unauthorized
&lt;/h3&gt;&lt;p&gt;先確認請求確實到達本機 9Router，再檢查 API key。若管理面板可登入但客戶端仍為 401，通常是客戶端用了錯誤 key，或 Base URL 指向另一個執行個體。&lt;/p&gt;
&lt;h3 id=&#34;404-或-endpoint-not-found&#34;&gt;404 或 endpoint not found
&lt;/h3&gt;&lt;p&gt;多半是 Base URL 多寫或少寫路徑。不要憑感覺拼接 &lt;code&gt;/v1&lt;/code&gt;；以 9Router 目前頁面或文件顯示的 OpenAI-compatible 位址為準，並用最簡單的請求驗證。&lt;/p&gt;
&lt;h3 id=&#34;model-not-found&#34;&gt;model not found
&lt;/h3&gt;&lt;p&gt;先查看 9Router 模型清單。Provider 原始模型名、自訂別名和 Combo 名可能不同；Claude Code 應填寫路由器暴露的名稱。&lt;/p&gt;
&lt;h3 id=&#34;請求可送出但總是-fallback&#34;&gt;請求可送出但總是 fallback
&lt;/h3&gt;&lt;p&gt;查看第一優先 Provider 的狀態、餘額或配額、模型權限與請求日誌。fallback 是保底機制，不應取代修復首選模型失敗原因。&lt;/p&gt;
&lt;h2 id=&#34;保留最小測試設定&#34;&gt;保留最小測試設定
&lt;/h2&gt;&lt;p&gt;複雜路由上線前，保存一份「一個 Provider、一個模型、無 fallback」的測試設定。日後出問題時先回到此基線：基線正常表示故障在路由規則；基線也失敗則繼續檢查網路、憑據或 Provider。&lt;/p&gt;
&lt;p&gt;若問題發生在 Claude Code 的安裝、權限或專案環境，可繼續看 &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/zh-tw/2026/07/08/claude-code-multi-project-memory-team-workflow/&#34; &gt;Claude Code 多專案記憶與 Hooks&lt;/a&gt;。&lt;/p&gt;
&lt;h2 id=&#34;總結&#34;&gt;總結
&lt;/h2&gt;&lt;p&gt;9Router 與 Claude Code 的接入重點是：Base URL 指向路由器、模型名符合路由器、上游邏輯留在路由器。依「連通性—驗證—模型名—路由規則」順序檢查，通常可避免多數設定問題。&lt;/p&gt;
&lt;h2 id=&#34;一套容易排錯的設定模型&#34;&gt;一套容易排錯的設定模型
&lt;/h2&gt;&lt;p&gt;可將呼叫鏈畫成四層：&lt;code&gt;Claude Code → 9Router endpoint → Provider → 實際模型&lt;/code&gt;。每層只回答一件事：客戶端是否交給路由器、路由器是否接受憑據、規則是否選中 Provider、Provider 是否可呼叫模型。日誌與測試也應依這四層分開保存。&lt;/p&gt;
&lt;p&gt;例如，先在 Claude Code 使用固定模型名；接著在 9Router 讓該名稱只對應一個 Provider。穩定後，再將模型名改為 Combo 並加入第二個 Provider。不要讓 Claude Code 直接感知多個上游名稱，否則每個專案又會累積難以維護的設定。&lt;/p&gt;
&lt;h2 id=&#34;用最小請求驗證不直接跑長任務&#34;&gt;用最小請求驗證，不直接跑長任務
&lt;/h2&gt;&lt;p&gt;每完成一層設定，就做一次低成本驗證：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;用 9Router 健康檢查或管理介面確認服務在監聽。&lt;/li&gt;
&lt;li&gt;用一個無工具呼叫的簡單請求確認 API key 與模型名。&lt;/li&gt;
&lt;li&gt;在 Claude Code 中讓它解釋目前目錄的一小段文字，驗證客戶端收到回應。&lt;/li&gt;
&lt;li&gt;最後才測試讀檔、執行測試、長上下文或平行 Agent。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;長任務會混入網路、工具權限、上下文與重試等變數。將最小請求保存在排障筆記中，換電腦或升級後也能重用。&lt;/p&gt;
&lt;h2 id=&#34;路由規則怎樣設計更穩&#34;&gt;路由規則怎樣設計更穩
&lt;/h2&gt;&lt;p&gt;將「預設模型」與「高成本模型」分開。預設模型處理一般問答、格式整理與低風險修改；複雜推理、程式碼審查或長上下文時，再明確選用更強模型。這能避免不必要成本，也方便從日誌觀察哪些任務真正需要升級。&lt;/p&gt;
&lt;p&gt;fallback 觸發條件也應保守：網路錯誤、明確配額錯誤或 Provider 不可用可以切換；模型回答不理想不應立刻自動重試多個 Provider。後者會放大 token 消耗，並使結果難以重現。&lt;/p&gt;
&lt;h2 id=&#34;部署與憑據安全清單&#34;&gt;部署與憑據安全清單
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;不要將 9Router 暴露在沒有存取控制的公網位址。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DATA_DIR&lt;/code&gt;、備份與日誌可能含 Provider 資訊，應按敏感設定處理。&lt;/li&gt;
&lt;li&gt;不要把上游金鑰寫入儲存庫、截圖或 Claude Code 專案說明檔。&lt;/li&gt;
&lt;li&gt;升級前備份設定；升級後先以最小請求測試，再恢復正式路由。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;faq每個專案都要設定-9router-嗎&#34;&gt;FAQ：每個專案都要設定 9Router 嗎？
&lt;/h3&gt;&lt;p&gt;通常不用。客戶端層級環境變數或管理工具可讓多個專案共用 endpoint；只有某個儲存庫確實需要專用模型、權限或帳務隔離時，專案級設定才有意義。&lt;/p&gt;
&lt;h3 id=&#34;faq本機模型為何常常-fallback&#34;&gt;FAQ：本機模型為何常常 fallback？
&lt;/h3&gt;&lt;p&gt;先查看服務日誌中的顯存不足、上下文超限、併發排隊或模型名不符。將本機模型作為主路由前，應以真實任務長度連續驗證，而非只測一句短提示。&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
