ModelFlags Property  
 

Returns or changes the capability flags associated with the current model.

Syntax

object.ModelFlags [= value ]

Remarks

The ModelFlags property returns a set of bit flags that describe the capabilities supported by the current model associated with the client session. These flags can be used by applications to determine which features are available and adjust behavior accordingly. The value may be one or more of the following flags:

Constant Value Description
llmModelFlagNone &H0000 No model capabilities defined.
llmModelFlagChat &H0001 Supports conversational text generation.
llmModelFlagSystemRole &H0002 Accepts a system role message in the input.
llmModelFlagStreaming &H0004 Supports streaming responses.
llmModelFlagStructured &H0008 Supports structured output (e.g., JSON or schema).
llmModelFlagVision &H0010 Supports image inputs (multimodal).
llmModelFlagTools &H0020 Supports tool or function calling.
llmModelFlagReasoning &H0040 Supports reasoning-oriented generation.
llmModelFlagResponses &H0080 Supports the Responses API (unified endpoint).
llmModelFlagFunctions &H0100 Supports OpenAI-style function calling with schemas.
llmModelFlagAudio &H0200 Supports audio output (text-to-speech).
llmModelFlagImage &H0400 Supports image generation.
llmModelFlagVideo &H0800 Supports video generation.
llmModelFlagTranscription &H1000 Supports speech-to-text transcription.
llmModelFlagInstructions &H2000 Supports a dedicated instruction field outside message lists.
llmModelFlagMaxCompletionTokens &H4000 Uses max_completion_tokens instead of max_tokens in requests.
llmModelFlagInferred &H80000 Capabilities are inferred rather than explicitly defined.

Model capabilities may vary between providers and even between models offered by the same provider. Not all providers return complete capability information when enumerating models. In these cases, some flags may be inferred by the control based on the model name and known characteristics of the provider.

If there is no active connection to a service provider, this property may attempt to infer the capabilities of a model based on the values of the Provider and ModelName properties. If the model name is recognized, the control will return the inferred capabilities associated with that model. If the model name is not recognized, this property will return zero (llmModelFlagNone).

Because capability information may be incomplete or inferred, applications should treat these flags as guidance rather than absolute guarantees of behavior. The provider ultimately determines which features are supported and how they are implemented.

The value returned by this property is a bitmask and may contain multiple flags combined using a bitwise Or operation. If no capabilities are defined or available for the model, the property will return zero . In practice, most supported models provide at least basic conversational capabilities, so a value of zero is uncommon and typically indicates that capability information is not available or could not be determined.

In some cases, capability information may be incomplete or inferred. If necessary, applications can override the detected capabilities by changing this property value. This can be useful when working with providers or models that require specific options which are not automatically detected. In general, applications should rely on the default capability detection unless a specific compatibility issue is encountered.

If necessary, applications can override the detected capabilities for the current model by setting this property. This can be useful when working with providers or models that require specific options which are not automatically detected. In general, applications should rely on the default capability detection unless a specific compatibility issue is encountered. Incorrect capability flags may cause requests to fail or result in undefined provider behavior.

Some flags may be reserved for internal use or represent provider-specific capabilities. Applications should not rely on undocumented flag values and should only test for defined constants.

Data Type

Integer (Int32)

Example

LlmClient1.ProviderName = "OpenAI"
LlmClient1.ModelName = "gpt-5.4-nano"

If (LlmClient1.ModelFlags And llmModelFlagReasoning) <> 0 Then
    MsgBox "This model supports reasoning."
End If

See Also

ContextSize Property, ModelName Property, Provider Property, ProviderName Property, GetFirstModel Method, GetNextModel Method