# OpenAIProviderNames

> 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/api/tracon.openaiprovidernames/
> Summary: OpenAIProviderNames: The provider names that the UseOpenAI call registers, and the ModelBinding.ProviderSettings keys.

<div class="api-provenance">Namespace Tracon · Assembly <code>Tracon.OpenAI.dll</code></div>

The provider names that the `UseOpenAI` call registers, and the
[ModelBinding.ProviderSettings](/api/tracon.modelbinding/#Tracon_ModelBinding_ProviderSettings) keys.

```csharp
public static class OpenAIProviderNames
```

<dl class="api-relations"><dt>Inheritance</dt><dd><a href="https://learn.microsoft.com/dotnet/api/system.object">object</a> ← <a href="/api/tracon.openaiprovidernames/">OpenAIProviderNames</a></dd><dt>Inherited Members</dt><dd><a href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object?)</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object?, object?)</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object?, object?)</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a></dd></dl>

## Remarks

These names are **stable**. Agent definitions are stored in the database
with these names; changing them breaks the stored definitions.

## Fields

### <a id="Tracon_OpenAIProviderNames_ChatCompletions"></a> ChatCompletions

Gets the provider that uses the Chat Completions API: `openai`.

```csharp
public const string ChatCompletions = "openai"
```

#### Field Value

 [string](https://learn.microsoft.com/dotnet/api/system.string)

### <a id="Tracon_OpenAIProviderNames_Responses"></a> Responses

Gets the provider that uses the Responses API: `openai-responses`.

```csharp
public const string Responses = "openai-responses"
```

#### Field Value

 [string](https://learn.microsoft.com/dotnet/api/system.string)

### <a id="Tracon_OpenAIProviderNames_SettingsPrefix"></a> SettingsPrefix

The prefix for provider-specific settings: `openai`.

```csharp
public const string SettingsPrefix = "openai"
```

#### Field Value

 [string](https://learn.microsoft.com/dotnet/api/system.string)

#### Remarks

One prefix covers both surfaces ([OpenAIProviderNames.ChatCompletions](/api/tracon.openaiprovidernames/#Tracon_OpenAIProviderNames_ChatCompletions) and
[OpenAIProviderNames.Responses](/api/tracon.openaiprovidernames/#Tracon_OpenAIProviderNames_Responses)) and every provider that
`UseOpenAICompatible` registers, whatever name it is given: they
all build their clients through the same OpenAI client library.

### <a id="Tracon_OpenAIProviderNames_StrictJsonSchemaSetting"></a> StrictJsonSchemaSetting

The setting key that asks OpenAI to enforce the response schema while the model generates:
`openai.strictJsonSchema` (boolean).

```csharp
public const string StrictJsonSchemaSetting = "openai.strictJsonSchema"
```

#### Field Value

 [string](https://learn.microsoft.com/dotnet/api/system.string)

#### Remarks

Defaults to **off**. With it on, the request carries `strict: true` on the response
format of an agent whose [ModelBinding.ResponseFormat](/api/tracon.modelbinding/#Tracon_ModelBinding_ResponseFormat) is a JSON schema, and OpenAI refuses
to produce a reply that breaks the schema. It applies to the response format only; the agent's tools
stay non-strict.

Strict or not, the OpenAI client rewrites the schema before it sends it: every object is closed, every
property becomes required, and the bounds (`maxLength`, `pattern`, `minimum` and the
like) move into the schema's `description` text. Strict mode therefore enforces the schema that
`POST /api/agents/validate` reports under `responseSchemas`, not the one the author wrote. A
property that may stay empty has to allow `null`: `"type": ["string", "null"]`.

A server registered with `UseOpenAICompatible` reads the same key. A server that does not know
strict mode can refuse the request.

## Properties

### <a id="Tracon_OpenAIProviderNames_SupportedSettings"></a> SupportedSettings

The setting keys this provider supports: [OpenAIProviderNames.StrictJsonSchemaSetting](/api/tracon.openaiprovidernames/#Tracon_OpenAIProviderNames_StrictJsonSchemaSetting).

```csharp
public static IReadOnlyList<string> SupportedSettings { get; }
```

#### Property Value

 [IReadOnlyList](https://learn.microsoft.com/dotnet/api/system.collections.generic.ireadonlylist\-1)<[string](https://learn.microsoft.com/dotnet/api/system.string)\>

#### Remarks

The settings that OpenAI and the compatible servers share (temperature, output limit, reasoning
effort, response format) are fixed fields of [ModelBinding](/api/tracon.modelbinding/); only a vendor-only setting
is a key here.

Any other key is rejected: [ModelProviderSettings.Validate](/api/tracon.modelprovidersettings/)
names it and lists these. A key is never ignored silently: a setting that does nothing would leave
the author without the behavior they configured.
