モデル選択の仕組み
OpenClaw は以下の順序でモデルを選択します:- メインモデル (
agents.defaults.model.primaryまたはagents.defaults.model)。 agents.defaults.model.fallbacksに指定された フォールバックモデル (記述順)。- 次のモデルへ移行する前に、現在のプロバイダー内で 認証プロファイルの切り替え を試みます。
agents.defaults.modelsは、OpenClaw が使用できるモデルの許可リスト(カタログ)およびエイリアスの定義です。agents.defaults.imageModelは、メインモデルが画像入力を受け付けない場合に のみ 使用されます。agents.list[].modelを設定することで、エージェントごとにデフォルト設定を上書きできます(マルチエージェント を参照)。
モデル運用の指針
- メインモデルには、現在利用可能な最新世代の最も強力なモデルを設定してください。
- フォールバックモデルは、コストや遅延を抑えたいタスクや、重要度の低いチャット用に使用します。
- ツールを使用するエージェントや、信頼できない入力を扱う場合は、古いモデルや能力の低いモデルの使用を避けてください。
セットアップウィザード (推奨)
構成ファイルを直接編集したくない場合は、オンボーディングウィザードを実行してください:claude setup-token) を含む、主要なプロバイダーのモデルと認証設定をガイドに沿って行えます。
設定項目 (概要)
agents.defaults.model.primaryおよびagents.defaults.model.fallbacksagents.defaults.imageModel.primaryおよびagents.defaults.imageModel.fallbacksagents.defaults.models(許可リスト + エイリアス + プロバイダー用パラメータ)models.providers(models.jsonに書き込まれるカスタムプロバイダー設定)
z.ai/* などのプロバイダー別名は zai/* に正規化されます。
OpenCode Zen を含むプロバイダーの構成例は、ゲートウェイ構成 を参照してください。
「Model is not allowed」エラーについて
agents.defaults.models が設定されている場合、それが /model コマンドやセッション上書きで使用できる 許可リスト となります。このリストに含まれていないモデルをユーザーが選択した場合、OpenClaw は以下のエラーを返します:
- そのモデルを
agents.defaults.modelsに追加する。 - 許可リストをクリア(
agents.defaults.modelsを削除)する。 /model listで表示されるモデルから選択する。
チャット内でのモデル切り替え (/model)
ゲートウェイを再起動することなく、現在のセッションで使用するモデルを切り替えられます:
/model(および/model list) は、モデルファミリーと利用可能なプロバイダーを番号付きで表示するコンパクトなピッカーです。- Discord では、プロバイダーとモデルを選択して送信する、インタラクティブな選択メニューが開きます。
/model <番号>で、そのピッカーからモデルを選択できます。/model statusでは、詳細な情報(認証の候補、構成済みの場合はプロバイダーのbaseUrlや API モード)を表示します。- モデルの指定は、最初に出現する
/で分割して解析されます。/model <ref>と入力する際はprovider/modelの形式にしてください。 - モデル ID 自体に
/が含まれる場合(OpenRouter 形式など)は、プロバイダーのプレフィックスを含める必要があります(例:/model openrouter/moonshotai/kimi-k2)。 - プロバイダーを省略した場合、OpenClaw は入力をエイリアス、あるいは デフォルトプロバイダー のモデルとして扱います(モデル ID 内に
/が含まれない場合にのみ機能します)。
CLI コマンド一覧
openclaw models は、models status の短縮形です。
models list
デフォルトで構成されているモデルを表示します。便利なフラグ:
--all: すべてのカタログを表示--local: ローカルプロバイダーのみを表示--provider <name>: 指定したプロバイダーでフィルタリング--plain: 1 行に 1 モデルの形式で出力--json: 機械可読な JSON 形式で出力
models status
解決済みのメインモデル、フォールバックモデル、画像モデル、および構成済みプロバイダーの認証状況の概要を表示します。また、認証ストア内の OAuth プロファイルの有効期限も表示されます(デフォルトでは 24 時間以内に切れる場合に警告します)。
認証情報がないプロバイダーがある場合は、Missing auth セクションが表示されます。
JSON 出力には auth.oauth(警告期間とプロファイル)および auth.providers(実際に有効な認証方法)が含まれます。
オートメーション用途には --check を使用してください(認証欠落/期限切れ時は 1、期限間近は 2 で終了します)。
例 (Anthropic setup-token):
モデルスキャン (OpenRouter 無料モデル)
openclaw models scan は、OpenRouter の 無料モデルカタログ をスキャンし、必要に応じてツール使用や画像のサポート状況を調査(プローブ)します。
主なフラグ:
--no-probe: 実際の調査を行わずメタデータのみを取得--min-params <b>: 最小パラメータ数(10億単位)でフィルタリング--max-age-days <days>: 更新が古いモデルを除外--provider <name>: プロバイダー名のプレフィックスでフィルタリング--max-candidates <n>: フォールバックリストに含める最大数--set-default: 最初の候補をagents.defaults.model.primaryに設定--set-image: 最初の画像対応候補をagents.defaults.imageModel.primaryに設定
--no-probe を使用してください。
スキャン結果は以下の優先度でランク付けされます:
- 画像サポート
- ツール実行の遅延
- コンテキストサイズ
- パラメータ数
--yes を指定してデフォルト設定を受け入れてください。
モデルレジストリ (models.json)
models.providers で設定されたカスタムプロバイダー情報は、各エージェントディレクトリ内の models.json (デフォルトは ~/.openclaw/agents/<agentId>/models.json) に書き込まれます。models.mode が replace に設定されていない限り、このファイルは実行時にマージされます。
プロバイダー ID が一致する場合のマージ優先順位:
- エージェントディレクトリの
models.jsonに既にある空でないbaseUrlが最優先されます。 apiKeyは、そのプロバイダーが SecretRef で管理されていない場合にのみ、エージェントディレクトリのmodels.jsonの値が優先されます。- SecretRef 管理下のプロバイダーの
apiKeyは、解決後のシークレットではなく、ソースマーカー(環境変数参照なら変数名、その他ならsecretref-managed)として保存されます。 - 他のフィールドは構成ファイルや正規化されたカタログデータから更新されます。
openclaw agent コマンドなどの実行時に models.json が再生成される際にも適用されます。