Best strategy for required vs optional parameters in calling functions?

We have a few functions that require very few inputs, but can accept much more optionally.
I’ve noticed that GPT 3.5 and 4 (even the newest from 1106) will sometimes still ask a follow-up question asking for a non-required parameter before calling the function.
We’ve already mentioned in the system prompt to only ask for required parameters, with additional language saying “Not to ask for optional parameters”…sometimes this works, but not all the time.

What is the point of a Open API spec if it doesn’t really follow it?

In the past I got around this by using list fields for the optional function parameters. I found it’s easier for the model to return an empty list as the argument when the parameter isn’t needed. I admit it’s not a perfect solution and may not be well-suited for all cases, but it worked for me.