There is a hackish workaround in the the chat API you can force function calling, I did not check if the same is supported with the assistant tools. You can set “tool_choice” when you create the request, where ever you do:
model=“o3-mini”,
messages=messages,
tools=tools,
tool_choice=“required”
the downside is that then when you loop over the tool calls it makes depending how you handle the request, the tool_choice=“required”
may stay put in the request and it never ends calling tools as it is not allowed to stop, so depending how you do it
you may need to remove the tool_choice from the request after some n tool loops that make sense - even better use mini model based agent to do a pre-step to figure out if you need to use tools and only add it when its needed to force the o3-mini based agent to do the work.