Function calling api behaviour

In rare cases, the API sends an intermediate response along with a function call. However, regardless of this, feedback is always provided based on the outcome of the function call, and this is eventually followed by a final response.

This brings up the question: What is the value of an intermediate response when a final response will be provided anyway? On what grounds does the API decide to issue this optional intermediate response?

Also at times, the API makes function calls that, from a human perspective, seem unnecessary because their need is hard to deduce from the conversation history. Are there efforts to improve this behavior, or any ‘best practices’ to prevent such situations?

a lot of context and explaining seems to solve the issue.