Feature request: guarantee a specific tool call without blocking parallel calls

This is a good question @manouchehri , and you’re not missing anything.

Based on the current tool calling behavior, there isn’t a built-in way to say “must include tool X, but may call others too” in a single turn. Right now the controls behave exactly the way you described. There’s currently no native “must_include + allow_additional” mode. Your workaround (require → check → follow-up force call if missing) is basically the cleanest deterministic pattern today.

You can also push some of this into prompt-level instruction (“Always call update_plan before any other tool on first turn”), but that won’t give you hard guarantees the way tool_choice does.

I’ll flag this as a legitimate capability gap. The “required inclusion without exclusivity” concept is a pretty reasonable extension of the current API semantics. Appreciate the detailed write-up, that made this easy to reason about.

3 Likes