Supported providers
| Provider | Provider ID |
|---|---|
| OpenAI | openai |
| watsonx.ai | watsonx |
| Groq | groq |
| Anthropic | anthropic |
| Google Gen AI | google |
| Gemini Enterprise Agent Platform | vertex-ai |
| Azure AI | azure-ai |
| Azure OpenAI | azure-openai |
| AWS Bedrock | bedrock |
| Mistral | mistral-ai |
| OpenRouter | openrouter |
| x.ai | x-ai |
| Ollama | ollama |
Note:
- When importing a model from OpenRouter, always set the
max_tokenparameter explicitly. If you skip this step, the system defaults to 65536 tokens. This high token count can cause the request to fail if you don’t have enough credits. - GPT-OSS-120b is a non-IBM product governed by a third-party license that may impose use restrictions and other obligations. By using this model you agree to the terms. Read the terms.
Understanding Virtual Models
You can configure watsonx Orchestrate to register an external model/provider, also known as a virtual model. However, there are important considerations:Compatibility and Support
Not every model and provider combination is supported or tested. While the supported providers list shows providers that have been tested in the past, this does not guarantee that every model on every listed provider will work. Consider the following:- New models and API changes: Models are released frequently, and some introduce API specification changes that may cause runtime errors
- Intermediate infrastructure: If there are components in the request path between watsonx Orchestrate and the provider (such as gateways, proxies, or adapters), these may introduce incompatibilities or special authentication requirements that watsonx Orchestrate does not support
- Model suitability: Not all models are well-suited for agentic workflows. Even when a model registers successfully and runs without errors, the results may not be accurate enough for business-critical agents
Optimized Support
watsonx Orchestrate provides optimized support for:- gpt-oss-120b via Groq or AWS Bedrock providers
- gpt-oss-120b via watsonx.ai in GovCloud environments (available April mid-release)
Testing Requirements
When registering virtual models with other providers, allocate sufficient time to validate that the combination works correctly. Testing may identify incompatibilities that prevent the agent from functioning as expected.Using Custom Provider Endpoints
If you self-host an LLM or have a model proxy/gateway as a pass-through to another provider, you may be able to leverage OpenAI chat completion compatibility. This section covers authentication options for custom endpoints.OpenAI-Compatible with API Key Authentication
The default base URL for theopenai provider is https://api.openai.com/v1. For self-hosted OpenAI-compatible endpoints, ensure your full URL ends with /chat/completions, but exclude this path when providing the custom_host during registration.
Authentication format:
Define the model specification
custom-openai-model.yaml
/chat/completions in the custom_host value.OpenAI-Compatible with OAuth 2.0 Authentication
For self-hosted OpenAI-compatible endpoints that use OAuth 2.0 client credentials authentication, use theopenai-oauth2-client-creds provider type. This is appropriate when your OAuth token endpoint is separate from your LLM inferencing endpoint.
Prerequisites: Your LLM inferencing URL must:
- End with
/chat/completions(per OpenAI spec) - Accept OAuth tokens in the request header:
Authorization: Bearer your-access-token
Create OAuth connection
First, create a Team application/connection in watsonx Orchestrate. See OAuth 2.0 Client Credentials for details.Example OAuth token endpoint:
CLI Reference
- Importing from a file
- Using the CLI only
You can add a virtual model to watsonx Orchestrate using the
orchestrate models import command.Examples using the supported providers
The following sections contain examples and the supported schemas for each model provider.OpenAI
OpenAI
The fields which can either be set by connection or by the
provider_config field of the model. Values from
a connection will be merged with the provider_config.Define the model specification file
Then, you can define a specification file to provide the details about the model and the provider configuration specifications:
gpt-5-2025-08-07.yaml
Create an API key connection
To safely use the OpenAI API key, you must first create a connection:
BASH
watsonx.ai
watsonx.ai
The fields which can either be set by connection or by the
provider_config field of the model. Values from
a connection will be merged with the provider_config.Create an API key connection
BASH
Note:When you add a watsonx.ai virtual model, include the provider-config details. Without them, chat access to the model may fail. Provide custom host details using the —provider-config flag in the orchestrate models add command. For more information, see Using the CLI only.
Notes:
- Provide one of:
watsonx_space_id,watsonx_project_id, orwatsonx_deployment_id. - Include
watsonx_cpd_url,watsonx_cpd_username,watsonx_cpd_passwordonly for on-prem (CPD) setups. - When deploying Deploy on Demand (DoD) models, you need to explicitly provide the model configuration during registration. Set these configuration values according to the model’s requirements, since they don’t automatically transfer during inference from the watsonx Orchestrate side.
Groq
Groq
The fields which can either be set by connection or by the
provider_config field of the model. Values from
a connection will be merged with the provider_config.Define the model specification file
Then, you can define a specification file to provide the details about the model and the provider configuration specifications:
gpt-oss-120b.yaml
Anthropic
Anthropic
The fields which can either be set by connection or by the
provider_config field of the model. Values from
a connection will be merged with the provider_config.Google Gen AI
Google Gen AI
The fields which can either be set by connection or by the
provider_config field of the model. Values from
a connection will be merged with the provider_config.Gemini Enterprise Agent Platform
Gemini Enterprise Agent Platform
Known Limitations:
- API key authentication is not supported. Use service account JSON authentication instead.
The fields which can be set in the
provider_config field of the model.Azure
Azure
The fields which can either be set by connection or by the
provider_config field of the model. Values from
a connection will be merged with the provider_config.Azure OpenAI
Azure OpenAI
The fields which can either be set by connection or by the
provider_config field of the model. Values from
a connection will be merged with the provider_config.AWS Bedrock
AWS Bedrock
The fields which can either be set by connection or by the
provider_config field of the model. Values from
a connection will be merged with the provider_config.Note:
- You must provide either the
api_key,aws_secret_access_key, oraws_access_key_id. - You must provide the model name in the
namefield. - When deploying Deploy on Demand (DoD) models, you need to explicitly provide the model configuration during registration. Set these configuration values according to the model’s requirements, since they don’t automatically transfer during inference from the watsonx Orchestrate side.
Mistral
Mistral
The fields which can either be set by connection or by the
provider_config field of the model. Values from
a connection will be merged with the provider_config.OpenRouter
OpenRouter
The fields which can either be set by connection or by the
provider_config field of the model. Values from
a connection will be merged with the provider_config.x.ai
x.ai
The fields which can either be set by connection or by the
provider_config field of the model. Values from
a connection will be merged with the provider_config.Ollama
Ollama
The fields which can either be set by connection or by the
provider_config field of the model. Values from
a connection will be merged with the provider_config.Start ollama
In some systems, Then you can start the Ollama server and download the model, if it has not started yet:
ollama might run under the systemctl, so you need to stop it before you run the Ollama server:Testing your connection
Before you import the model, it is a good idea to test your connection to guarantee the watsonx Orchestrate Developer Edition server can connect to the Ollama server.
- Use the following curl command to test your connection, replacing
198.51.100.42with the IP address that you obtained in the previous step:
- Enter the watsonx Orchestrate Developer Edition gateway container:
- Run the curl command again from within the container shell.
Define the model specification file
For Ollama, you don’t need to create a connection or use an actual API key. You can use a string such as
ollama as an API key.You must use your current local network IP address as your URL. Ollama will not work if you use localhost or 0.0.0.0 in the model specification file.ollama-llama2.yaml
Remember: Replace
http://198.51.100.42:11434 with the IP address that you have obtained in the previous step.List all LLMs
Run theorchestrate models list command to see all available LLMs in your active environment.
BASH
Note:By default, you see a table of available models. If you prefer raw output, add the
--raw (-r) flag.Removing custom LLMs
Run theorchestrate models remove command and use the --name (-n) flag to specify the LLM you want to remove.
BASH
Exporting custom LLM
Run theorchestrate models export command to export LLMs in your active environment.
BASH
Updating custom LLM
To update a custom LLM, first remove it, then add it again:BASH
Additional configuration options
Setting a default LLM in the UI
If you use an on-premises installation with models provisioned only as virtual models, you can choose which model appears as the default in the user interface. To do this, add thedefault tag under the tags section of a model with the type set to chat.
granite-default-model.yaml
Note:For on-premises installations using only externally hosted virtual-models, at least one model must be specified as the default model or it will not be possible
to open the “Create Agent” page in the UI.
Setting a default embedding model
If you use an on-premises installation with models provisioned only as virtual models, you can also set a default model for knowledge bases. To do this, add thedefault tag under the tags section of a model with the type set to embedding.
virtual-model.yaml
Registering a watsonx model by using your watsonx credentials
You can also register a watsonx model that uses your watsonx credentials supplied in your.env file when you start the watsonx Orchestrate Developer Edition.
For that, your .env file must contain either:
- Your watsonx.ai credentials with the
WATSONX_APIKEYandWATSONX_SPACE_IDenvironment variables. - Or, your watsonx Orchestrate credentials with the
WO_INSTANCEandWO_API_KEYenvironment variables.
.env file with these credentials, see Installing the watsonx Orchestrate Developer Edition.
To register the watsonx model using this method, set the api_key credential value to “gateway”. You do not need to specify a space_id when you add the model. See the following example:
Note:This requirement does not apply to on-premises deployments.
BASH
Configuring LLM parameters
You can configure additional LLM parameters such as temperature and seed for more control over model behavior. These parameters can be set in your agent configuration:seed: Sets a random seed for reproducible outputs (useful for testing and debugging)temperature: Controls randomness in responses (0.0 = deterministic, higher values = more creative)

