From 14be134ef25ea102d18ce9fc048801f2996b552e Mon Sep 17 00:00:00 2001 From: Enrico Ros Date: Sun, 3 May 2026 14:40:48 -0700 Subject: [PATCH] AIX: xAI: always request reasoning summaries. Fixes #1091 --- .../chatGenerate/adapters/xai.responsesCreate.ts | 14 +++++++------- .../aix/server/dispatch/wiretypes/xai.wiretypes.ts | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/modules/aix/server/dispatch/chatGenerate/adapters/xai.responsesCreate.ts b/src/modules/aix/server/dispatch/chatGenerate/adapters/xai.responsesCreate.ts index 5825262df..b9575f2cf 100644 --- a/src/modules/aix/server/dispatch/chatGenerate/adapters/xai.responsesCreate.ts +++ b/src/modules/aix/server/dispatch/chatGenerate/adapters/xai.responsesCreate.ts @@ -99,13 +99,13 @@ export function aixToXAIResponses( if (reasoningEffort === 'none' || reasoningEffort === 'minimal' || reasoningEffort === 'xhigh' || reasoningEffort === 'max') // domain validation throw new Error(`XAI Responses API does not support reasoning effort '${reasoningEffort}'`); - if (reasoningEffort) { - payload.reasoning = { - effort: reasoningEffort, - // generate_summary: unsupported - // summary: unsupported, defaults to 'detailed' - }; - } + // Always request detailed reasoning summaries - grok-4.3 and others have always-on reasoning + // but only return summary text when explicitly requested. Also set effort when configured + // (only grok-4.20-multi-agent supports effort). + payload.reasoning = { + ...(reasoningEffort ? { effort: reasoningEffort } : {}), + summary: 'detailed', + }; // Add include options for reasoning and specialized for tool sources if (AIX_XAI_ADD_ENCRYPTED_REASONING) diff --git a/src/modules/aix/server/dispatch/wiretypes/xai.wiretypes.ts b/src/modules/aix/server/dispatch/wiretypes/xai.wiretypes.ts index 97adff6de..a81880dc9 100644 --- a/src/modules/aix/server/dispatch/wiretypes/xai.wiretypes.ts +++ b/src/modules/aix/server/dispatch/wiretypes/xai.wiretypes.ts @@ -118,9 +118,9 @@ export namespace XAIWire_API_Responses { // configure reasoning // [2026-01-22] OBSOLETE - only grok-3-mini)(!) reasoning: z.object({ - effort: z.enum([/*'none', 'minimal',*/ 'low', 'medium', 'high' /*, 'xhigh'*/]).nullish(), // XAI: 3 levels only + effort: z.enum([/*'none', 'minimal',*/ 'low', 'medium', 'high' /*, 'xhigh'*/]).nullish(), // only grok-4.20-multi-agent; grok-4.3 and grok-4-1-fast error if set + summary: z.enum(['auto', 'concise', 'detailed']).nullish(), // request reasoning summaries // [XAI-UNSUPPORTED] // generate_summary: z.string().nullish(), - // [XAI-UNSUPPORTED] // summary: z.enum(['auto', 'concise', 'detailed']).nullish(), // XAI: The model shall always return 'detailed' }).nullish(), // configure search