モデルプロバイダー: 概要
モデルプロバイダーは、エージェントが呼び出せるあらゆる LLM エンドポイントに対する ZeroClaw の抽象化です。すべてのチャット補完リクエストは、対象がリモート API、セルフホストの推論サーバー、ローカルの Ollama モデルのいずれであっても、ModelProvider トレイトの実装(zeroclaw-api::ModelProvider)を経由します。
エージェントはプロバイダーを参照することでアクセスします。この接続がどのように組み合わさるかについてはエージェントを参照してください。
なぜ「model」プロバイダーなのか?私たちは一貫して「model provider」という表現を使用しています。TTS プロバイダーや文字起こしプロバイダーも存在するため、修飾語を具体的に保つことで曖昧さを回避できます。
設定の形状
プロバイダーはファミリー別に型付けされ、providers.models.<type>.<alias> としてアドレス指定されます。<type> は正規のファミリースロットです(すべてのスロットについては Catalog を参照してください)。ベンダーごとに1つのスロットがあり、同義語はありません。azure_openai、azure-openai、claude(Anthropic 用)は受け付けられません。
<alias> は演算子が割り当てるインスタンス名であり、1つのタイプにつき好きなだけエイリアスを定義できます。同じベンダーファミリーの複数のプロファイルを並行して実行できます。同じ type でも異なるエイリアスを使い、それぞれに独自のキー、モデル、設定を持たせられます。例えば、2つのAnthropicアカウントを anthropic.personal と anthropic.work として(それぞれに独自の api_key と model を持たせて)設定し、エージェントが model_provider = "anthropic.personal"(または "anthropic.work")で一方を選択するといった使い方です。これらの追加や編集は手動ではなく、以下のインターフェースから行ってください。
完全なスキーマについてはConfigurationを、ファミリーごとの実例についてはCatalogを参照してください。
エージェントごとのディスパッチ: グローバルなデフォルトはありません
プロバイダーのエントリは単独では何もしません。利用するには、エージェントが model_provider(および risk_profile、オプションの runtime_profile)でそれを参照します。risk_profile と runtime_profile はそれぞれ独立したエイリアスマップを参照するため、名前が一致している必要はありません。参照が解決できない場合、Config::validate() は起動時にエラーとなって明示的に失敗します。すべての呼び出し箇所は設定済みのエイリアスを選択するか、オプトアウトします。グローバルな「デフォルトプロバイダー」や「デフォルトモデル」の設定項目はありません。
マルチエージェント構成では、各エージェントに独自の model_provider を割り当てます。メッセージを取り込むチャネルは、エージェントの channels リストを介して一度に1つのエージェントにバインドされます。詳細については、Channels を参照してください。
エージェントごとの音声 (TTS) と文字起こし
音声合成と音声テキスト変換は同じパターンに従います。型付きファミリーのプロバイダーエントリを定義し、その後にエージェントごとの参照を設定します。グローバルなTTSや文字起こしのセレクターフィールドはありません。音声を利用する各エージェントが、それぞれ独自のルーティングを設定します。
次はどこへ
- 設定:
[providers.*]スキーマ全体、Azure 型付き設定、リージョンおよび OAuth バリアント - ストリーミング: トークン、ツール呼び出し、推論デルタがどのように流れるか
- ルーティング: マルチエージェントディスパッチとルーティングレイヤーとしての OpenRouter
- プロバイダーカタログ:実際の TOML 例を用いた、サポートされているすべてのファミリーの解説
- カスタムプロバイダー:
customスロットを OpenAI 互換エンドポイントに向けるか、ModelProviderトレイトを実装します