AI Coding Agent 與 Harness

把 Claude Code、Codex CLI、OpenClaw、Cline、Cursor 等 25+ coding agent 按同樣的三步指到閘道器 —— 每條都給出確切的設定落點與關鍵設定項。

每個 AI coding agent 都從某個地方讀 base URL 與 API key —— 環境變數、設定檔案或設定面板。本頁列出每個 harness 從哪裡讀、說哪種協議、以及真正會絆倒人的那條坑。完整可複製的設定教程在文件網站。

1

base_url 指向閘道器

預設 https://your-gateway.gatellm.io —— 是否含 /v1 因 SDK 而異(每個示例給出確切值)。

2

換成閘道器 access key

不是上游的 sk-… 金鑰 —— 同一把 access key 裝進你 SDK 期望的任意 header。

3

模型名用閘道器設定名

是你在控制台設定的名字 —— 不是廠商官方名。

Authorization: Bearer <key>
OpenAI · DashScope · 通用
Bearer 字首大小寫不敏感
x-api-key: <key>
Anthropic SDK
也接受 Authorization
x-goog-api-key: <key>
Gemini SDK
也接受 Authorization

Harness 相容矩陣

Harness協議支援度設定落點關鍵設定項文件
終端 agent
Claude CodeAnthropic原生env varsANTHROPIC_BASE_URL, ANTHROPIC_API_KEY, ANTHROPIC_MODELGitHub 設定檔 ↗ · 文件
Codex CLIOpenAI Responses原生~/.codex/config.tomlbase_url, env_key, wire_apiGitHub 設定檔 ↗ · 文件
Gemini CLIGemini原生env varsGOOGLE_GEMINI_BASE_URL, GEMINI_API_KEYGitHub 設定檔 ↗ · 文件
OpenClawOpenAI / Anthropic-compatibleOpenAI 相容openclaw.jsonmodels.providers.<id>.baseUrl, models.providers.<id>.apiKey文件
opencodeOpenAI-compatibleOpenAI 相容opencode.jsonprovider.<id>.options.baseURL文件
CrushOpenAI / Anthropic-compatibleOpenAI 相容crush.jsonproviders.<id>.base_url, providers.<id>.type文件
Factory DroidOpenAI / Anthropic-compatibleOpenAI 相容~/.factory/settings.jsoncustomModels[].baseUrl, customModels[].provider文件
GooseOpenAI-compatibleOpenAI 相容env varsOPENAI_HOST, OPENAI_BASE_PATH, OPENAI_API_KEY文件
AiderOpenAI-compatible (LiteLLM)OpenAI 相容env varsOPENAI_API_BASE文件
Qwen CodeOpenAI-compatibleOpenAI 相容env varsOPENAI_BASE_URL, OPENAI_API_KEY, OPENAI_MODEL文件
OpenHandsOpenAI-compatible (LiteLLM)OpenAI 相容~/.openhands/settings.jsonbase_url, model openai/ prefix文件
Kimi Code CLIOpenAI / AnthropicOpenAI 相容config.tomlproviders文件
PlandexOpenAI-compatibleOpenAI 相容custom models JSONbaseUrl文件
SWE-agentOpenAI-compatible (LiteLLM)OpenAI 相容env varsOPENAI_BASE_URL文件
Grok BuildOpenAI-compatibleOpenAI 相容config.tomlcustom models文件
Mistral VibeOpenAI-compatibleOpenAI 相容~/.vibe/config.tomlproviders文件
MiMo CodeOpenAI-compatibleOpenAI 相容/connect custom providerbase URL, API key文件
ForgeCodeOpenAI / AnthropicOpenAI 相容setup wizardbase URL文件
CodebuffOpenAI-compatibleOpenAI 相容settingsbase URL, API key文件
IDE / 編輯器外掛
ClineOpenAI-compatibleOpenAI 相容Settings → OpenAI CompatibleBase URL, API Key, Model ID文件
Roo CodeOpenAI-compatibleOpenAI 相容Settings → OpenAI CompatibleBase URL, API Key, Model ID文件
Kilo CodeOpenAI-compatibleOpenAI 相容Settings → OpenAI CompatibleBase URL, API Key, Model ID文件
ContinueOpenAI-compatibleOpenAI 相容config.yamlmodels[].apiBase文件
ZedOpenAI-compatibleOpenAI 相容settings.jsonlanguage_models.openai_compatible.<id>.api_url文件
CursorOpenAI部分支援Settings → Models → Override OpenAI Base URLOverride OpenAI Base URL文件
WindsurfOpenAI-compatibleOpenAI 相容Settings → Models → BYOK / customBase URL, API Key文件
GitHub Copilot (BYOK)OpenAI-compatibleOpenAI 相容Manage Models → OpenAI-compatibleBase URL, API Key文件
託管平台
WarpOpenAI / Anthropic / Gemini (BYOK)部分支援Settings → BYOKBYOK API keys文件
Amazon Q Developer CLIMCP無自訂端點MCP server—文件
Devin—無自訂端點——文件

