Till now, I was building with the idea that tools exposed to agents should be smaller and constrained. This meant the number of available tools on a client project reached 38.
But this was causing issues with incorrect tools being selected by the agent. For example, the agent sometimes chose “create ticket” when it needed to update an existing ticket. The tools had similar descriptions and separate, narrow purposes.
So I thought I should improve the metadata of the tools, so that the agent can select the right one. But this too didn’t lead to any meaningful improvement.
I researched more and found Anthropic’s article on building tools. I then combined some tools into one tool that could create or update a ticket. This brought the tool count down to 24. Not a big reduction, but the accuracy improved enough to notice even without tests.