許多團隊並未統一使用單一的程式碼生成代理。有些工程師偏好 Claude Code,有些則選擇 Codex,還有些人會根據任務或誰的用量限制剛重置而切換工具。這種情況在有人詢問團隊上個月在程式碼生成代理上花了多少錢時,就會變得麻煩,因為答案會涉及兩個供應商、多個共享金鑰和一份試算表。
本指南將設定這兩種工具透過單一閘道運作。每位工程師都會獲得一個金鑰和一個預算,並且無論他們使用哪個代理,每次會話都會記錄在同一組日誌中。我們使用我們開發的 TokenRouter,但工具端的配置也展示了在任何閘道中需要注意的事項。
為什麼這行得通:兩個協定,一個閘道。Claude Code 使用 Anthropic Messages API(/v1/messages)。Codex CLI 則使用 OpenAI Responses API(/v1/responses),並支援自訂模型供應商。一個能原生支援這兩種協定的閘道,可以無縫地部署在這兩種工具之前,無需任何包裝器或分支。
TokenRouter 為 Anthropic 客戶原生提供 /v1/messages 服務,將請求直接傳遞給 Claude 模型。對於 OpenAI 格式的客戶,它則提供 /v1/responses,以及 /v1/chat/completions 和 /v1/embeddings。
步驟 1:連接供應商、設定預算、建立金鑰
在控制台中:連接供應商。開啟「供應商金鑰」→「新增供應商金鑰」,並新增您將使用的每個供應商,例如 Anthropic 和 OpenAI。免費方案可連接 2 個供應商,付費方案則可連接所有 13 個。
邀請工程師。在「成員」→「邀請成員」下,新增每位工程師並賦予「成員」角色,然後選擇他們的團隊。為每位工程師設定每日硬性上限。在「預算」→「建立預算」下,將「範圍」設為「成員」,「期間」設為「每日」,設定一個金額限制,並開啟硬性上限開關。預設會在達到 50%、80% 和 100% 時發出警報。每日預算會在 UTC 時間 00:00 重置。
讓每位工程師在「API 金鑰」→「建立金鑰」下建立自己的金鑰,並設定每分鐘請求數(RPM)和每分鐘代幣數(TPM)限制。成員建立的金鑰會與他們綁定,因此他們的成員預算會涵蓋他們擁有的所有金鑰。這表示一個預算可以涵蓋這兩種工具,無論他們是為兩種工具使用一個金鑰,還是每種工具一個金鑰。
為兩種工具使用一個金鑰(例如 agents-alice)是最簡單的。為每種工具使用一個金鑰(claude-code-alice、codex-alice)則可以在同一人的預算下,清晰地比較 Claude Code 與 Codex 的成本。
當預算硬性上限即將被突破時,請求會在到達供應商之前被拒絕,並返回 429 budget_exceeded 錯誤。超出速率限制則會返回 429 rate_limit_exceeded,並帶有 Retry-After 標頭。
步驟 2:Claude Code 設定
```bash
export ANTHROPIC_BASE_URL = https://api.tokenrouter.io
export ANTHROPIC_AUTH_TOKEN = tr_your_key_here
claude
```
這個基礎 URL 不包含 /v1。Anthropic 客戶端會自行附加 /v1/messages。ANTHROPIC_API_KEY=tr_... 也同樣有效。將這兩行新增到您的 shell 設定檔中。驗證:claude -p "Reply with exactly: routed via TokenRouter"
步驟 3:Codex CLI 設定
將供應商新增到 ~/.codex/config.toml。這個基礎 URL 包含 /v1,與 Claude Code 的設定相反:
```toml
model = "openai/gpt-5-mini"
model_provider = "tokenrouter"
[model_providers.tokenrouter]
name = "TokenRouter"
base_url = "https://api.tokenrouter.io/v1"
env_key = "TOKENROUTER_API_KEY"
wire_api = "responses"
```
然後:
```bash
export TOKENROUTER_API_KEY = tr_your_key_here
codex "explain what this repo does"
```
Codex 發送無狀態的 Responses 呼叫,並在每次輪次重新發送上下文。這與 TokenRouter 的 Responses 實作相符,因此不需要 previous_response_id。
步驟 4(可選):opencode 設定
opencode 支援任何與 OpenAI 相容的供應商。在 opencode.json 中:
```json
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"tokenrouter": {
"npm": "@ai-sdk/openai-compatible",
"name": "TokenRouter",
"options": {
"baseURL": "https://api.tokenrouter.io/v1",
"apiKey": "{env:TOKENROUTER_API_KEY}"
},
"models": {
"openai/gpt-5-mini": {
"name": "GPT-5 mini"
},
"anthropic/claude-sonnet-4-5": {
"name": "Claude Sonnet 4.5"
},
"auto": {
"name": "TokenRouter Auto"
}
}
}
}
}
```
步驟 5:為每個工具選擇模型,或讓路由器選擇
模型在所有 13 個供應商中都以 供應商/模型 的格式定址,相同的 ID 適用於所有接受模型欄位的端點。任何路由的模型都可以在 Codex 的模型欄位中使用,包括 Anthropic 模型,例如 anthropic/claude-sonnet-4-5。
TokenRouter 會將 Responses 呼叫轉換為每個供應商的原生 API,因此 Codex 可以透過相同的金鑰對 Claude 模型執行:model = "anthropic/claude-sonnet-4-5"。
在付費方案中,您可以傳遞 auto 並帶有策略:auto:cost(成本優先)、auto:latency(延遲優先)、auto:quality(品質優先)或 auto:balanced(平衡)。路由器會從您擁有金鑰的供應商中選擇,並遵循團隊的模型允許清單。
選定的模型會在回應的模型欄位中返回,並顯示在分析中,因此歸因保持精確。在免費方案中,auto 會返回 403 auto_routing_unavailable,因此請傳遞明確的模型。一個合理的模式是:讓代理使用您已測試過的明確模型,並將 auto:cost 用於摘要日誌等次要任務。
步驟 6:在一個地方查看支出
來自任一工具的每個請求都與一個金鑰綁定,而成員建立的金鑰也會將其與該工程師及其團隊綁定。分析和 CSV 匯出會按團隊、成員、金鑰、模型和供應商細分支出。如果每個工具使用獨立的金鑰,這也是您團隊直接比較 Claude Code 與 Codex 成本的方式。這比單一代幣價格更有用,因為相同的模型根據其使用方式,每次任務的成本可能大不相同。
團隊推廣檢查清單
首先讓兩名志願者(每種工具各一人)試用一週。使用成員預算,並關閉硬性上限開關,這樣在您了解正常情況時,沒有人會被阻擋。在分析中找出每個人最繁忙的正常工作日,然後開啟硬性上限,並設定一個舒適地高於該值的限制。上限是為了阻止無限循環,而不是為了限制工作。
為每個金鑰設定 TPM 限制,這樣重試循環會在幾分鐘內被限制住,而不是在一天結束時才被發現。一旦您知道團隊實際使用了哪些模型,請新增團隊模型允許清單(模型存取)。將兩個環境變數和 Codex 供應商區塊寫入您的入職文件中,包括它們之間 /v1 的差異。離職變得簡單:撤銷該人員的金鑰並將其從成員中移除。
團隊推廣前需測試的已知問題
這兩種工具都變化很快,有些開放問題會影響任何閘道或自訂供應商:Claude Code:桌面應用程式的「程式碼」分頁會忽略 settings.json 中的 ANTHROPIC_BASE_URL(#97574)。任何非預設的基礎 URL 都會導致無頭執行中訊息線程丟失並減少並行工具呼叫(#98464)。在恢復的會話中,/model 可能不會顯示代理的模型(#98540)。
Codex:幾個開放問題報告自訂供應商會話歸檔失敗,或在更新後丟失供應商的模型目錄(openai/codex#48367、#48961、#49227、#50282)。對於團隊推廣,請固定版本,並在升級後重新檢查。
故障排除
- Claude Code 返回 404:檢查 ANTHROPIC_BASE_URL 是否包含 /v1。
- 403 model_not_allowed:該模型不在該團隊的允許清單中。
- 429 budget_exceeded 與 rate_limit_exceeded:前者表示請求將超出當前期間的硬性上限。後者表示請放慢速度,並在 Retry-After 延遲後重試。
- 502 upstream_error:閘道無法從供應商那裡獲得良好的回應,請檢查您的金鑰。
我們開發了 TokenRouter。免費方案無需信用卡。Claude Code、Codex、opencode 和 zcode 的設定指南可在文件網站 tokenrouter.io/docs/codex 上找到。