# ModelBinding

> Tracon documentation. Tracon is a .NET package family that adds a control
> plane on Microsoft Agent Framework, published as NuGet packages that run
> inside your own ASP.NET Core application.
>
> Page: https://tracon.dev/http-api/schemas/modelbinding/
> Summary: OpenAPI request or response schema for ModelBinding, including required fields, defaults, constraints, and linked nested types.

[← All HTTP schemas](/http-api/schemas/)

Determines the provider and the model an agent runs with. It carries
<em>no</em> credentials; the API key is resolved from configuration.

**Shape:** `object`

| Property | Required | Type | Description | Rules |
|---|---|---|---|---|
| `provider` | yes | `string` | Gets the provider name, for example `openai`. | — |
| `model` | yes | `string` | Gets the model name, for example `gpt-5.4-mini`. | — |
| `temperature` | no | `number (float)` | Gets the sampling temperature. The provider default is used when it is `null`. | pattern `^-?(?:0\\|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$` |
| `maxOutputTokens` | no | `integer (int32)` | Gets the upper output token limit. The provider default is used when it is `null`. | pattern `^-?(?:0\\|[1-9]\d*)$` |
| `topP` | no | `number (float)` | Gets the nucleus sampling threshold. The provider default is used when it is `null`. | pattern `^-?(?:0\\|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$` |
| `reasoningEffort` | no | `string` | Gets the reasoning effort level. Models that support it use the value; the other providers ignore it. | — |
| `providerSettings` | no | `object` | Gets the provider-specific extra settings. A key has the form `{provider}.{setting}`. | — |
| `responseFormat` | no | `null` oneOf [`AgentResponseFormat`](/http-api/schemas/agentresponseformat/) | — | — |
| `fallbacks` | no | array of [`ModelFallback`](/http-api/schemas/modelfallback/) | Gets the ordered fallback chain tried when the primary provider is unavailable. Empty by default. | — |
| `responseCache` | no | `null` oneOf [`ResponseCacheSettings`](/http-api/schemas/responsecachesettings/) | — | — |
| `seed` | no | `integer (int64)` | Gets the sampling seed. The provider default is used when it is `null`. | pattern `^-?(?:0\\|[1-9]\d*)$` |
| `topK` | no | `integer (int32)` | Gets the top-k sampling limit. The provider default is used when it is `null`. | pattern `^-?(?:0\\|[1-9]\d*)$` |
| `stopSequences` | no | `array` | Gets the sequences that stop generation. Nothing is sent when it is `null` or empty. | — |
| `frequencyPenalty` | no | `number (float)` | Gets the frequency penalty. The provider default is used when it is `null`. | pattern `^-?(?:0\\|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$` |
| `presencePenalty` | no | `number (float)` | Gets the presence penalty. The provider default is used when it is `null`. | pattern `^-?(?:0\\|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$` |
| `toolMode` | no | `string` | Gets how the model may use the agent's tools. The provider default (the model decides) is used when it is `null`. | — |
| `allowMultipleToolCalls` | no | `boolean` | Gets whether the model may ask for several tool calls in one turn. The provider default is used when it is `null`. | — |
| `reasoningOutput` | no | `string` | Gets how much of the model's reasoning the response carries. The provider default is used when it is `null`. | — |
| `toolLoop` | no | `null` oneOf [`ToolLoopSettings`](/http-api/schemas/toolloopsettings/) | — | — |
