Skip to content
Declare each feature on the route
Public Preview

Provider capabilities on a Model Route

Reference for route settings that change provider requests, cost estimates, or token counts on a Model Route in Duale AI.

This reference covers provider feature declarations, Chat Completions endpoint switches, reasoning depth, token encoding, access control, and production governance for Model Routes.

  • Provider feature declarations and their states.
  • Chat Completions endpoint switches and defaults.
  • Reasoning depth options per provider type.
  • Token encoding selection and mismatch effects.
  • Route access control and production governance.

Summaries were generated by AI.

Use this reference when you configure or review a Model Route. It lists each route setting that changes provider requests, cost estimates, or token counts, and the access needed to change a route. Structured output and Images have their own pages. Understand model routing explains how Duale AI chooses a route.

Provider features describe what an endpoint can accept or produce. Task capabilities describe the work your application needs, such as coding or legal analysis, and the benchmark evidence associated with it. Choose task capabilities in RoutingPolicy; configure provider features on the Model Route.

A model identifier proves none of these capabilities. The route configuration makes the claim, and Duale AI does not test that claim against the provider. When the application sends a response schema, Duale AI still validates every answer against it. A false claim can therefore spend provider requests and time; it does not relax correctness.

Declare each feature on the route

Declare each feature under Capabilities Override -> Enabled Features. The field accepts six values. Four change provider behavior or cost:

ValueWhat you getWhat happens without it
streamingA free-text answer (no format, text, or markdown) arrives progressively while it is produced.The answer arrives complete, in one piece. Delivery changes; correctness does not.
structured_outputOn a provider type with native support, the provider enforces the response schema sent by Duale AI.Your schema reaches the model as an instruction instead, and Duale AI validates the answer either way.
context_cachingRequests caching on supported provider types and lets Duale AI estimate cached-input costs.Duale AI sends no cache control or key.
json_modeAn OpenAI-compatible or Microsoft Foundry Chat Completions endpoint receives a JSON-object request when you request a JSON response.No JSON-object request is made.
  • Value
    streaming
    What you get
    A free-text answer (no format, text, or markdown) arrives progressively while it is produced.
    What happens without it
    The answer arrives complete, in one piece. Delivery changes; correctness does not.
  • Value
    structured_output
    What you get
    On a provider type with native support, the provider enforces the response schema sent by Duale AI.
    What happens without it
    Your schema reaches the model as an instruction instead, and Duale AI validates the answer either way.
  • Value
    context_caching
    What you get
    Requests caching on supported provider types and lets Duale AI estimate cached-input costs.
    What happens without it
    Duale AI sends no cache control or key.
  • Value
    json_mode
    What you get
    An OpenAI-compatible or Microsoft Foundry Chat Completions endpoint receives a JSON-object request when you request a JSON response.
    What happens without it
    No JSON-object request is made.

Declaring tools or function_calling has no effect. These fields neither enable Tools nor grant access. Tool availability can change between model turns; Tools explains how to configure it. Function-calling benchmark results measure task performance, not provider features or Tool access. Image input is not in this list either: declare it under Image Support, as Images explains.

Only Anthropic, AWS Bedrock, OpenAI Responses, and Microsoft Foundry Responses send a cache control or key to the provider. Other provider types send no cache signal. Declaring context_caching does not prove that the provider served a cache hit.

Give every route that declares context_caching a cached-input price so Duale AI can estimate its cost. Verify actual cache hits in the route’s Performance view before you rely on those savings.

States of the declared feature list

The saved value controls the declared feature set as follows:

What you saveResult
The field is absentStreaming only. Reading the route back shows no value, not the default.
A list you savedExactly the features you named, and no others.
An explicit empty listNo feature is declared, including streaming.
An explicit null valueThe save fails validation. Omit the field instead.
  • What you save
    The field is absent
    Result
    Streaming only. Reading the route back shows no value, not the default.
  • What you save
    A list you saved
    Result
    Exactly the features you named, and no others.
  • What you save
    An explicit empty list
    Result
    No feature is declared, including streaming.
  • What you save
    An explicit null value
    Result
    The save fails validation. Omit the field instead.

Name streaming in any list you save whenever you want streaming: only an absent field gets the default. In the Dashboard, clearing every entry saves an empty list; select Not set to make the field absent again.

Chat Completions endpoint switches

These switches apply to OpenAI-compatible Chat Completions and Microsoft Foundry Chat Completions routes.

Three default to off, so an endpoint that accepts more than the default needs an explicit change. Streaming Usage Options defaults to on, so an endpoint that rejects the usage option needs an explicit change instead.

SwitchDefaultWhat the default means
Strict Structured ResponsesOffThe provider does not enforce your schema. JSON response requests use JSON-object mode only when json_mode is also declared.
Temperature and Top-P ControlsOffYour temperature and top-p values are ignored, and the endpoint’s own defaults apply.
Parallel Tool Calls with Structured ResponsesOffUnder a strict schema the model calls one tool at a time, which makes multi-tool turns slower.
Streaming Usage OptionsOnStreamed answers report token usage and cost. Turn it off only for an endpoint that rejects the option.
  • Switch
    Strict Structured Responses
    Default
    Off
    What the default means
    The provider does not enforce your schema. JSON response requests use JSON-object mode only when json_mode is also declared.
  • Switch
    Temperature and Top-P Controls
    Default
    Off
    What the default means
    Your temperature and top-p values are ignored, and the endpoint’s own defaults apply.
  • Switch
    Parallel Tool Calls with Structured Responses
    Default
    Off
    What the default means
    Under a strict schema the model calls one tool at a time, which makes multi-tool turns slower.
  • Switch
    Streaming Usage Options
    Default
    On
    What the default means
    Streamed answers report token usage and cost. Turn it off only for an endpoint that rejects the option.

