Skip to content
Tracon

OpenAIProviderNames

Namespace Tracon · Assembly Tracon.OpenAI.dll

The provider names that the UseOpenAI call registers, and the ModelBinding.ProviderSettings keys.

public static class OpenAIProviderNames
Inheritance
object ← OpenAIProviderNames
Inherited Members
object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()

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

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

public const string ChatCompletions = "openai"

string

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

public const string Responses = "openai-responses"

string

The prefix for provider-specific settings: openai.

public const string SettingsPrefix = "openai"

string

One prefix covers both surfaces (OpenAIProviderNames.ChatCompletions and OpenAIProviderNames.Responses) and every provider that UseOpenAICompatible registers, whatever name it is given: they all build their clients through the same OpenAI client library.

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

public const string StrictJsonSchemaSetting = "openai.strictJsonSchema"

string

Defaults to off. With it on, the request carries strict: true on the response format of an agent whose 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.

The setting keys this provider supports: OpenAIProviderNames.StrictJsonSchemaSetting.

public static IReadOnlyList<string> SupportedSettings { get; }

IReadOnlyList<string>

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

Any other key is rejected: ModelProviderSettings.Validate 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.