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协议支持度配置落点关键配置项文档
终端 agent
Claude CodeAnthropic原生env varsANTHROPIC_BASE_URL, ANTHROPIC_API_KEY, ANTHROPIC_MODEL文档
Codex CLIOpenAI Responses原生~/.codex/config.tomlbase_url, env_key, wire_api文档
Gemini CLIGemini原生env varsGOOGLE_GEMINI_BASE_URL, GEMINI_API_KEY文档
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-sonnet-4-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 因流错误中断整段会话。

# 每个 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"

常见问题