Our handling of tool call argument extraction is scattered across the different backends. We should consider unifying these argument checks and validating them against a pydantic schema for input type.
Some backends (like Ollama) appear to validate the argument types internally, but we should confirm this.
For OpenAI based tool requests, we should ensure that the json parsing works when complex types are involved.