> ## Documentation Index
> Fetch the complete documentation index at: https://agno-v2-service-account.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# IBM WatsonX

The IBM WatsonX model provides access to IBM's language models.

## Parameters

| Parameter                            | Type                       | Default                            | Description                                                                               |
| ------------------------------------ | -------------------------- | ---------------------------------- | ----------------------------------------------------------------------------------------- |
| `id`                                 | `str`                      | `"ibm/granite-20b-code-instruct"`  | The id of the IBM WatsonX model to use                                                    |
| `name`                               | `str`                      | `"WatsonX"`                        | The name of the model                                                                     |
| `provider`                           | `str`                      | `"IBM"`                            | The provider of the model                                                                 |
| `frequency_penalty`                  | `Optional[float]`          | `None`                             | Penalizes new tokens based on their frequency in the text so far                          |
| `presence_penalty`                   | `Optional[float]`          | `None`                             | Penalizes new tokens based on whether they appear in the text so far                      |
| `max_tokens`                         | `Optional[int]`            | `None`                             | Maximum number of tokens to generate                                                      |
| `temperature`                        | `Optional[float]`          | `None`                             | Controls randomness in the model's output                                                 |
| `top_p`                              | `Optional[float]`          | `None`                             | Controls diversity via nucleus sampling                                                   |
| `logprobs`                           | `Optional[int]`            | `None`                             | Return log probabilities of the output tokens                                             |
| `top_logprobs`                       | `Optional[int]`            | `None`                             | Number of most likely tokens to return log probabilities for                              |
| `request_params`                     | `Optional[Dict[str, Any]]` | `None`                             | Additional parameters to include in the request                                           |
| `api_key`                            | `Optional[str]`            | `None`                             | The API key for IBM WatsonX (defaults to IBM\_WATSONX\_API\_KEY env var)                  |
| `project_id`                         | `Optional[str]`            | `None`                             | The project ID for IBM WatsonX (defaults to IBM\_WATSONX\_PROJECT\_ID env var)            |
| `url`                                | `Optional[str]`            | `"https://eu-de.ml.cloud.ibm.com"` | The WatsonX endpoint URL (IBM\_WATSONX\_URL env var takes precedence)                     |
| `verify`                             | `bool`                     | `True`                             | Verify TLS certificates when connecting                                                   |
| `client_params`                      | `Optional[Dict[str, Any]]` | `None`                             | Additional parameters for client configuration                                            |
| `model_client`                       | `Optional[ModelInference]` | `None`                             | Pre-configured WatsonX ModelInference client                                              |
| `model_type`                         | `ModelType`                | `ModelType.MODEL`                  | Functional role of this model (`MODEL`, `OUTPUT_MODEL`, `PARSER_MODEL`). Set by the agent |
| `supports_native_structured_outputs` | `bool`                     | `False`                            | Whether the model supports structured outputs natively                                    |
| `supports_json_schema_outputs`       | `bool`                     | `False`                            | Whether the model uses JSON schema for structured outputs                                 |
| `system_prompt`                      | `Optional[str]`            | `None`                             | System prompt from the model added to the agent                                           |
| `instructions`                       | `Optional[List[str]]`      | `None`                             | Instructions from the model added to the agent                                            |
| `tool_message_role`                  | `str`                      | `"tool"`                           | Role of tool messages                                                                     |
| `assistant_message_role`             | `str`                      | `"assistant"`                      | Role of assistant messages                                                                |
| `cache_response`                     | `bool`                     | `False`                            | Cache model responses to avoid redundant API calls during development                     |
| `cache_ttl`                          | `Optional[int]`            | `None`                             | Time-to-live for cached responses, in seconds                                             |
| `cache_dir`                          | `Optional[str]`            | `None`                             | Directory for the response cache. Defaults to `~/.agno/cache/model_responses`             |
| `retries`                            | `int`                      | `0`                                | Number of retries to attempt before raising a ModelProviderError                          |
| `delay_between_retries`              | `int`                      | `1`                                | Delay between retries, in seconds                                                         |
| `exponential_backoff`                | `bool`                     | `False`                            | If True, the delay between retries is doubled each time                                   |
| `retry_with_guidance`                | `bool`                     | `True`                             | Retry a failed model invocation once with a guidance message appended                     |
| `retry_with_guidance_limit`          | `int`                      | `1`                                | Number of times to retry the model invocation with guidance                               |
