本ページの調整値は .env ではなく、アプリ内の App Settings 画面(サイドバー下部の
スライダーアイコン)で設定し、app_settings.jsonc に保存されます。.env に残った値は
無視され、起動ログにキー名が 1 度だけ列挙されます。既存の設定を引き継ぐには
chatwalaau settings migrate --write を実行してください。機能の有効化ゲートと
シークレットは .env のままです。
詳細は 設定 -> アプリケーション設定。
モデルと推論
チャットモデルは モデルオファリングカタログ(model_offerings.jsonc)で
のみ設定します。レガシーのプロバイダ別変数(AZURE_OPENAI_MODELS,
ANTHROPIC_MODELS, OPENAI_MODELS, FOUNDRY_MODELS, MODEL_MAX_CONTEXT_TOKENS,
ANTHROPIC_HOSTING、およびプロバイダ別のチャット endpoint/key 変数)は
削除されました。以下のプロバイダ別セクションに出てくる *_MODELS 等のスニペット
は、各 offering に必要な値を示すものです。それらの値はカタログの offering に
記述してください。共有の Azure 認証変数と OPENAI_API_KEY は保持されます。
マルチモデル切替
model_offerings.jsonc に複数の offering を記述し、会話の途中で切り替えられます:
- 入力欄の上に モデルセレクタが表示(モデルが 1 つだけのときは非表示)
- セッションごとのモデル選択が再読込後も保持
- 別モデルで再生成 -- Regenerate のシェブロンから選択
- 各アシスタントメッセージに生成したモデルを表示
- すべてのモデルが同じツール・Skills・MCP を共有
モデルごとのコンテキスト上限は、各 offering の context_window フィールドで
指定します(未指定時は 128000 が既定)。入力欄上のコンテキストバーは、モデル
切替時に自動更新されます。
モデルオファリングカタログ
すべてのチャットモデルを 1 つの JSONC ファイルで管理します。MODEL_OFFERINGS_FILE
に指定します(既定 model_offerings.jsonc、作業ディレクトリ基準で解決)。これが
モデルルーティングの単一の情報源です。カタログが無い非 demo デプロイは、
起動時に警告を出してそのまま起動し(アプリ内の App Settings 画面で修正可能)、
チャットは利用できず、実行しようとした時点で chatwalaau models add / App Settings
画面を案内するメッセージを返します(DEMO_MODE=true はカタログ無しで動作)。
各 offering が 1 つのモデルを記述します:
{
"auth_profiles": { "gateway": { "api_key_env": "GATEWAY_API_KEY" } },
"offerings": [
// 既定のチャットモデル(chat offering が最低 1 つ必須)
{
"id": "gpt-5.2",
"provider": "azure-openai",
"model_ref": "gpt-5.2", // 実際のデプロイメント名
"endpoint": "${AZURE_OPENAI_ENDPOINT}",
"default": true,
"context_window": 400000
},
// Anthropic 互換ゲートウェイ経由の Claude(offering 単位の hosting)
{
"id": "claude-opus-4-8",
"provider": "anthropic",
"hosting": "foundry",
"model_ref": "claude-opus-4-8",
"base_url": "https://my-gateway.example.com/anthropic",
"auth_profile": "gateway"
},
// 非 OpenAI 系の Foundry ファミリー: OpenAI の推論コントロールを無効化
{
"id": "deepseek-v4",
"provider": "foundry",
"model_ref": "my-deepseek-deployment",
"endpoint": "https://<resource>.services.ai.azure.com/api/projects/<project>",
"family": "bare"
},
// 任意: embeddings / image / live / decision / transcription / speech offering は各 1 つまで
{
"id": "embeddings",
"provider": "azure-openai",
"model_ref": "text-embedding-3-small",
"endpoint": "${AZURE_OPENAI_ENDPOINT}",
"operations": ["embeddings"]
}
]
}
利点:
- ゲートウェイ。 複数のモデルファミリーを提供する 1 つのエンドポイントを、
endpoint/base_urlを共有する複数 offering として表現できます(新しい プロバイダ設定は不要)。 - ホスティングの混在。 direct の Claude と Foundry ホストの Claude を 1 つの
インスタンスで併用できます(offering 単位の
hosting)。グローバルなANTHROPIC_HOSTINGでは不可能でした。 - チャットモデルは 1 つ必須、それ以外は任意。
chatoffering は最低 1 つ必須。embeddings/image/live/decision/transcription/speechは任意。複数のチャットモデルがある場合、default: true(無ければ先頭)が既定として使われます。
ポイント:
- 秘密情報はファイルに書きません。 環境変数を名前で参照(
api_key_env)するか、 名前付きauth_profilesエントリ、または共有 Entra ID レーンを使います。endpoint/base_urlの${VAR}は環境から展開されます。 familyはゲートウェイモデルが提示する生成オプションを上書きします:openai-reasoning(effort + verbosity)、anthropic-adaptive、bare(生成 コントロールなし。非推論のゲートウェイモデル向け)。family は provider と整合して いる必要があります(azure-openai/openai/foundryはopenai-reasoningまたはbare、anthropicはanthropic-adaptiveまたはbare)。それ以外の 組み合わせは起動時に拒否されます。省略するとプロバイダが推論します。- 不正なカタログは起動時に即座に失敗し、問題の offering 名を示します。 タイプミスでモデルが黙って消えることはありません。
DEMO_MODEは常にレガシーレーンを使います。レガシーの*_MODELS変数は カタログを後継として非推奨になりました(カタログが無い場合は引き続き サポートされます)。- カタログの不変条件(CLI・GUI・サーバのいずれもが強制):
chatoffering は 最低 1 つ、その中で既定はちょうど 1 つ。id は一意。embeddings、image、live、decisionは各 1 つまで。liveとdecisionの offering はazure-openaiプロバイダを使い、他の操作と兼用できません。hostingはanthropicプロバイダにのみ 適用されます。liveoffering は Live 会話を 有効にする GPT-Live の音声デプロイです。decisionoffering はdecision_evaluateツールを提供する Microsoft-Decision-1 のデプロイです(v0.195.0)。family、hosting、context_window、base_url、api_version、image_defaults、capabilitiesは適用されず、指定すると拒否されます。 - 音声の offering(v0.205.0):
transcription(音声入力、azure-openai)とspeech(読み上げ、azure-openaiまたはelevenlabs)は各 1 つまでで、他の操作と兼用できず、 チャット専用の項目は指定できません。elevenlabsはspeech専用のプロバイダで、api_key_envが必要です。詳しくは 音声とスピーチ を参照してください。
デプロイが機能を提供できない場合
一部の機能はモデルのデプロイが供給しており、使えるかどうかはモデルではなく そのデプロイの作り方で決まります。
Foundry 上の Claude: ホスティングオプションを正しく選ぶ
Foundry にはデプロイ作成時に選ぶ 2 つのホスティングオプションがあります。 ポータルで「Default settings」を選ぶと、制限のある Hosted on Azure になります。
| Hosted on Azure | Hosted on Anthropic | |
|---|---|---|
| 推論の実行場所 | Azure インフラ | Anthropic インフラ |
| hosted web search | ❌ 非対応 | ✅ 対応 |
| Structured output | ❌ 非対応 | ✅ 対応 |
非対応の機能を使うリクエストは設計上 400 で拒否されます。症状は次のとおりで、
毎ターン失敗します。
web search not supported in your workspace
対処は ChatWalaʻau 側の設定変更ではなく、デプロイの作り直しです。
- Foundry ポータル → モデルカタログ → 対象の Claude モデル → Deploy → Custom settings
- Model version settings を展開し、Hosted on Anthropic とラベルされたバージョンを選択
- デプロイ名を控え、offering の
model_refをその名前に変更
同一 Foundry リソース内であれば、エンドポイント URL と認証は変更不要です。変わるのは デプロイ名だけです。
Anthropic は web search ツールを 3 バージョン公開していますが、3 つとも server-side tool です。したがって Hosted on Azure ではどれも動作せず、新しい 2 つは code execution (これも非対応)を必要とするため、さらに動きません。
制限のあるデプロイのまま使う場合
その offering に「このデプロイでは提供できない」と伝えれば、ChatWalaʻau は送信を止めます。 App Settings 画面から、またはファイルに直接記述します。
{
"id": "claude-opus-5-foundry",
"provider": "anthropic",
"model_ref": "claude-opus-5",
"hosting": "foundry",
"base_url": "https://my-aifoundry.services.ai.azure.com/anthropic",
"capabilities": {
"web_search": false,
"native_structured_output": false,
"mcp": false,
"skills": false,
"image_generation": false,
"computer_use": false
}
}
設定ごとに振る舞いが異なり、その違いが重要です:
| 設定 | 「利用不可」にしたときの動作 |
|---|---|
| Web search | 機能そのものを外します。 代替が存在しないためです。システムプロンプトの web search 案内も同時に外れるので、エージェントが「検索できる」と主張することはなく、出典を捏造することもありません。 |
| Structured output | このモデルで機能を OFF にします。 出力スキーマを設定済みの run-target は、このモデル上では素の文章で応答し、Built-in agent のカードがその旨を表示します。縮退経路はありません -- かつて本プロジェクトが実装していた forced-tool-use フォールバックは Agent Framework と互換性がなく、v0.125.0 で削除されました。 |
| MCP | このモデルから MCP ツールをすべて外します(stdio と HTTP のどちらのサーバーも)。MCP 案内も同時に外れます。MCP サーバ自体は動作し続け、他のモデルはツールを保持します。変わるのは このモデル に提示される内容だけです。v0.203.0 より前は案内だけが外れ、ツールは送られたままでした(修正済み)。 |
| Skills | このモデルから Agent Skills を外します。スキルは一切提示されず、load_skill / read_skill_resource / run_skill_script も存在しません。Skills 管理画面とディスク上のスキルは無変更です。 |
| Image generation | この chat モデルから image_generate / image_edit を外します。image オファリング自体と他の chat モデルには影響しません。 |
| Computer Use | このモデルから computer_* のデスクトップ操作ツールを外します(v0.170.0)。画像を読めないモデルや、クリック精度の低いモデルに使います。Foundry プロバイダーのモデルには、そもそも提供されません(そのコネクタはツールが返す画像を捨てるため)。Computer Use を参照。 |
| CodeAct | このモデルから、CodeAct の計算用サンドボックスである execute_code を外します(v0.172.0)。関数呼び出しが弱いモデルに使います。サンドボックス自体は App Settings > CodeAct が ON のときだけ存在します。 |
| Function calling | 常時利用可能として表示され、無効化できません(下記参照)。 |
Structured output と Web search は同じターンに同居できません
これは ChatWalaʻau の設定ではなくプロバイダ側の制約です。Responses API は JSON 出力
フォーマットとホスト型 Web search ツールの両方を含むリクエ ストを拒否します
(Web Search cannot be used with JSON mode.)。ChatWalaʻau はターンを失敗させる代わり
に、Structured output を要求するターンでは Web search を剥落させます。
どこで起きているかは明示されるので、「検索しなくなった」理由が分かります。
- スキーマ設定中は、ChatWalaʻau Core カードと Custom agent エディタの両方に "Web search is dropped while structured output is on" と表示されます
- Prompt Dump のツール サーフェスは
web_searchを理由structured output付きのEXCLUDEDとして一覧します
Structured output を OFF にすれば(Core カードのフォーマットをクリアする、または Custom
agent から outputSchema を削除する)、次のターンから Web search が戻ります。
Function calling を無効化できない理由
MCP ツールも 3 つの skill ツールも 2 つの画像ツールも、すべて function tool として プロバイダに届きます。関数呼び出しができないモデルはそれらを一切保持できないため、 「function calling オフ、MCP オン」と書けるカタログは、存在し得ないものを記述している ことになります。ChatWalaʻau はその組み合わせを検証するのではなく、取り除きました。 語彙全体を 1 箇所で見渡せるよう行は表示し、値は 利用可能 に固定されています。
Function calling をサポートするモデルのみを chat オファリングとして登録してください。
ファイルに "function_calling": false と書くと、その旨を述べるエラーで読み込みが拒否
されます。
書かなかった Capability は 有効 を意味します。capabilities ブロックが無い
オファリング、Default のままのキー、未知のモデル、カタログ自体が無い場合 — その
すべてが「利用可能」に解決されます。明示的に 利用不可 を選んだときだけ機能が外れ
ます。これらの設定を追加しても既存のオファリングの挙動が一切変わらないのは、このため
です。
何も黙って消えることはありません。外されたツールは prompt dump に provider capability
という理由付きで除外として現れ、Built-in エージェント カードは選択中のモデルが何を外して
いるかを明示し、サーバログにはオファリング名を含む 1 行が出ます。
同じ規則は「誰の設定でもない不在」にも適用されます。ホスト型 Web search は Structured
output が ON のあいだ剥落します(プロバイダが両者の組み合わせを拒否するため)。この場合
は理由 structured output 付きの除外として一覧され 、このカタログではなく run-target 側
のカードを指し示します。
実際にリクエストが失敗するまでは、すべて Default のままにしてください。Default は 「利用可能」であり、これらの設定が存在しなかった頃と同じ挙動です。
そのデプロイをネイティブ foundry プロバイダとして登録すると、プラットフォーム提供の
web search が使えます(Anthropic 側の制限を受けません)。ただしネイティブ側の生成
オプションはデプロイ名で判定されるため、Claude のデプロイでは生成オプションが表示され
ません。通常は Hosted on Anthropic で作り直すほうが適切です。
モデルの表示順
ファイル内の chat offering の並び順が、そのままモデルセレクタの表示順になります。 最もよく使うモデルを先頭に置けば、先頭に表示されます。
default: true フラグが決めるのは、新しいチャットでどのモデルが初期選択されるか
だけです。そのモデルを一覧の先頭に移動させるものではありません。ファイル内で 3 番目
にある default は 3 番目に表示され、それでも初期選択されるモデルです。
v0.106.0 より前は、default モデルはファイル内の位置にかかわらず常にセレクタの先頭へ 引き上げられていました。default が先頭にない場合、アップグレード後はドロップダウンの 並びが変わって見えます(default が実際の位置に表示されるようになります)。どのモデルが 応答するかは変わりません。以前の見た目に戻すには、App Settings 画面でそのモデルを先頭に ドラッグしてください。
offering の作成(CLI と GUI)
JSONC を手書きする必要はありません。カタログは運用者が設定可能で、方法は 2 つ
あります。どちらも同じ MODEL_OFFERINGS_FILE を読み書きするため、併用できます。
list は従来どおり稼働中サーバの状態を反映し、下記の作成コマンドと画面はファイル
そのものを管理します。
CLI(オフライン、サーバ不要)。 chatwalaau models コマンドはローカルのカタログ
ファイルを読み書きし、無ければ作成します:
# 対話ウィザード: offering を 1 つ作成して追記
$ chatwalaau models add
Provider [azure-openai / anthropic / openai / foundry]: anthropic
Model ref: claude-opus-4-8
Operation [chat / embeddings / image / live / decision / transcription / speech]: chat
Offering id: claude-opus-4-8
Default chat model? [y/N]: y
Base URL: https://api.anthropic.com
Hosting [direct / foundry]: direct
Family (optional):
Context window (optional): 200000
API key environment variable name: ANTHROPIC_API_KEY
Wrote model_offerings.jsonc (1 offering).
# id を指定して既存の offering を編集 / 削除
$ chatwalaau models edit claude-opus-4-8
$ chatwalaau models remove claude-opus-4-8
# 稼働中サーバが提供中のモデルを一覧(読み取り専用、従来どおり)
$ chatwalaau models list
ウィザードが尋ねるのは API キーの環境変数の名前(api_key_env)だけで、秘密の
値ではありません。chatwalaau init は .env を書き出した直後にこの「最初のモデルを
設定する」ステップを実行することもできます(chatwalaau init --no-model や
非対話実行ではスキップ)。したがってモデルは init の前でも後でも設定できます。
GUI(App Settings 画面)。 チャットサイドバー下部のギア/スライダーアイコン(info アイコンの隣)から App Settings 画面を開きます。左ペインは検索可能な設定リスト (更新ボタン付き)、右ペインはモデルオファリングカタ ログのエディタです。offering は 操作ごとにまとめて構成します -- Chat(最低 1 つ、既定はちょうど 1 つ)、 Embeddings(0〜1)、Image(0〜1)、Live(0〜1)。参照する各環境変数には 検出済み / 未設定のインジケータが表示され、値を一切見ることなくキーの有無を 確認できます。保存はインプロセスのホットリロードで即座に適用され(再起動不要)、 適用中は進行インジケータが表示されます。
各 offering はコンパクトな行(id / プロバイダ / モデル / 既定)で表示され、編集 したいときにクリックで展開します。グリップハンドルをドラッグして並べ替えでき、 その順序がそのままチャットのモデルセレクタの表示順になります。
GUI からの保存はクリーンな JSON を書き出すため、model_offerings.jsonc に手書きした
コメントは保持されません(名前付きの auth_profiles エントリは保持されます)。CLI
の編集はサーバの次回起動時に反映され、GUI の保存は稼働中サーバをその場でホットリロード
します。新しい環境変数は増えません -- どちらの方法も MODEL_OFFERINGS_FILE(既定
model_offerings.jsonc)を使います。
タスク別モデルの割り当て
セレクタで選ぶチャットモデルとは別に、ChatWalaʻau はいくつかのバックグラウンド補助 モデルを実行します -- チャットのタイトル生成、ユーザーメモリ抽出、エージェント メモリ整理、Teams 会議の要約、自然言語質問からオントロジー SPARQL への変換、 そして v0.169.0 からは Live 会話が任せた作業の実行です。 これらは既存のチャット offering のいずれかに割り当てられ、その offering のプロバイダ・ エンドポイント・認証情報を自動的に引き継ぎます。
- GUI. App Settings 画面の Task model assignments セクションに、各タスクと 「チャット offering + Follow session / default」のドロップダウンが並びます。
- CLI.
chatwalaau models role listでタスクと現在の割り当てを表示、chatwalaau models role set <role> <offering-id>で割り当て、chatwalaau models role clear <role>で解除します。 - ファイル.
model_offerings.jsoncの任意のトップレベルrolesブロックに保存されます。 例:"roles": { "session_title": "gpt-4o-mini" }。
未割り当てのタスクはチャット自身のモデル(次いでカタログ既定)を使います(既定の挙動。
Live delegation では選択中エージェント自身のモデル)。役割キーは session_title /
user_memory_extraction / agent_memory_curation / meeting_summary / ontology_nl /
live_delegation です。
v0.109.0 以降、この割り当てが専用の SESSION_TITLE_MODEL /
USER_MEMORY_EXTRACTION_MODEL / AGENT_MEMORY_CURATION_MODEL /
TEAMS_MEETING_SUMMARY_MODEL / ONTOLOGY_NL_MODEL 環境変数を置き換え、これらは削除
されました。残存する変数は無視されます(起動時に後継の役割を案内する助言が出ます)。
Anthropic(Claude)プロバイダ
Claude モデルは、モデルオファリングカタログの中で
"provider": "anthropic" を持つオファリングとして設定します。ほかのモデルと同じ
セレクターに表示され、ターンごとに選べます。オファリングごとにホスティングを選べるので、
direct と Foundry 上の Claude を並べて使えます。
direct ホスティング(Anthropic の公開 API)-- キーは、オファリングが名前を指定する 環境変数に置きます:
{
"id": "claude-opus-4-8",
"provider": "anthropic",
"hosting": "direct", // 省略時の既定
"model_ref": "claude-opus-4-8",
"api_key_env": "ANTHROPIC_API_KEY" // または auth_profile
// "base_url": "https://your-gateway.example.com" // 任意のプロキシ
}
Foundry ホスティング(Microsoft Foundry 上の Anthropic)-- オファリングの
base_url に、Anthropic on Foundry の完全な URL を指定します:
{
"id": "claude-opus-5",
"provider": "anthropic",
"hosting": "foundry",
"model_ref": "claude-opus-5", // Foundry のデプロイ名
"base_url": "https://my-aifoundry.services.ai.azure.com/anthropic"
// 認証 A -- API キー: "api_key_env": "MY_FOUNDRY_KEY"
// 認証 B -- Entra ID: api_key_env を省略すると共有の Azure 資格情報を使います
// (AZURE_CREDENTIAL_MODE = cli | managed-identity | default)
}
base_url は https://<resource>.services.ai.azure.com/anthropic です。Foundry の
プロジェクト URL(.../api/projects/...)ではなく、Azure AI Services のリソース名
から組み立てます。このホスティングでは endpoint は使いません。v0.163.0 からは、
endpoint を指定したオファリングや base_url のないオファリングは、カタログの保存時と
読み込み時に、直し方を示すメッセージとともに拒否されます。Entra ID 認証では、
api_key_env でトークンを指定しないでください。そのまま api-key ヘッダーとして送られ、
HTTP 401 になります。
ANTHROPIC_HOSTING、ANTHROPIC_MODELS、ANTHROPIC_FOUNDRY_RESOURCE、
ANTHROPIC_FOUNDRY_BASE_URL、ANTHROPIC_FOUNDRY_API_KEY はもう読まれません。
カタログがこれらを置き換えました。ただし下位の Anthropic ライブラリは今も
ANTHROPIC_FOUNDRY_* の 3 つを探すため、ChatWalaʻau は起動時にこれらを自身のプロセス
から取り除き(カタログがその名前を参照している場合を除く)、それぞれについて警告を
出します。.env から削除してください。
Anthropic はすべてのリクエストで、出力の上限として max_tokens を必須とします。
その下限は App Settings の Anthropic max tokens 設定です。
v0.192.0 から Claude は Anthropic Python SDK 1.x(httpx2 ベース)で動作します。
ChatWalaʻau が Claude に送る内容(思考、推論努力度、プロンプトキャッシュ)は変わりません。
変わるのは 2 点です。OpenAI 互換 API
経由で送った temperature / top_p は Claude では無視されます。また、Claude のエンドポイントの
TLS 証明書は OS の証明書ストアで検証されます(特定の CA バンドルを使うには SSL_CERT_FILE
または SSL_CERT_DIR を設定します)。
v0.210.0(Microsoft Agent Framework 1.24)から、長いサーバー側の検索の途中で Claude のターンが 一時停止しても、回答が届くまで自動で続行します(モデル呼び出し 1 回につき最大 10 回)。続行のたびに 課金対象のリクエストが発生し、ターンのトークン使用量にはそのすべてが含まれます。
Claude では、ホスト型の Web 検索(web_search_20250305)がそのまま使えます。それ以外の
エージェント機能も、モデルがツール呼び出しに対応していれば、どちらのプロバイダでも
動作します。音声認識、音声合成、画像生成、RAG の埋め込みは、チャットのプロバイダとは
独立した専用の Azure モデルで動作します。
OpenAI(direct)プロバイダ
OpenAI 公開 API のモデルを Azure OpenAI・Anthropic と並べて有効化できます。同じ
セレクタに表示され、ターン単位で選べます。OpenAI は既定で無効で、OPENAI_MODELS
未設定なら何もしません。
認証は API キーのみです:
OPENAI_MODELS=gpt-5.1
OPENAI_API_KEY=sk-...
# OPENAI_BASE_URL=https://your-gateway.example.com # 任意(OpenAI 互換ゲートウェイ)
本リリースは推論モデル(例: gpt-5.x / o系)をサポートします。これらは Azure OpenAI
の推論モデルと全く同じ挙動です -- 同じ推論努力度コントロール、ホスト型 Web 検索
(WEB_SEARCH_COUNTRY による国別スコープ)、構造化出力に対応します。
非推論モデル(gpt-4o / gpt-4.1)は後続リリースで対応予定です。
Microsoft Foundry プロバイダ
Microsoft Foundry プロジェクトにデプロイした推論モデルを、他のプロバイダと並べて
有効化できます。同じセレクタに表示され、ターン単位で選べます。Model Offering Catalog に
foundry の offering を追加します。endpoint はプロジェクトのエンドポイントです。
{
"id": "gpt-5.1-foundry",
"provider": "foundry",
"model_ref": "gpt-5.1",
"endpoint": "https://<resource>.services.ai.azure.com/api/projects/<project>"
}
認証は Entra ID のみで、Azure OpenAI と同じ Azure 認証設定を再利用します:
AZURE_CREDENTIAL_MODE(cli = az login、Azure ホスト環境では
managed-identity、または default)と AZURE_TENANT_ID のピン留めです。
API キーのオプションはありません -- Foundry プロジェクトエンドポイントは
Entra ID で認証します。サインインする ID にプロジェクトリソース上の Foundry
データプレーンロール(例: Azure AI User)を付与してください。
AZURE_OPENAI_API_KEY はこのプロバイダには適用されません。
Foundry のチャットモデルデプロイは何でも列挙できます。生成コントロールは モデルファミリーに合わせて変わります: OpenAI 推論系デプロイ(gpt-5.x / o系の 名前)は Azure OpenAI 推論モデルと同じ推論努力度コントロールを公開し、 それ以外のファミリー(例: DeepSeek)は生成コントロールを表示しません -- それらのモデルが拒否するパラメータはリクエストに含まれません。 Web 検索(引用付き)と構造化出力は全ファミリーで動作します。
このプロバイダ("provider": "foundry")は、Foundry のプロジェクト endpoint から
モデルをネイティブに提供します。Anthropic プロバイダの Foundry ホスティング
("provider": "anthropic"、"hosting": "foundry")とは別物で、そちらは Anthropic の
ルートで Claude を提供し、endpoint ではなく base_url を使います。