diff --git a/.ai/spec/how/config-generation.md b/.ai/spec/how/config-generation.md index 8b0aa3ffa..f316f7a03 100644 --- a/.ai/spec/how/config-generation.md +++ b/.ai/spec/how/config-generation.md @@ -30,6 +30,7 @@ llm_providers: parameters: max_tokens_for_response: tool_budget_ratio: + reasoning_config: # [PLANNED: OLS-3442] omitted when nil # Azure-specific: azure_openai_config: url: diff --git a/.ai/spec/what/crd-api.md b/.ai/spec/what/crd-api.md index 4e2502227..c701e12f5 100644 --- a/.ai/spec/what/crd-api.md +++ b/.ai/spec/what/crd-api.md @@ -35,7 +35,7 @@ Field path (relative to each provider) | JSON key | Go type | Required | Descrip `url` | `url` | `string` | No | Provider API URL. Pattern: `^https?://.*$` `credentialsSecretRef` | `credentialsSecretRef` | `corev1.LocalObjectReference` | Yes | Secret containing API credentials `models` | `models` | `[]ModelSpec` | Yes | Provider models. MaxItems=50 -`type` | `type` | `string` | Yes | Provider type enum: `azure_openai`, `bam`, `openai`, `watsonx`, `rhoai_vllm`, `rhelai_vllm`, `fake_provider`, `google_vertex`, `google_vertex_anthropic` +`type` | `type` | `string` | Yes | Provider type enum: `azure_openai`, `bam`, `openai`, `watsonx`, `rhoai_vllm`, `rhelai_vllm`, `fake_provider`, `google_vertex`, `google_vertex_anthropic`, `bedrock` `deploymentName` | `deploymentName` | `string` | No | Azure OpenAI deployment name `apiVersion` | `apiVersion` | `string` | No | Azure OpenAI API version `projectID` | `projectID` | `string` | No | Watsonx project ID @@ -77,6 +77,7 @@ Field path (relative to parameters) | JSON key | Go type | Required | Default | ---|---|---|---|---|--- `maxTokensForResponse` | `maxTokensForResponse` | `int` | No | (unset; application default is 2048) | None `toolBudgetRatio` | `toolBudgetRatio` | `float64` | No | `0.5` | Minimum=0.1, Maximum=0.5 +`reasoningConfig` | `reasoningConfig` | `map[string]interface{}` | No | (unset) | None. [PLANNED: OLS-3442] Freeform map of provider-specific reasoning/thinking parameters. Passed through to the service as `reasoning_config`. Valid keys vary by provider and model generation — see lightspeed-service `what/llm-providers.md` rule 13. When absent, no reasoning params are sent. When present with invalid keys, the provider API returns a clear 400 error. ### OLS Configuration (spec.ols) @@ -318,6 +319,7 @@ Path | Type | Default | Required | Validation | Description `spec.llm.providers[].models[].parameters` | `ModelParametersSpec` | -- | No | -- | Model parameters `spec.llm.providers[].models[].parameters.maxTokensForResponse` | `int` | -- | No | -- | Max response tokens `spec.llm.providers[].models[].parameters.toolBudgetRatio` | `float64` | `0.25` | No | Min=0.1, Max=0.5 | Tool token budget ratio +`spec.llm.providers[].models[].parameters.reasoningConfig` | `map[string]interface{}` | -- | No | -- | [PLANNED: OLS-3442] Provider-specific reasoning/thinking params `spec.llm.providers[].type` | `string` | -- | Yes | Enum (see rule 7) | Provider type `spec.llm.providers[].deploymentName` | `string` | -- | No | XValidation (rule 8) | Azure deployment name `spec.llm.providers[].apiVersion` | `string` | -- | No | -- | Azure API version @@ -450,4 +452,4 @@ Path | Type | Default | Required | Validation | Description ## Planned Changes -None. +- [PLANNED: OLS-3442] Add `reasoningConfig` field (`map[string]interface{}`) to `ModelParametersSpec`. Freeform map passed through to the service as `reasoning_config` for provider-specific reasoning/thinking parameters. Includes release notes and user-facing documentation for valid keys per provider.