このページは英語版ドキュメントの翻訳です。コマンド、識別子、例はそのままです。ランタイム 7.24.4 · SDK 2.6.7。 英語版
カスタムプロバイダーとゲートウェイ
状態: 有効 範囲: 現行状態 最終確認: 2026-09-06 担当: ax-code ランタイム
AX Code は、標準のプロバイダープロトコルを通してモデルと話します。OpenAI 互換(/v1/chat/completions)または Anthropic 互換(/v1/messages)の API を話す任意のエンドポイントは、baseURL をそこへ向けることでカスタムプロバイダーとして追加できます。コード変更も、組み込みプリセットを待つ必要もありません。
これは、LiteLLM、one-api、new-api、Vercel AI Gateway のような自己ホストの集約器とリレーゲートウェイ、ならびにプライベートな企業プロキシや、その他の互換サービスを含みます。AX Code はこれらを一様に扱います。ワイヤプロトコルを話し、URL と鍵は利用者が供給します。
責任についての注意。 ゲートウェイは AX Code と上流モデルの間に座るため、プロンプト、コード、資格情報はそこを通ります。AX Code を第三者またはアカウントプールのリレーへ向けるとき、その運用者にデータを託すことを信頼し、それがルーティングするすべての上流プロバイダーの利用規約の範囲に留まる責任は利用者にあります。OpenRouter のような組み込みゲートウェイプリセットは、同じ標準プロトコル経路を使います。カスタムゲートウェイ設定は、いずれのリレー運用者の推奨も意味しません。
対話的なセットアップ
互換ゲートウェイには /connect → API クラウドプロバイダー → カスタム API プロバイダー を、AX Trust ゲートウェイには /connect → AX Trust → AX Trust に接続 を使います。ベース URL(AX Trust では /v1 を含む)とクライアント API キーを入力します。エディタはモデル ID とメタデータを発見し、資格情報を暗号化された認証ストレージに保存します。発見が使えない場合は、明示的なモデル ID も受け付けます。保存された URL に再接続するとき、トークンを空のままにすると、そのプロバイダー ID と鍵は保持されます。AX Trust 接続は、編集とモデル更新のあともカテゴリを保ちます。AX Code はそれらの接続で、セッション ID とともに X-AX-Prompt-Cache-Key を送るため、ゲートウェイは対象となる 1 つのアカウントにセッションを保てます。無効にするには provider.<id>.options.axTrust を false に設定します。このヘッダーは上流へ転送されず、本体の prompt_cache_key でもありません。
接続された AX Trust プロバイダーは、起動時にバックグラウンドでモデル一覧を更新します。AX Code は、設定されたエンドポイントの GET /models を既存の資格情報で呼び出し、モデル名、コンテキストと出力の上限、推論、ツール呼び出し、temperature 対応、画像対応を更新します。画像に対応するモデルは、/models に視覚マーカーを表示します。AX Trust が画像対応を広報するゲートウェイ別名も含みます。発見が完了すると TUI が更新されます。正確なファーストパーティの DeepSeek モデル ID では、欠けたメタデータが同梱の models.dev カタログから補われます。明示的なゲートウェイ能力フラグと上限が優先されます。未知の別名は、名前の類似で能力を継承しません。
成功した更新はランタイム一覧を置き換え、ゲートウェイがもはや広報しないモデルを除き、設定された許可リストと拒否リストはそれでも適用されます。タイムアウト、エラー、空または無効な応答は、保存された一覧を保持し、発見の失敗を記録します。起動はネットワークを待ちません。この更新はプロバイダー設定や資格情報を書き換えません。保存された設定は起動時のフォールバックのままです。通常のカスタム API プロバイダーは手動更新のままです。
プロバイダーの解決方法
各リクエストについて、AX Code はプロバイダー項目から 3 つのものが必要です。
npm— ワイヤプロトコルを話す AI SDK アダプター。OpenAI 形式のエンドポイントには@ai-sdk/openai-compatibleを、Anthropic 形式のエンドポイントには@ai-sdk/anthropicを使います。同梱またはインストールできるのは@ai-sdk/*アダプターだけです。options.baseURL— ゲートウェイ URL。プロバイダーのapiフィールドへフォールバックし、次にモデル自身のapi.urlへフォールバックします。${ENV_VAR}の置換に対応します。- 資格情報 —
options.apiKeyから、次に永続化された認証ストアから、次にプロバイダーのenv変数から、この順で解決されます。
手動設定には、明示的な models マップも必要です。対話エディタは、エンドポイントから、または提供されたモデル ID から、このマップを埋めます。
専用のプライベート GPU クラウドは、/connect → プライベート GPU クラウド の下の第一級プロバイダーです。OpenAI 互換の URL とトークン(alibaba-pai、runpod、huggingface-endpoints、sagemaker、volcengine-ark、modelarts、tencent-ti、または custom-private-gpu)を貼り付けます。AX Code は GET …/models を呼び出し、配備されたモデル ID を自動で使います。
ホストされた GPU カタログ(nebius、fireworks-ai、togetherai、baseten、nvidia、deepinfra)は、API キーと同梱のモデルスナップショットを使います。OpenCode と同じパターンです。
OpenAI 互換ゲートウェイ
ほとんどの集約器(LiteLLM、one-api、new-api、無料または自己ホストのゲートウェイ)は、OpenAI 互換の表面を公開します。ax-code.json(グローバルは ~/.config/ax-code/ax-code.json、またはリポジトリルートのプロジェクトごと)に次を追加します。
{
"$schema": "https://ax-code.app/docs-assets/schema/config.schema.json",
"provider": {
"my-gateway": {
"name": "My Gateway",
"npm": "@ai-sdk/openai-compatible",
"options": {
"baseURL": "https://gateway.example.com/v1",
"apiKey": "${MY_GATEWAY_API_KEY}",
},
"models": {
"gpt-4o": {
"name": "GPT-4o (via gateway)",
"tool_call": true,
"reasoning": false,
"attachment": true,
"limit": { "context": 128000, "output": 16384 },
},
},
},
},
}
- キー
"my-gateway"は、/connectとax-code modelsで選ぶプロバイダー id です。 models配下の各キーは、ローカルの選択 ID です。ゲートウェイが期待する ID がそのキーと異なるときは、項目のidを ゲートウェイが期待する正確なモデル ID に設定します。そうでなければ、既存のカタログ対応がない手動宣言モデルにはキーが使われます。- 秘密がコミットされた設定に入らないよう、リテラルなキーより
${ENV_VAR}を優先します。
エンドポイント変更後のゲートウェイモデル別名
options.baseURL を変えても、手動設定されたモデル ID は翻訳されません。たとえば、AX Trust エンドポイントは deepseek-flash を広報し、既存のローカル選択は ax-trust/deepseek-v4-flash かもしれません。ローカルキーは残し、provider.ax-trust.models.deepseek-v4-flash.id を deepseek-flash に設定します。AX Code はそのとき、API リクエストでゲートウェイ ID を送ります。
AX Trust の DeepSeek Flash 設定例 を参照してください。関連するプロバイダーフィールドを既存の設定へマージし、他のモデルとその能力設定は保持します。例は {env:AX_TRUST_API_KEY} を使います。AX Code を起動する前にその環境変数を設定するか、既存の資格情報設定を保ってください。編集後は AX Code を再起動します。
403 model is not allowed を診断するときは、リクエストのモデル ID を、エンドポイントの認証済み GET /models 応答と比較します。モデル一覧リクエストの成功だけでは、モデルを実行する許可は確立されません。正確な ID がそれでも失敗する場合は、ゲートウェイのキーとモデルの権限を確認してください。
Anthropic 互換ゲートウェイ
/v1/messages(Claude API の形)を公開するリレーは、Anthropic アダプターを使います。
{
"$schema": "https://ax-code.app/docs-assets/schema/config.schema.json",
"provider": {
"my-claude-gateway": {
"name": "My Claude Gateway",
"npm": "@ai-sdk/anthropic",
"options": {
"baseURL": "https://gateway.example.com",
"apiKey": "${MY_GATEWAY_API_KEY}",
},
"models": {
"claude-sonnet-4-6": {
"name": "Claude Sonnet (via gateway)",
"tool_call": true,
"reasoning": true,
"attachment": true,
"limit": { "context": 200000, "output": 64000 },
},
},
},
},
}
一部の Anthropic 形リレーは、Claude の環境変数も直接尊重します。設定を編集せずに素早いヘッドレス実行をするには、次を設定できます。
export ANTHROPIC_BASE_URL="https://gateway.example.com"
export ANTHROPIC_AUTH_TOKEN="sk-..."
ゲートウェイを、厳選されたモデル一覧を持つ独自の選択可能なプロバイダーとして見せたいときは、設定項目が依然として推奨されます。
モデルフィールド
モデル項目はレジストリスキーマを再利用します。カスタムエンドポイントで有用なフィールドは次です。
| フィールド | 意味 |
|---|---|
name |
モデル選択での表示ラベル |
tool_call |
モデルがツール/関数呼び出しに対応するか(ツールに必要) |
reasoning |
モデルが拡張推論を出すか |
attachment |
モデルが画像/ファイル添付を受け付けるか |
limit |
予算に使う { context, output } トークン上限 |
modalities |
任意の { input, output } 配列(text、image、pdf、など) |
能力フラグは、上流モデルが実際に対応するものに合わせて設定してください。AX Code はそれらを使って、ツール呼び出し、添付、コンテキスト予算をゲートします。
検証
設定を保存したあと:
ax-code modelsは、プロバイダーが公開するすべてのモデルを一覧します。- TUI 内の
/connectはプロバイダーを示し、envキーをoptions.apiKeyの代わりに使った場合は認証できます。
モデルが欠けている場合は、プロバイダー id、モデルキー、ゲートウェイが baseURL で到達できることを確認してください。
トラブルシューティング
- 認証エラー — 資格情報の解決順を確認します。
options.apiKeyが優先され、そうでなければenvまたは認証ストアの鍵が使われます。 - 停滞したストリーム — ゲートウェイは SSE をバッファすることがあります。プロバイダーで
options.chunkTimeout(チャンクごと)とoptions.timeout(リクエスト全体)を調整します。 - 拒否されたツール呼び出し — モデルに
"tool_call": trueを設定し、ゲートウェイの背後の上流モデルが実際にツールに対応することを確認します。