From d8007f74e90fa30d03c89758b0d0188046a98325 Mon Sep 17 00:00:00 2001 From: Bentlybro Date: Fri, 13 Feb 2026 15:08:15 +0000 Subject: [PATCH] fix(llm): handle provider-prefixed slugs in o-series detection The regex now matches 'o' followed by digit at start OR after '/' separator. This fixes detection for slugs like 'openai/o1-mini' from OpenRouter. --- autogpt_platform/backend/backend/blocks/llm.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/autogpt_platform/backend/backend/blocks/llm.py b/autogpt_platform/backend/backend/blocks/llm.py index d8525bfa22..bf197f6aad 100644 --- a/autogpt_platform/backend/backend/blocks/llm.py +++ b/autogpt_platform/backend/backend/blocks/llm.py @@ -452,8 +452,10 @@ def get_parallel_tool_calls_param( ) -> bool | openai.NotGiven: """Get the appropriate parallel_tool_calls parameter for OpenAI-compatible APIs.""" # Check for o-series models (o1, o1-mini, o3-mini, etc.) which don't support - # parallel tool calls. Use regex to avoid false positives like "openai/gpt-oss". - is_o_series = re.match(r"^o\d", llm_model) is not None + # parallel tool calls. Handle both bare slugs ("o1-mini") and provider-prefixed + # slugs ("openai/o1-mini"). The pattern matches "o" followed by a digit at the + # start of the string or after a "/" separator. + is_o_series = re.search(r"(^|/)o\d", llm_model) is not None if is_o_series or parallel_tool_calls is None: return openai.NOT_GIVEN return parallel_tool_calls