The agent conversation on Reddit and in GitHub issues has moved. A year ago it was "what can agents do". Now it is "why does mine call the same tool nineteen times", and "what happens to my threads on August 26".
Here are five problems that keep coming up, each with the specific fact I had to dig out to answer it. Every one of them has a number attached, because "it depends" is not an answer you can ship.
1. Your agent loops because tool_choice sticks
The advice everyone gives is to set max_iterations. That caps your bill. It does not fix the bug.
When you set tool_choice to required or to a named function, that setting persists across model calls. Your framework runs the tool, sends the result back, and the same forced setting rides along. The model is told again that it must call a tool. It obeys. That is the loop.







