O3-mini API with tools only ever returns 1 tool no matter prompt

Hi,

We’ve been playing with o3-mini the last few days. In the playground and in our API we can never get o3-mini to produce more than one tool-call response no matter the functions, tool_choice or reasoning. Is it intentional that o3-mini can only return one tool per API call

Thanks for all the help!

2 Likes

Same problem. Makes it hard to migrate from 4o-mini

2 Likes

o3-mini tool use is a known issue and is being worked on, thanks for taking the time to flag.

3 Likes

Yep, even with a “strict”:“false” function, the AI model just is unable to comply no matter how clear the understanding, because:

This is a tool wrapper that low-iq models have a bad history with…


An alternate strategy is to have a function with an array of the API objects you need, of undetermined length:

This is the function to implement this.

{
  "name": "roll_dice",
  "description": "Rolls true random dice, supporting multiple dice rolls, returning totals of one trial",
  "strict": true,
  "parameters": {
    "type": "object",
    "required": [
      "trials"
    ],
    "properties": {
      "trials": {
        "type": "array",
        "description": "Array of trials for rolling dice",
        "items": {
          "type": "object",
          "properties": {
            "rolls": {
              "type": "number",
              "description": "The number of dice to roll"
            },
            "sides": {
              "type": "number",
              "description": "The number of sides on each die"
            }
          },
          "required": [
            "rolls",
            "sides"
          ],
          "additionalProperties": false
        }
      }
    },
    "additionalProperties": false
  }
}
1 Like

Out of curiosity, how did you find this out Foxalabs?

I have made a similar post with other problems it is having with tool calls (I cant post links even to this same forum :skull:):

1 Like