モデル CLI
認証プロファイルの ローテーション、クールダウン、およびそれがフォールバックとどう相互作用するかについては、/concepts/model-failover を参照してください。 プロバイダーの概要と例については、/concepts/model-providers を参照してください。モデル選択の仕組み
OpenClaw は、次の順序でモデルを選択します。- Primary モデル(
agents.defaults.model.primaryまたはagents.defaults.model)。 agents.defaults.model.fallbacks内の Fallbacks(順番どおり)。- プロバイダー認証フェイルオーバー は、次のモデルへ移る前にプロバイダー内部で発生します。
agents.defaults.modelsは、OpenClaw が使用できるモデルの許可リスト/カタログです(エイリアスも含む)。agents.defaults.imageModelは、Primary モデルが画像を受け付けられない場合にのみ使用されます。agents.defaults.pdfModelはpdfツールで使用されます。省略した場合、ツールは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を上書きできます(/concepts/multi-agent を参照)。
クイックモデルポリシー
- 利用可能な中で最も強力な最新世代モデルを Primary に設定してください。
- コストやレイテンシに敏感なタスクや、重要度の低いチャットには Fallbacks を使用してください。
- ツール有効エージェントや信頼できない入力では、古い/弱いモデル階層は避けてください。
オンボーディング(推奨)
設定を手で編集したくない場合は、オンボーディングを実行してください。設定キー(概要)
agents.defaults.model.primaryとagents.defaults.model.fallbacksagents.defaults.imageModel.primaryとagents.defaults.imageModel.fallbacksagents.defaults.pdfModel.primaryとagents.defaults.pdfModel.fallbacksagents.defaults.imageGenerationModel.primaryとagents.defaults.imageGenerationModel.fallbacksagents.defaults.videoGenerationModel.primaryとagents.defaults.videoGenerationModel.fallbacksagents.defaults.models(許可リスト + エイリアス + プロバイダーパラメーター)models.providers(models.jsonに書き込まれるカスタムプロバイダー)
z.ai/* のようなプロバイダーエイリアスは zai/* に正規化されます。
プロバイダー設定例(OpenCode を含む)は
/providers/opencode にあります。
「Model is not allowed」(および応答が止まる理由)
agents.defaults.models が設定されている場合、それは /model とセッション上書きの許可リストになります。ユーザーがその許可リストにないモデルを選択すると、OpenClaw は次を返します。
- モデルを
agents.defaults.modelsに追加する - 許可リストをクリアする(
agents.defaults.modelsを削除する) /model listからモデルを選ぶ
チャットでモデルを切り替える(/model)
再起動せずに、現在のセッションのモデルを切り替えられます。
/model(および/model list)は、コンパクトな番号付きピッカーです(モデルファミリー + 利用可能なプロバイダー)。- Discord では、
/modelと/modelsを実行すると、プロバイダーとモデルのドロップダウン、および Submit ステップを備えたインタラクティブピッカーが開きます。 /model <#>はそのピッカーから選択します。/modelは新しいセッション選択を即座に永続化します。- エージェントがアイドル状態であれば、次の実行ですぐに新しいモデルが使用されます。
- すでに実行中の場合、OpenClaw はライブ切り替えを保留としてマークし、適切なリトライポイントでのみ新しいモデルへ再始動します。
- ツールアクティビティまたは応答出力がすでに始まっている場合、保留中の切り替えは、後続のリトライ機会または次のユーザーターンまでキューに残ることがあります。
/model statusは詳細ビューです(認証候補と、設定されている場合はプロバイダーエンドポイントのbaseUrl+apiモード)。- モデル参照は最初の
/で分割して解析されます。/model <ref>を入力する場合はprovider/modelを使用してください。 - モデル ID 自体に
/が含まれる場合(OpenRouter スタイル)は、プロバイダープレフィックスを含める必要があります(例:/model openrouter/moonshotai/kimi-k2)。 - プロバイダーを省略した場合、OpenClaw は入力を次の順で解決します。
- エイリアス一致
- そのプレフィックスなしモデル ID に対する、一意の設定済みプロバイダー一致
- 設定済みデフォルトプロバイダーへの非推奨フォールバック そのプロバイダーが設定済みデフォルトモデルを提供しなくなっている場合、OpenClaw は古い削除済みプロバイダーデフォルトを見せないように、代わりに最初の設定済みプロバイダー/モデルへフォールバックします。
CLI コマンド
openclaw models(サブコマンドなし)は models status のショートカットです。
models list
デフォルトでは設定済みモデルを表示します。便利なフラグ:
--all: 完全なカタログ--local: ローカルプロバイダーのみ--provider <name>: プロバイダーでフィルター--plain: 1 行に 1 モデル--json: 機械可読な出力
models status
解決済みの Primary モデル、Fallbacks、画像モデル、および設定済みプロバイダーの認証概要を表示します。また、認証ストア内で見つかったプロファイルの OAuth 有効期限状態も表示します(デフォルトでは 24 時間以内に警告)。--plain は解決済みの Primary モデルのみを出力します。
OAuth 状態は常に表示され(--json 出力にも含まれます)、設定済みプロバイダーに認証情報がない場合、models status は Missing auth セクションを表示します。
JSON には auth.oauth(警告ウィンドウ + プロファイル)と auth.providers(プロバイダーごとの有効な認証。環境変数ベースの認証情報を含む)が含まれます。auth.oauth は認証ストア内プロファイルの健全性のみであり、環境変数のみのプロバイダーはそこには表示されません。
自動化には --check を使用してください(不足/期限切れで終了コード 1、期限切れ間近で 2)。
ライブ認証チェックには --probe を使用してください。プローブ行は認証プロファイル、環境変数認証情報、または models.json から来ることがあります。
明示的な auth.order.<provider> が保存済みプロファイルを省略している場合、プローブはそれを試す代わりに excluded_by_auth_order を報告します。認証が存在しても、そのプロバイダーに対してプローブ可能なモデルを解決できない場合、プローブは status: no_model を報告します。
認証の選択はプロバイダー/アカウント依存です。常時稼働する Gateway ホストでは、通常 API キーが最も予測しやすい選択肢です。Claude CLI の再利用や、既存の Anthropic OAuth/トークンプロファイルもサポートされています。
例(Claude CLI):
スキャン(OpenRouter の無料モデル)
openclaw models scan は OpenRouter の無料モデルカタログを調べ、必要に応じてツール対応と画像対応をモデルにプローブできます。
主なフラグ:
--no-probe: ライブプローブをスキップする(メタデータのみ)--min-params <b>: 最小パラメーターサイズ(十億単位)--max-age-days <days>: 古いモデルをスキップする--provider <name>: プロバイダープレフィックスフィルター--max-candidates <n>: フォールバックリストのサイズ--set-default:agents.defaults.model.primaryを最初の選択に設定する--set-image:agents.defaults.imageModel.primaryを最初の画像選択に設定する
OPENROUTER_API_KEY)が必要です。キーがない場合は、候補のみを一覧表示するために --no-probe を使用してください。
スキャン結果は次の順でランク付けされます。
- 画像対応
- ツールレイテンシ
- コンテキストサイズ
- パラメーター数
- OpenRouter の
/models一覧(:freeでフィルター) - 認証プロファイルまたは
OPENROUTER_API_KEYからの OpenRouter API キーが必要(/environment を参照) - 任意フィルター:
--max-age-days、--min-params、--provider、--max-candidates - プローブ制御:
--timeout、--concurrency
--yes を渡してください。
モデルレジストリ(models.json)
models.providers のカスタムプロバイダーは、エージェントディレクトリ(デフォルトは ~/.openclaw/agents/<agentId>/agent/models.json)配下の models.json に書き込まれます。models.mode が replace に設定されていない限り、このファイルはデフォルトでマージされます。
一致するプロバイダー ID に対するマージモードの優先順位:
- エージェントの
models.jsonにすでに存在する空でないbaseUrlが優先されます。 - エージェントの
models.json内の空でないapiKeyは、そのプロバイダーが現在の設定/認証プロファイル文脈で SecretRef 管理されていない場合にのみ優先されます。 - SecretRef 管理のプロバイダー
apiKey値は、解決済みシークレットを永続化する代わりに、ソースマーカー(環境変数参照のENV_VAR_NAME、file/exec 参照のsecretref-managed)から更新されます。 - SecretRef 管理のプロバイダーヘッダー値は、ソースマーカー(環境変数参照の
secretref-env:ENV_VAR_NAME、file/exec 参照のsecretref-managed)から更新されます。 - 空または欠落しているエージェントの
apiKey/baseUrlは、設定のmodels.providersにフォールバックします。 - その他のプロバイダーフィールドは、設定および正規化されたカタログデータから更新されます。
openclaw agent のようなコマンド駆動パスを含め、OpenClaw が models.json を再生成するたびに適用されます。