AI コーディングエージェントとハーネス

Claude Code、Codex CLI、OpenClaw、Cline、Cursor など 25+ のコーディングエージェントを、同じ 3 ステップでゲートウェイに向けられます。それぞれの正確な設定対象とキー名も掲載しています。

すべての AI コーディングエージェントは、どこかから base URL と API キーを読み取ります。環境変数、設定ファイル、設定パネルのいずれかです。本ページでは、各ハーネスがどこから読むか、どのプロトコルを話すか、実際につまずきやすいハマりどころを 1 つ挙げます。コピーして使える完全な設定はドキュメントにあります。

1

base_url をゲートウェイに向ける

既定値は https://your-gateway.gatellm.io です。/v1 を含むかどうかは SDK によって異なります(各例に正確な値を記載)。

2

ゲートウェイのアクセスキーに差し替える

アップストリームの sk-… キーではありません。同じアクセスキーを、お使いの SDK が期待するヘッダーに載せます。

3

ゲートウェイのモデル名を使う

コンソールで設定した名前です。ベンダー公式の名前ではありません。

Authorization: Bearer <key>
OpenAI · DashScope · 汎用
Bearer プレフィックスは大文字小文字を区別しません
x-api-key: <key>
Anthropic SDK
Authorization も使用可能
x-goog-api-key: <key>
Gemini SDK
Authorization も使用可能

ハーネス互換性マトリクス

ハーネスプロトコル対応状況設定対象キー名 / 設定ドキュメント
ターミナルエージェント
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—カスタムエンドポイント不可——ドキュメント

ゲートウェイのモデルに付ける名前

一部のハーネスは独自のモデル ID を固定してそのまま送信します。ゲートウェイのモデル名が異なると、最初の呼び出しが 404 になります。合わせる方法は 2 つです。

Claude Code
①

ゲートウェイのモデルに、ハーネスが要求する名前をそのまま付ける。追加設定は不要です。

②

または、ハーネスのモデル環境変数(例:ANTHROPIC_MODEL)でゲートウェイの名前に上書きする。

ハマりどころ

ハーネスは独自のモデル ID を固定して送信します

Claude Code は設定済みの既定モデル(例:claude-opus-5 や claude-sonnet-5)を送信し、ゲートウェイ側の名前では送りません。ゲートウェイのモデル名をハーネスが要求する名前と完全に一致させるか、モデル環境変数(例:ANTHROPIC_MODEL)をゲートウェイの名前に設定してください。不一致だと最初のメッセージで 404 model_not_found になります。

Anthropic プロトコルのハーネスは /v1 ではなくルートを指定します

Anthropic 形式クライアントの base URL はゲートウェイのルート(/v1 なし)です。クライアント自身が /v1/messages を付加します。ここで /v1 を付けるとパスセグメントが二重になります。

Codex のカスタムプロバイダーには wire_api="responses" が必要です

Codex CLI ではカスタムの [model_providers.*] ブロックに wire_api = "responses" が必須です。ゲートウェイは /v1/responses をネイティブに実装しているため、base_url をそこに向け、env_key にゲートウェイのアクセスキーを設定してください。

LiteLLM ベースのハーネスは openai/ モデルプレフィックスを要求します

Aider、OpenHands、SWE-agent は LiteLLM 上に構築されています。OPENAI_API_BASE をゲートウェイに設定し、モデル名に openai/ プレフィックス(例:openai/gateway-model-name)を付けると、LiteLLM が OpenAI 互換エンドポイントとしてルーティングします。

既定はサブスクリプションの OAuth で、お客様のキーではありません

Codex、Gemini CLI、Qwen Code は既定でベンダーの OAuth / サブスクリプションログインを使います。ゲートウェイ経由にするには API キー認証へ切り替える(キーと base URL を明示的に設定する)必要があります。そうしないとエージェントはゲートウェイを完全に迂回します。

IDE はモデル ID からツール / ビジョン対応を推測します

Cline / Roo / Kilo などはモデル名からツール呼び出しとビジョンの対応可否を判断します。ゲートウェイのカスタム名では関数呼び出しが無効になることがあります。ツール呼び出しが失敗する場合は、クライアントのケイパビリティ検出ルールを確認するか、既知のファミリー名に合わせてモデルを命名してください。

長時間の推論では :keep-alive と _gateway_warning が付与されます

アップストリームの推論が長引くと、ゲートウェイは SSE の :keep-alive コメント行を出力します(無害です。: で始まる行はスキップしてください)。ストリームが途中で切れた場合はエラーにせず _gateway_warning フィールドを挿入するため、Claude Code のようなハーネスが会話全体を中断しません。

Claude Code の auto モード:安全判定に誰が答えるかを決めます

auto モードでは、Claude Code は潜在的に危険な操作の前にサーバー側の判定(リクエスト内の safeguards フィールド)を待ちます。アップストリームが Anthropic 公式の場合、判定は同じリクエスト内で生成され、ゲートウェイはそれをそのまま通します。このフィールドを無視する第三者アップストリームの場合、代わりにゲートウェイが判定を返します。出荷時の既定(allow_all)はあらゆる操作を許可するため、呼び出しをそのまま通すより緩くなります。そのアップストリームの extra_config に "anthropic_server_safeguards": "upstream" と書けば、ルートをアップストリーム側に戻せます。コンソールの設定は管理者のみが変更できます。

# Every agent is one base_url + one access key away
export ANTHROPIC_BASE_URL="https://your-gateway.gatellm.io"   # Anthropic agents: root (no /v1)
export ANTHROPIC_API_KEY="<gateway access key>"

export OPENAI_API_BASE="https://your-gateway.gatellm.io/v1"   # OpenAI-compatible agents: /v1
export OPENAI_API_KEY="<gateway access key>"

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

FAQ