Skip to content

[fix] OpenResponses: skip empty reasoning block to avoid breaking non-reasoning models#6953

Open
NIK-TIGER-BILL wants to merge 1 commit intoagno-agi:mainfrom
NIK-TIGER-BILL:fix/openrouter-empty-reasoning-block
Open

[fix] OpenResponses: skip empty reasoning block to avoid breaking non-reasoning models#6953
NIK-TIGER-BILL wants to merge 1 commit intoagno-agi:mainfrom
NIK-TIGER-BILL:fix/openrouter-empty-reasoning-block

Conversation

@NIK-TIGER-BILL
Copy link
Contributor

Problem

_set_reasoning_request_param() in models/openai/responses.py unconditionally sets:

base_params["reasoning"] = self.reasoning or {}

This means every request carries "reasoning": {} even when no reasoning is configured. Models that do not support reasoning (e.g. Gemini 3.1 Pro Preview via OpenRouter) reject such payloads (closes #6945):

Error: reasoning is not supported for model google/gemini-3.1-pro-preview

Fix

Build the reasoning dict from self.reasoning + any reasoning_effort / reasoning_summary overrides, then only include it in base_params when the result is non-empty:

reasoning = dict(self.reasoning) if self.reasoning else {}
if self.reasoning_effort:
    reasoning["effort"] = self.reasoning_effort
if self.reasoning_summary:
    reasoning["summary"] = self.reasoning_summary

if reasoning:  # skip entirely when empty
    base_params["reasoning"] = reasoning

Closes #6945

…-reasoning models

_set_reasoning_request_param() unconditionally wrote:
    base_params['reasoning'] = self.reasoning or {}

This meant every request carried a 'reasoning': {} key even when no reasoning
was configured. Models that don't support reasoning (e.g. Gemini via OpenRouter)
reject such payloads:

    Error: reasoning is not supported for model google/gemini-3.1-pro-preview

Fix: build the reasoning dict from self.reasoning + effort/summary overrides,
and only add it to base_params when the result is non-empty.

Closes agno-agi#6945
@NIK-TIGER-BILL NIK-TIGER-BILL requested a review from a team as a code owner March 11, 2026 08:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] OpenRouterResponses sends empty reasoning block to non-reasoning models

1 participant