# Claude Code Router 完整使用指南:從零開始的本地部署與成本優化攻略 說實話,當我第一次收到 Anthropic 的月度帳單時,看到那個數字差點讓我的咖啡灑出來。一個月下來,光是用 Claude Code 寫程式,API 費用就超過了 200 美金。對於一個個人開發者來說,這不是小錢啊。 就在我考慮要不要減少使用 Claude Code 的時候,偶然間發現了一個叫做 **Claude Code Router** 的開源專案。這個工具徹底改變了我的 AI 開發體驗——不僅保留了 Claude Code 的所有強大功能,還讓我的 API 成本直接降低了 90%! 今天就來分享一下我這幾個月使用 Claude Code Router 的完整經驗,包括安裝配置、多供應商設定、本地部署,還有一些踩坑經驗。 ![Claude Code Router 技術架構圖](https://tokensceshi.oss-ap-southeast-1.aliyuncs.com/sora/fb1c755b-2659-4913-ba4c-077efd6872bf.png) ## 什麼是 Claude Code Router?為什麼它這麼香? Claude Code Router 本質上是一個智慧代理工具,它會攔截 Claude Code 發送給 Anthropic 的請求,然後根據你的配置將這些請求轉發到其他更便宜的 AI 供應商。 聽起來有點複雜?其實用起來超簡單。你還是用原來的 `claude code` 命令,但背後的請求已經偷偷換成了 DeepSeek、Gemini 或者本地運行的 Ollama 模型。 最關鍵的是,它完全不會破壞你現有的工作流程。所有的 Claude Code 功能,包括 MCP 伺服器、subagents、檔案操作等等,都能正常使用。 ## 快速上手:5 分鐘完成基本安裝 ### 第一步:安裝必要組件 首先確保你已經安裝了 Claude Code: ```bash # 如果還沒安裝 Claude Code npm install -g @anthropic-ai/claude-code # 安裝 Claude Code Router npm install -g @musistudio/claude-code-router ``` 安裝過程很順利,我在 MacBook 上大概花了 2 分鐘就完成了。 ### 第二步:建立配置目錄和基本配置 ```bash # 建立配置目錄 mkdir -p ~/.claude-code-router # 建立基本配置檔案 cat > ~/.claude-code-router/config.json << 'EOF' { "Providers": [ { "name": "deepseek", "api_base_url": "https://api.deepseek.com/chat/completions", "api_key": "${DEEPSEEK_API_KEY}", "models": ["deepseek-chat", "deepseek-reasoner"] } ], "Router": { "default": "deepseek,deepseek-chat" }, "Settings": { "API_TIMEOUT_MS": 60000, "LOG_LEVEL": "info" } } EOF ``` ### 第三步:設定 API 金鑰 ```bash # 在你的 .bashrc 或 .zshrc 中加入 export DEEPSEEK_API_KEY="你的-deepseek-api-key" # 重載設定 source ~/.zshrc # 或 source ~/.bashrc ``` ### 第四步:測試運行 ```bash # 啟動 Claude Code Router ccr code ``` 如果一切順利,你會看到 Claude Code 啟動,但請求會被路由到 DeepSeek。我第一次運行時還有點不敢相信,真的這麼簡單就搞定了! ## 多供應商配置:打造你的 AI 軍火庫 單一供應商雖然簡單,但真正的威力在於多供應商配置。經過幾個月的使用,我總結出了一套比較實用的配置策略。 ### 完整的多供應商配置範例 ```json { "APIKEY": "your-secret-key", "PROXY_URL": "http://127.0.0.1:7890", "LOG": true, "API_TIMEOUT_MS": 600000, "NON_INTERACTIVE_MODE": false, "Providers": [ { "name": "openrouter", "api_base_url": "https://openrouter.ai/api/v1/chat/completions", "api_key": "sk-xxx", "models": [ "google/gemini-2.5-pro-preview", "anthropic/claude-sonnet-4", "anthropic/claude-3.5-sonnet", "anthropic/claude-3.7-sonnet:thinking" ], "transformer": { "use": ["openrouter"] } }, { "name": "deepseek", "api_base_url": "https://api.deepseek.com/chat/completions", "api_key": "sk-xxx", "models": ["deepseek-chat", "deepseek-reasoner"], "transformer": { "use": ["deepseek"], "deepseek-chat": { "use": ["tooluse"] } } }, { "name": "ollama", "api_base_url": "http://localhost:11434/v1/chat/completions", "api_key": "ollama", "models": ["qwen2.5-coder:latest"] }, { "name": "gemini", "api_base_url": "https://generativelanguage.googleapis.com/v1beta/models/", "api_key": "sk-xxx", "models": ["gemini-2.5-flash", "gemini-2.5-pro"], "transformer": { "use": ["gemini"] } }, { "name": "volcengine", "api_base_url": "https://ark.cn-beijing.volces.com/api/v3/chat/completions", "api_key": "sk-xxx", "models": ["deepseek-v3-250324", "deepseek-r1-250528"], "transformer": { "use": ["deepseek"] } }, { "name": "modelscope", "api_base_url": "https://api-inference.modelscope.cn/v1/chat/completions", "api_key": "", "models": ["Qwen/Qwen3-Coder-480B-A35B-Instruct", "Qwen/Qwen3-235B-A22B-Thinking-2507"], "transformer": { "use": [ [ "maxtoken", { "max_tokens": 65536 } ], "enhancetool" ], "Qwen/Qwen3-235B-A22B-Thinking-2507": { "use": ["reasoning"] } } }, { "name": "dashscope", "api_base_url": "https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions", "api_key": "", "models": ["qwen3-coder-plus"], "transformer": { "use": [ [ "maxtoken", { "max_tokens": 65536 } ], "enhancetool" ] } }, { "name": "aihubmix", "api_base_url": "https://aihubmix.com/v1/chat/completions", "api_key": "sk-", "models": [ "Z/glm-4.5", "claude-opus-4-20250514", "gemini-2.5-pro" ] } ], "Router": { "default": "deepseek,deepseek-chat", "background": "ollama,qwen2.5-coder:latest", "think": "deepseek,deepseek-reasoner", "longContext": "openrouter,google/gemini-2.5-pro-preview", "longContextThreshold": 60000, "webSearch": "gemini,gemini-2.5-flash" } } ``` ![截圖 2025-09-21 凌晨12.01.21](https://hackmd.io/_uploads/rJPazU2jll.png) ### 路由策略說明 這套配置的核心思路是: - **default**: 日常任務用 DeepSeek,性價比最高 - **background**: 背景任務用 Gemini 免費額度 - **think**: 複雜推理用 DeepSeek Reasoner - **longContext**: 長文本處理用 Gemini 2.0 Flash 實際使用下來,這套策略既保證了品質,又最大程度降低了成本。 ## 成本分析:真實的省錢效果 讓我用實際數據來說話。這是我使用 Claude Code Router 前後的成本對比: ### 最新價格對比 (2025年2月更新) | 供應商 | 輸入價格 (每百萬 tokens) | 輸出價格 (每百萬 tokens) | 相對節省 | |--------|-------------------------|-------------------------|---------| | Claude 3.5 Sonnet | $3.00 | $15.00 | - | | DeepSeek V3 | $0.27 | $1.10 | ~90% | | Gemini 2.0 Flash | $0.10 | $0.40 | ~95% | | Ollama (本地) | $0.00 | $0.00 | 100% | ### 我的實際使用成本 以我一個月的典型使用量來算: - 輸入:約 500 萬 tokens - 輸出:約 200 萬 tokens **使用 Claude 直接 API**:$15 + $30 = **$45** **使用 Claude Code Router**: - 70% 使用 DeepSeek:$0.95 + $1.54 = $2.49 - 20% 使用 Gemini:$0.10 + $0.16 = $0.26 - 10% 使用 Ollama:$0 **總計約 $2.75,節省 94%!** ## LM Studio + Ollama 本地部署完整攻略 為了進一步降低成本,我還配置了本地 Ollama 模型。對於一些不太複雜的任務,本地模型完全夠用。 ![截圖 2025-09-20 晚上11.25.14](https://hackmd.io/_uploads/HJjeQL2oee.png) ### LM Studio 安裝和配置 1. **下載 LM Studio** 從官方網站 https://lmstudio.ai 下載對應平台的版本。我用的是 Mac 版本,安裝過程就是拖拽到 Applications 資料夾。 2. **下載模型** 第一次打開 LM Studio 時,可以直接搜尋和下載模型。我推薦幾個實用的: - `Qwen2.5-Coder-7B`: 程式碼生成表現不錯 - `DeepSeek-Coder-6.7B`: 輕量級但很實用 - `Llama-3.2-3B`: 通用任務的好選擇 3. **啟動本地伺服器** 在 LM Studio 中載入模型後,點擊 "Start Server",默認會在 `http://localhost:1234` 啟動 OpenAI 相容的 API 伺服器。 ### Ollama 如果你更喜歡命令列操作,Ollama 是更好的選擇: ```bash # 安裝 Ollama (Mac) brew install ollama # 啟動 Ollama 服務 ollama serve # 下載並運行模型 ollama pull openai/gpt-oss-20b ollama pull qwen/qwen3-coder-30b ``` ### 配置Mstudio ![截圖 2025-09-21 凌晨12.17.45](https://hackmd.io/_uploads/Byr3Q8nixe.png) ### 整合到 Claude Code Router 在配置檔案中加入本地模型: ```json { "name": "ollama", "api_base_url": "http://localhost:1234/v1/chat/completions", "api_key": "lmstudio", "models": [ "openai/gpt-oss-20b", "qwen/qwen3-coder-30b" ], "transformer": { "use": [ "OpenAI" ] } } ``` 然後可以設定某些任務專門使用本地模型: ```json "Router": { "default": "kimi-k2-turbo-preview ,kimi-k2-turbo-preview", "background": "kimi-k2-turbo-preview ,kimi-k2-turbo-preview", "think": "deepseek,deepseek-reasoner", "longContext": "gemini,gemini-2.5-pro", "longContextThreshold": 60000, "webSearch": "gemini,gemini-2.0-flash", "image": "" } ``` ### 本地模型的使用體驗 說實話,本地模型的回應速度和品質確實不如雲端模型,但對於一些簡單的程式碼補全、註解生成、重構建議等任務,已經完全夠用了。而且完全免費,這點特別香。 我通常會把一些敏感的程式碼或者內部專案的任務分配給本地模型,既保護了隱私,又節省了成本。 ## Claude Code Router UI 操作指南 除了命令列模式,Claude Code Router 還提供了 UI 界面,讓操作更加直觀。 ```bash # 啟動 UI 模式 ccr ui ``` UI 界面會在瀏覽器中打開,你可以: - 視覺化地切換不同的模型 - 即時查看 API 調用統計 - 調整路由規則 - 監控各供應商的回應時間和成本 *(這裡會加入用戶提供的 CCR UI 範例圖片)* ## 實戰優化技巧 經過幾個月的使用,我總結了一些實用的優化技巧: ### 1. 智慧回退策略 配置回退機制,當主要供應商出現問題時自動切換: ```json "Settings": { "FALLBACK_ENABLED": true, "FALLBACK_PROVIDERS": ["deepseek", "gemini", "ollama"] } ``` ### 2. 成本監控 定期檢查 API 使用量: ```bash # 查看使用統計 ccr statusline ``` ### 3. 環境變數管理 建立一個環境變數管理腳本: ```bash # ~/.claude-env export DEEPSEEK_API_KEY="sk-xxxxxx" export OPENROUTER_API_KEY="sk-or-xxxxxx" export GEMINI_API_KEY="AIxxxx" # 使用時載入 source ~/.claude-env ``` ## 常見問題排除 ### Q1: 模型切換後回應格式異常 這通常是轉換器配置問題。確保在配置中指定了正確的 transformer: ```json { "name": "deepseek", "transformer": "deepseek" } ``` ### Q2: API 超時問題 某些模型回應較慢,可以調整超時設定: ```json "Settings": { "API_TIMEOUT_MS": 180000 // 3分鐘 } ``` ### Q3: 本地模型載入失敗 檢查 Ollama 服務是否正常運行: ```bash # 檢查 Ollama 狀態 ollama list # 重啟服務 ollama serve ``` ## 最佳實踐建議 1. **分層使用策略**:簡單任務用便宜模型,複雜任務用高階模型 2. **定期監控成本**:每週檢查一次 API 使用量和費用 3. **備份配置**:將配置檔案加入版本控制 4. **測試新模型**:定期試用新的供應商和模型 5. **隱私保護**:敏感程式碼使用本地模型 ## 社群資源和更新 Claude Code Router 作為開源專案,社群非常活躍: - **GitHub**: https://github.com/musistudio/claude-code-router - **當前版本**: 1.0.8 (截至 2025年2月) - **Star 數**: 6.7k+ ### 值得關注的增強版本 - `@tellerlin/claude-code-router`: 加入了 API 密鑰輪換功能 - `@jasonzhangf/claude-code-router-enhanced`: 增加了重試機制 ## 總結:為什麼我推薦 Claude Code Router 回顧這幾個月的使用經驗,Claude Code Router 不僅僅幫我省了錢,更重要的是給了我選擇的自由。 我可以根據不同的任務選擇最合適的模型,不再被綁定在單一供應商上。對於個人開發者和小團隊來說,這種靈活性和成本優勢是巨大的。 當然,它也不是完美的。設定過程需要一些技術基礎,而且需要管理多個 API 密鑰。但相比節省的成本和獲得的靈活性,這些小麻煩完全可以接受。 如果你也在為 AI 開發成本發愁,或者想要更多的模型選擇,我真心推薦試試 Claude Code Router。說不定它也會像改變我的開發體驗一樣,改變你的。 畢竟,在這個 AI 快速發展的時代,有選擇總比沒選擇好,對吧? --- **相關連結:** - [Claude Code Router GitHub](https://github.com/musistudio/claude-code-router) - [LM Studio 官網](https://lmstudio.ai) - [Ollama 官網](https://ollama.ai) - [DeepSeek API 文檔](https://platform.deepseek.com/)