閘道器模型該叫什麼名字

有些 harness 釘死了自己的模型 ID、原樣傳送。如果你的閘道器模型名不一樣,第一次呼叫就會 404。兩種對齊方式:

Claude Code
①

把閘道器模型名取成 harness 實際請求的 ID —— 零額外設定。

②

或用它的模型環境變數(如 ANTHROPIC_MODEL)指到你的閘道器名。

接入坑

harness 釘死了自己的模型 ID

Claude Code 傳送的是它自己設定的預設 ID(如 claude-opus-5 或 claude-sonnet-5),不是你的閘道器名。要麼把閘道器模型名取成 harness 實際請求的 ID,要麼用它的模型環境變數(如 ANTHROPIC_MODEL)指到你的閘道器名。名字不對 → 第一條訊息就 404 model_not_found。

Anthropic 系 harness 要指根、不帶 /v1

Anthropic 風格客戶端的 base URL 要指向閘道器根(不帶 /v1)—— 客戶端自己拼 /v1/messages。這裡多寫一個 /v1 會讓路徑段疊一層。

Codex 自訂 provider 需要 wire_api="responses"

Codex CLI 的 [model_providers.*] 設定塊要求 wire_api = "responses"。閘道器原生實現 /v1/responses —— 把 base_url 指過來、env_key 指向閘道器 access key 即可。

LiteLLM 底座的 harness 要 openai/ 模型字首

Aider、OpenHands、SWE-agent 底層是 LiteLLM:把 OPENAI_API_BASE 設成閘道器,模型名帶 openai/ 字首(如 openai/閘道器模型名),LiteLLM 才按 OpenAI 相容端點路由。

預設走訂閱 OAuth,不是你的 key

Codex、Gemini CLI、Qwen Code 預設走廠商的 OAuth / 訂閱登入。要經閘道器必須顯式切到 API key 認證(同時設 key 與 base URL)—— 否則會直接繞過閘道器。

IDE 按模型 ID 推斷工具 / 視覺能力

Cline / Roo / Kilo 等按模型名判斷工具呼叫與視覺能力。自訂閘道器名可能關掉函式呼叫 —— 工具呼叫失敗時,檢查客戶端的能力檢測規則,或把模型名取成它認識的家族名。

長推理會多出 :keep-alive 與 _gateway_warning

上游長推理期間閘道器會發 SSE 的 :keep-alive 註釋行(無害,跳過以 : 開頭的行即可);中途斷流時會插入 _gateway_warning 欄位而不是直接報錯 —— 設計目標就是避免 Claude Code 這類 harness 因流錯誤中斷整段會話。

Claude Code auto mode:決定那份安全裁決由誰應答

auto mode 下,Claude Code 在執行可能有危險的動作前,會等一份伺服器端裁決(請求體裡的 safeguards 欄位)。上游是官方 Anthropic 時,裁決在同一次請求裡由上游給出,閘道器原樣透通、不加干預。上游是忽略該欄位的第三方時,改由閘道器應答 —— 出廠預設(allow_all)放行全部動作,比不介入更寬鬆。要把某條上游上的這個判斷交回給它自己,就在該上游的 extra_config 裡寫 "anthropic_server_safeguards": "upstream";控制台裡這項設定僅 admin 可改。

# 每個 agent 都只是「一個 base_url + 一把 access key」
export ANTHROPIC_BASE_URL="https://your-gateway.gatellm.io"   # Anthropic 系 agent:根(不帶 /v1)
export ANTHROPIC_API_KEY="<閘道器 access key>"

export OPENAI_API_BASE="https://your-gateway.gatellm.io/v1"   # OpenAI 相容 agent:帶 /v1
export OPENAI_API_KEY="<閘道器 access key>"

# Codex CLI(~/.codex/config.toml)走 Responses 協議
# [model_providers.gatellm]
# base_url = "https://your-gateway.gatellm.io/v1"
# wire_api = "responses"

常見問題