From a499eb9febecc2de95af9dec5e3e6c94ed206d8a Mon Sep 17 00:00:00 2001 From: CI-DEV <154627941+IlumCI@users.noreply.github.com> Date: Thu, 16 Oct 2025 22:10:34 +0300 Subject: [PATCH] Update multi_agent_router.py --- swarms/structs/multi_agent_router.py | 41 +++++++++++++++++++--------- 1 file changed, 28 insertions(+), 13 deletions(-) diff --git a/swarms/structs/multi_agent_router.py b/swarms/structs/multi_agent_router.py index 81a15406..1d6ff977 100644 --- a/swarms/structs/multi_agent_router.py +++ b/swarms/structs/multi_agent_router.py @@ -164,19 +164,34 @@ class MultiAgentRouter: # Avoids errors on models like `gpt-3.5-turbo` which don't support json_schema def _supports_structured_outputs(model_name: str) -> bool: name = (model_name or "").lower() - return any( - prefix in name - for prefix in [ - "gpt-4.1", - "openai/gpt-4.1", - "gpt-4o", - "openai/gpt-4o", - "o3-", - "openai/o3-", - "o4-", - "openai/o4-", - ] - ) + # Models that DON'T support structured outputs (exclude these) + unsupported_models = [ + "gpt-3.5-turbo", + "gpt-4-turbo", + "gpt-4", + "text-davinci", + "text-curie", + "text-babbage", + "text-ada", + "claude-2", + "claude-instant", + "claude-v1", + "gemini-pro-vision", + "text-bison", + "chat-bison", + "llama-2", + "llama-3", + "mistral-7b", + "mistral-small", + ] + + # If it's in the unsupported list, return False + if any(unsupported in name for unsupported in unsupported_models): + return False + + # Otherwise, assume it supports structured outputs + # This includes newer Claude, Gemini, and OpenAI models + return True # Build LiteLLM kwargs with conditional response_format lite_llm_kwargs = {