Tool choice for multiple tools

Is there a way to provide different tool_choice options for different tools?

let’s say I have 3 Tools that has been defined, Tool A, Tool B, Tool C. Tool A is a file_search tool, Tool B and Tool C is a function calling tool. I want Tool A and Tool B to always be required, but Tool C is auto, depending on the context and the decision will be made by the assistant.

From the API docs, it seems by default Tool C should be on auto. But it seems that there is only a way to require the assistant to use ONE tool. I want the assistant to always use tool A AND B OR C, not A OR B OR C.

Below is my tool_choice definition. This resulted in the assistant using either Tool A OR Tool B OR Tool C. Any way to make it Tool A AND Tool B OR Tool C?

const tool_choice = {

type: "allowed_tools",

mode: "required",

tools: \[

    {

        type: "file_search"

    },

    {

        type: "function",

        name: "Tool B"

    }

\]

};

2 Likes