OpenRouter has published a technical comparison of how six agent frameworks handle the incompatible tool-calling formats used by OpenAI, Anthropic and Google. Although providers describe tools with names, instructions and parameter schemas, each wraps that information and returns calls differently.
LangChain and LangGraph translate a shared definition into each provider’s format. CrewAI passes the task to the client beneath it. The OpenAI Agents SDK, Claude Agent SDK and Google ADK center their respective providers, while Microsoft Agent Framework delegates translation to its configured model connector. These choices determine where developers must debug malformed arguments or failed model swaps.
OpenRouter’s own API accepts an OpenAI-style tools array and returns a standard tool_calls response for supported models. It translates provider formats at the routing layer, so changing a model can be as small as replacing the model identifier. Its Auto Exacto routing also considers throughput, benchmark data and observed tool-call error rates when ranking providers.
Normalization removes wire-format work, but it does not guarantee that every model uses a tool correctly. Open-weight models without native tool training may depend on prompt templates and output parsers, which fail differently from provider-native calls. Developers still need argument validation, permission controls and tests for each model used in production.