Together AI applies that same one-call-at-a-time rule under a strict schema, and has no switch to change it.

Set reasoning depth on the route

Reasoning depth is a route setting. A request cannot override it. Every complete route must select an explicit reasoning mode. A preset supplies that choice; a standalone configuration must provide it. An absent or null choice fails validation. Partial preset overrides can inherit the choice.

Each provider type offers alternatives that match its request protocol. Select one supported by your endpoint; a choice in the form does not prove that every model accepts it.

Provider typeAvailable choices
AnthropicDisabled, a token budget, adaptive thinking, effort only, or unavailable controls; supported modes can also specify effort
AWS BedrockClaude disabled or token budget; Nova disabled or effort; unavailable controls
Vertex AIThinking level or unavailable controls
OpenAI Responses, Microsoft Foundry Responses, Microsoft Foundry Chat CompletionsExplicit reasoning effort or unavailable controls
GroqEnabled or disabled with explicit effort, or unavailable controls
xAIExplicit reasoning effort, fixed reasoning, or unavailable controls
CerebrasToggle, effort, fixed reasoning, or unavailable controls
Together AIToggle, effort, combined toggle and effort, or fixed behavior
OpenAI-compatible Chat CompletionsEndpoint-specific effort, toggle, template, budget, prompt, or fixed behavior
MistralPrompt reasoning enabled or disabled, or effort
Z.aiDisabled, enabled, or enabled with effort
DashScope QwenDisabled, effort, token budget, fixed token budget, or unavailable controls

Unavailable controls leave the endpoint’s fixed behavior unchanged. They do not turn reasoning off. History and output-format settings control how reasoning is returned or reused, separately from the selected mode.

For DashScope Qwen, choose either effort or a token budget; validation rejects both together. The reasoning choice of a preset appears on the route, so check it before you enable the route.

DashScope also requires an API selection. Select the DashScope API that serves the configured endpoint; one API cannot serve every model. Duale AI currently sends only text on DashScope routes, whichever API they use. An Image Support profile does not enable images on these routes or select their API.

Reasoning also changes sampling behavior on two provider types. An Anthropic route ignores temperature and top-p. An AWS Bedrock Claude route ignores both when you set a thinking budget.

The levels differ between provider types, so the same word does not mean the same depth on two routes. Set an absolute task deadline that the slowest configured route can meet.

On an Anthropic or AWS Bedrock Claude route, reasoning and a forced tool call do not combine. With reasoning on, the model can answer in text instead of calling a tool, even when your workflow expects one.

When you set a thinking budget on an Anthropic or AWS Bedrock Claude route, keep it below the requested maximum output tokens. A budget at or above that limit fails when the route handles the request.

Choose the token encoding that matches the model

tokenizer_encoding defaults to cl100k_base on every provider type, which is wrong for most model families. Select the value that matches the model from the encodings the route form offers.

An encoding that does not match the model makes Duale AI count a Task history incorrectly. If the count is too low, a long Task history can overflow the model’s context window during the provider request. If the count is too high, Duale AI reduces the Task history too early. The mismatch also makes the reported token figures less accurate.

Access needed to change a route

Configuration read, create, update, and delete use separate actions: config:read_config, config:create_config, config:update_config, and config:delete_config. Changing a declaration requires config:update_config. Tenant access policies explains how to grant an action.

Reading a route never returns a credential value. For each credential field, the route shows only whether a value is stored, is not stored, or must be replaced before the route can use it. These states neither reveal nor validate the value.

Create and update access can set or replace credentials, so grant those actions as sensitive access.

Change a declaration under production control

Route declarations are production configuration because they change provider requests, cost estimates, or route suitability. Earlier performance measurements do not establish how a route behaves after a change that affects its requests. Re-test it with representative traffic before you use it for a latency-sensitive workload.

A preset is a route template that Duale AI maintains: it owns each field it declares and can update that field. A standalone route is one whose fields you own. A preset replaces the whole declared feature list rather than merging it. A preset that ships no Image Support profile leaves that field yours. Govern a preset change through Control model changes.

Record the provider document and the date you checked it beside each declaration in your own change system. Duale AI stores the declaration, not its evidence.

Two checks before you enable a pool

Any enabled route can run any request that reaches its tenant. Two checks belong to these route pages:

  • No route declares a feature its provider type cannot perform, and every route that can serve a schema-bound workload either sends the schema or receives it as a prompt instruction. Structured output states which provider types enforce it.
  • Every route intended for image work has both an Image Support profile and a provider type that carries images, as Images explains.

Plan the deployment and model portfolio covers creating a route and the remaining checks before approval. Qualify and enable the route shows how to test a declaration against measured behavior.