From a682355230d1c6d0424b0ed48c87b6f45ba355ee Mon Sep 17 00:00:00 2001 From: Andy Lemin Date: Tue, 12 May 2026 14:45:27 +1000 Subject: [PATCH] fix(bedrock): disable temperature for Claude Opus 4.7 Claude Opus 4.7 does not support the temperature parameter (deprecated). Previously, temperature was always sent in inferenceConfig which caused a 400 error: 'temperature is deprecated for this model'. Changes: - Add supportsTemperature: false to anthropic.claude-opus-4-7 model def - Skip sending temperature in inferenceConfig when supportsTemperature is false (both createMessage and completePrompt paths) - The UI already conditionally hides the Custom Temperature setting based on supportsTemperature !== false --- packages/types/src/providers/bedrock.ts | 1 + src/api/providers/bedrock.ts | 10 ++++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/packages/types/src/providers/bedrock.ts b/packages/types/src/providers/bedrock.ts index 62e180ad30..aa665ef1c4 100644 --- a/packages/types/src/providers/bedrock.ts +++ b/packages/types/src/providers/bedrock.ts @@ -173,6 +173,7 @@ export const bedrockModels = { supportsImages: true, supportsPromptCache: true, supportsReasoningBudget: true, + supportsTemperature: false, // Temperature is deprecated for this model inputPrice: 5.0, // $5 per million input tokens (≤200K context) outputPrice: 25.0, // $25 per million output tokens (≤200K context) cacheWritesPrice: 6.25, // $6.25 per million tokens diff --git a/src/api/providers/bedrock.ts b/src/api/providers/bedrock.ts index e91c1b3907..eb254cfa80 100644 --- a/src/api/providers/bedrock.ts +++ b/src/api/providers/bedrock.ts @@ -435,7 +435,10 @@ export class AwsBedrockHandler extends BaseProvider implements SingleCompletionH const inferenceConfig: BedrockInferenceConfig = { maxTokens: modelConfig.maxTokens || (modelConfig.info.maxTokens as number), - temperature: modelConfig.temperature ?? (this.options.modelTemperature as number), + // Only include temperature if the model supports it (Opus 4.7 deprecated temperature) + ...(modelConfig.info.supportsTemperature !== false && { + temperature: modelConfig.temperature ?? (this.options.modelTemperature as number), + }), } // Check if 1M context is enabled for supported Claude 4 models @@ -775,7 +778,10 @@ export class AwsBedrockHandler extends BaseProvider implements SingleCompletionH const inferenceConfig: BedrockInferenceConfig = { maxTokens: modelConfig.maxTokens || (modelConfig.info.maxTokens as number), - temperature: modelConfig.temperature ?? (this.options.modelTemperature as number), + // Only include temperature if the model supports it (Opus 4.7 deprecated temperature) + ...(modelConfig.info.supportsTemperature !== false && { + temperature: modelConfig.temperature ?? (this.options.modelTemperature as number), + }), } // For completePrompt, use a unique conversation ID based on the prompt