diff --git a/run_agent.py b/run_agent.py index 107b803c..bb66351b 100644 --- a/run_agent.py +++ b/run_agent.py @@ -2392,16 +2392,24 @@ class AIAgent: extra_body = {} - if provider_preferences: - extra_body["provider"] = provider_preferences - _is_openrouter = "openrouter" in self.base_url.lower() + + # Provider preferences (only, ignore, order, sort) are OpenRouter- + # specific — don't send them to other providers (Nous, Codex, etc.) + if provider_preferences and _is_openrouter: + extra_body["provider"] = provider_preferences _is_nous = "nousresearch" in self.base_url.lower() _is_mistral = "api.mistral.ai" in self.base_url.lower() if (_is_openrouter or _is_nous) and not _is_mistral: if self.reasoning_config is not None: - extra_body["reasoning"] = self.reasoning_config + rc = dict(self.reasoning_config) + # Nous Portal requires reasoning enabled — don't send + # enabled=false to it (would cause 400). + if _is_nous and rc.get("enabled") is False: + pass # omit reasoning entirely for Nous when disabled + else: + extra_body["reasoning"] = rc else: extra_body["reasoning"] = { "enabled": True,