Concepts and configuration

モデル CLI

モデル参照はプロバイダーとモデルを選択します。通常、低レベルのエージェントランタイムは選択しません。たとえば、openai/gpt-5.5agents.defaults.agentRuntime.id に応じて、通常の OpenAI プロバイダーパス経由でも、Codex app-server ランタイム経由でも実行できます。Codex ランタイムモードでは、openai/gpt-* 参照は API キー課金を意味しません。認証は Codex アカウントまたは openai-codex 認証プロファイルから取得できます。エージェントランタイムを参照してください。

モデル選択の仕組み

OpenClaw は次の順序でモデルを選択します。

  • プライマリモデル

    agents.defaults.model.primary (または agents.defaults.model)。

  • フォールバック

    agents.defaults.model.fallbacks (順番どおり)。

  • プロバイダー認証フェイルオーバー

    次のモデルへ移る前に、プロバイダー内で認証フェイルオーバーが発生します。

  • 関連するモデルサーフェス
    • agents.defaults.models は、OpenClaw が使用できるモデルの許可リスト/カタログ (エイリアスを含む) です。
    • agents.defaults.imageModel は、プライマリモデルが画像を受け付けられない場合にのみ使用されます。
    • agents.defaults.pdfModelpdf ツールで使用されます。省略すると、ツールは agents.defaults.imageModel、次に解決済みのセッション/デフォルトモデルへフォールバックします。
    • agents.defaults.imageGenerationModel は共有の画像生成機能で使用されます。省略すると、image_generate は認証に裏付けられたプロバイダーのデフォルトを引き続き推論できます。現在のデフォルトプロバイダーを最初に試し、次に残りの登録済み画像生成プロバイダーをプロバイダー ID 順に試します。特定のプロバイダー/モデルを設定する場合は、そのプロバイダーの認証/API キーも設定してください。
    • agents.defaults.musicGenerationModel は共有の音楽生成機能で使用されます。省略すると、music_generate は認証に裏付けられたプロバイダーのデフォルトを引き続き推論できます。現在のデフォルトプロバイダーを最初に試し、次に残りの登録済み音楽生成プロバイダーをプロバイダー ID 順に試します。特定のプロバイダー/モデルを設定する場合は、そのプロバイダーの認証/API キーも設定してください。
    • agents.defaults.videoGenerationModel は共有の動画生成機能で使用されます。省略すると、video_generate は認証に裏付けられたプロバイダーのデフォルトを引き続き推論できます。現在のデフォルトプロバイダーを最初に試し、次に残りの登録済み動画生成プロバイダーをプロバイダー ID 順に試します。特定のプロバイダー/モデルを設定する場合は、そのプロバイダーの認証/API キーも設定してください。
    • エージェントごとのデフォルトは、agents.list[].model とバインディングによって agents.defaults.model を上書きできます (マルチエージェントルーティングを参照)。

    選択元とフォールバック動作

    同じ provider/model でも、どこから来たかによって意味が異なる場合があります。

    • 設定済みのデフォルト (agents.defaults.model.primary とエージェント固有のプライマリ) は通常の開始点であり、agents.defaults.model.fallbacks を使用します。
    • 自動フォールバック選択は一時的な復旧状態です。modelOverrideSource: "auto" とともに保存されるため、後続のターンでは、既知の問題があるプライマリを最初に試さずにフォールバックチェーンを使い続けられます。
    • ユーザーセッション選択は厳密です。/model、モデルピッカー、session_status(model=...)sessions.patchmodelOverrideSource: "user" を保存します。その選択されたプロバイダー/モデルに到達できない場合、OpenClaw は別の設定済みモデルへフォールスルーせず、見える形で失敗します。
    • Cron --model / ペイロード model はジョブごとのプライマリです。ジョブが明示的なペイロード fallbacks を指定しない限り、設定済みフォールバックを引き続き使用します (厳格な cron 実行には fallbacks: [] を使用します)。
    • CLI のデフォルトモデルと許可リストのピッカーは、完全な組み込みカタログを読み込む代わりに明示的な models.providers.*.models を一覧表示することで、models.mode: "replace" を尊重します。
    • コントロール UI のモデルピッカーは、Gateway に設定済みモデルビューを要求します。存在する場合は agents.defaults.models、それ以外は明示的な models.providers.*.models と使用可能な認証を持つプロバイダーです。完全な組み込みカタログは、models.listview: "all"openclaw models list --all などの明示的なブラウズビュー用に予約されています。

    簡易モデルポリシー

    • プライマリには、利用可能な最も強力な最新世代モデルを設定してください。
    • コスト/レイテンシーに敏感なタスクや重要度の低いチャットにはフォールバックを使用してください。
    • ツールが有効なエージェントや信頼できない入力では、古い/弱いモデル階層を避けてください。

    オンボーディング (推奨)

    設定を手作業で編集したくない場合は、オンボーディングを実行します。

    openclaw onboard
    

    一般的なプロバイダー向けにモデルと認証をセットアップできます。これには OpenAI Code (Codex) サブスクリプション (OAuth) と Anthropic (API キーまたは Claude CLI) が含まれます。

    設定キー (概要)

    • agents.defaults.model.primaryagents.defaults.model.fallbacks
    • agents.defaults.imageModel.primaryagents.defaults.imageModel.fallbacks
    • agents.defaults.pdfModel.primaryagents.defaults.pdfModel.fallbacks
    • agents.defaults.imageGenerationModel.primaryagents.defaults.imageGenerationModel.fallbacks
    • agents.defaults.videoGenerationModel.primaryagents.defaults.videoGenerationModel.fallbacks
    • agents.defaults.models (許可リスト + エイリアス + プロバイダーパラメーター)
    • models.providers (models.json に書き込まれるカスタムプロバイダー)

    安全な許可リスト編集

    手動で agents.defaults.models を更新するときは、追加型の書き込みを使用してください。

    openclaw config set agents.defaults.models '{"openai/gpt-5.4":{}}' --strict-json --merge
    
    上書き保護ルール

    openclaw config set は、モデル/プロバイダーのマップを偶発的な上書きから保護します。agents.defaults.modelsmodels.providers、または models.providers.<id>.models へのプレーンなオブジェクト割り当ては、既存のエントリを削除することになる場合に拒否されます。追加変更には --merge を使用してください。指定した値を完全なターゲット値にする場合にのみ --replace を使用してください。

    対話型プロバイダーセットアップと openclaw configure --section model も、プロバイダー単位の選択を既存の許可リストにマージします。そのため、Codex、Ollama、または別のプロバイダーを追加しても、無関係なモデルエントリは削除されません。プロバイダー認証を再適用するとき、Configure は既存の agents.defaults.model.primary を保持します。openclaw models auth login --provider <id> --set-defaultopenclaw models set <model> のような明示的なデフォルト設定コマンドは、引き続き agents.defaults.model.primary を置き換えます。

    「モデルは許可されていません」(返信が止まる理由)

    agents.defaults.models が設定されている場合、それは /model とセッション上書きの許可リストになります。ユーザーがその許可リストにないモデルを選択すると、OpenClaw は次を返します。

    Model "provider/model" is not allowed. Use /models to list providers, or /models <provider> to list models.
    Add it with: openclaw config set agents.defaults.models '{"provider/model":{}}' --strict-json --merge
    

    拒否されたコマンドに /model openai/gpt-5.5 --runtime codex のようなランタイム上書きが含まれていた場合は、まず許可リストを修正し、その後で同じ /model ... --runtime ... コマンドを再試行してください。ネイティブ Codex 実行では、選択されたモデルは引き続き openai/gpt-5.5 です。codex ランタイムはハーネスを選択し、Codex 認証を別途使用します。

    ローカル/GGUF モデルでは、プロバイダープレフィックス付きの完全な参照を許可リストに保存してください。 たとえば ollama/gemma4:26blmstudio/Gemma4-26b-a4-it-gguf、または openclaw models list --provider <provider> に表示される正確な provider/model です。 許可リストが有効な場合、裸のローカルファイル名や表示名だけでは不十分です。

    許可リスト設定例:

    {
      agent: {
        model: { primary: "anthropic/claude-sonnet-4-6" },
        models: {
          "anthropic/claude-sonnet-4-6": { alias: "Sonnet" },
          "anthropic/claude-opus-4-6": { alias: "Opus" },
        },
      },
    }
    

    チャットでモデルを切り替える (/model)

    再起動せずに、現在のセッションのモデルを切り替えられます。

    /model
    /model list
    /model 3
    /model openai/gpt-5.4
    /model status
    
    ピッカーの動作
    • /model (および /model list) は、コンパクトな番号付きピッカー (モデルファミリー + 利用可能なプロバイダー) です。
    • Discord では、/model/models は、プロバイダーとモデルのドロップダウンに加えて Submit ステップを持つ対話型ピッカーを開きます。
    • Telegram では、/models ピッカーの選択はセッションスコープです。openclaw.json 内のエージェントの永続的なデフォルトは変更しません。
    • /models add は非推奨になり、チャットからモデルを登録する代わりに非推奨メッセージを返すようになりました。
    • /model <#> はそのピッカーから選択します。
    永続化とライブ切り替え
    • /model は新しいセッション選択を即座に永続化します。
    • エージェントがアイドル状態の場合、次の実行は新しいモデルをすぐに使用します。
    • 実行がすでにアクティブな場合、OpenClaw はライブ切り替えを保留としてマークし、クリーンな再試行ポイントでのみ新しいモデルへ再起動します。
    • ツールアクティビティまたは返信出力がすでに開始している場合、保留中の切り替えは後の再試行機会または次のユーザーターンまでキューに残ることがあります。
    • ユーザーが選択した /model 参照は、そのセッションでは厳密です。選択されたプロバイダー/モデルに到達できない場合、返信は agents.defaults.model.fallbacks から黙って応答するのではなく、見える形で失敗します。これは設定済みデフォルトや cron ジョブのプライマリとは異なり、それらは引き続きフォールバックチェーンを使用できます。
    • /model status は詳細ビューです (認証候補、および設定されている場合はプロバイダーエンドポイント baseUrl + api モード)。
    参照の解析
    • モデル参照は、最初/ で分割して解析されます。/model <ref> を入力するときは provider/model を使用してください。
    • モデル ID 自体に / が含まれる場合 (OpenRouter 形式)、プロバイダープレフィックスを含める必要があります (例: /model openrouter/moonshotai/kimi-k2)。
    • プロバイダーを省略すると、OpenClaw は次の順序で入力を解決します。
      1. エイリアス一致
      2. その正確なプレフィックスなしモデル ID に対する、一意の設定済みプロバイダー一致
      3. 設定済みデフォルトプロバイダーへの非推奨フォールバック。そのプロバイダーが設定済みデフォルトモデルをもう公開していない場合、OpenClaw は古くなった削除済みプロバイダーのデフォルトを表面化させないように、代わりに最初の設定済みプロバイダー/モデルへフォールバックします。

    コマンドの完全な動作/設定: スラッシュコマンド

    CLI コマンド

    openclaw models list
    openclaw models status
    openclaw models set <provider/model>
    openclaw models set-image <provider/model>
    
    openclaw models aliases list
    openclaw models aliases add <alias> <provider/model>
    openclaw models aliases remove <alias>
    
    openclaw models fallbacks list
    openclaw models fallbacks add <provider/model>
    openclaw models fallbacks remove <provider/model>
    openclaw models fallbacks clear
    
    openclaw models image-fallbacks list
    openclaw models image-fallbacks add <provider/model>
    openclaw models image-fallbacks remove <provider/model>
    openclaw models image-fallbacks clear
    

    openclaw models (サブコマンドなし) は models status のショートカットです。

    models list

    デフォルトでは、設定済み/認証利用可能なモデルを表示します。便利なフラグ:

    --allboolean

    完全なカタログ。認証が設定される前の、同梱プロバイダー所有の静的カタログ行も含まれるため、検出専用ビューで、一致するプロバイダー認証情報を追加するまで利用できないモデルを表示できます。

    --localboolean

    ローカルプロバイダーのみ。

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tcHJvdmlkZXIgPGlk " type="string"> プロバイダー ID でフィルターします。例: moonshot。対話型ピッカーの表示ラベルは受け付けません。

    --plainboolean

    1 行に 1 つのモデル。

    --jsonboolean

    機械可読出力。

    models status

    解決済みのプライマリモデル、フォールバック、画像モデル、設定済みプロバイダーの認証概要を表示します。また、認証ストア内で見つかったプロファイルの OAuth 有効期限ステータスも表示します(デフォルトでは 24 時間以内に警告)。--plain は解決済みのプライマリモデルのみを出力します。

    認証とプローブの動作
    • OAuth ステータスは常に表示されます(--json 出力にも含まれます)。設定済みプロバイダーに認証情報がない場合、models status認証不足 セクションを出力します。
    • JSON には auth.oauth(警告ウィンドウ + プロファイル)と auth.providers(env による認証情報を含む、プロバイダーごとの有効な認証)が含まれます。auth.oauth は認証ストアのプロファイル健全性のみです。env のみのプロバイダーはそこには表示されません。
    • 自動化には --check を使用します(不足/期限切れの場合は終了 1、期限切れ間近の場合は 2)。
    • ライブ認証チェックには --probe を使用します。プローブ行は認証プロファイル、env 認証情報、または models.json から取得できます。
    • 明示的な auth.order.<provider> が保存済みプロファイルを省略している場合、プローブは試行せずに excluded_by_auth_order を報告します。認証は存在するものの、そのプロバイダーでプローブ可能なモデルを解決できない場合、プローブは status: no_model を報告します。

    例(Claude CLI):

    claude auth login
    openclaw models status
    

    スキャン(OpenRouter 無料モデル)

    openclaw models scan は OpenRouter の 無料モデルカタログ を検査し、必要に応じてツールと画像サポートについてモデルをプローブできます。

    --no-probeboolean

    ライブプローブをスキップします(メタデータのみ)。

    "--min-params
    "--max-age-days
    "--provider
    "--max-candidates
    --set-defaultboolean

    agents.defaults.model.primary を最初の選択に設定します。

    --set-imageboolean

    agents.defaults.imageModel.primary を最初の画像選択に設定します。

    スキャン結果は次の順でランク付けされます:

    1. 画像サポート
    2. ツールレイテンシ
    3. コンテキストサイズ
    4. パラメーター数

    入力:

    • OpenRouter /models リスト(フィルター :free
    • ライブプローブには、認証プロファイルまたは OPENROUTER_API_KEY からの OpenRouter API キーが必要です(環境変数を参照)
    • 任意のフィルター: --max-age-days, --min-params, --provider, --max-candidates
    • リクエスト/プローブ制御: --timeout, --concurrency

    TTY でライブプローブを実行すると、フォールバックを対話的に選択できます。非対話モードでは、デフォルトを受け入れるために --yes を渡します。メタデータのみの結果は情報提供用です。OpenClaw が使用できないキーなしの OpenRouter モデルを設定しないように、--set-default--set-image にはライブプローブが必要です。

    モデルレジストリ(models.json

    models.providers のカスタムプロバイダーは、エージェントディレクトリ配下の models.json(デフォルト ~/.openclaw/agents/<agentId>/agent/models.json)に書き込まれます。このファイルは、models.modereplace に設定されていない限り、デフォルトでマージされます。

    マージモードの優先順位

    一致するプロバイダー ID に対するマージモードの優先順位:

    • エージェントの models.json にすでに存在する空でない baseUrl が優先されます。
    • エージェントの models.json にある空でない apiKey は、そのプロバイダーが現在の設定/認証プロファイルコンテキストで SecretRef 管理ではない場合のみ優先されます。
    • SecretRef 管理のプロバイダー apiKey 値は、解決済みシークレットを永続化する代わりに、ソースマーカー(env refs は ENV_VAR_NAME、file/exec refs は secretref-managed)から更新されます。
    • SecretRef 管理のプロバイダーヘッダー値は、ソースマーカー(env refs は secretref-env:ENV_VAR_NAME、file/exec refs は secretref-managed)から更新されます。
    • 空または欠落しているエージェントの apiKey/baseUrl は、設定の models.providers にフォールバックします。
    • その他のプロバイダーフィールドは、設定と正規化されたカタログデータから更新されます。

    関連