Tools & structured output
Function calling and JSON Schema output across every dialect in the catalogue, with the router only picking models that can serve them.
Send the OpenAI tools array and response_format as you already do. Stav translates them for each Inference Provider, and when you route, only models that support them are considered.
Function calling
import json
tools = [{
"type": "function",
"function": {
"name": "get_invoice",
"description": "Look up an invoice by number.",
"parameters": {
"type": "object",
"properties": {"invoice_no": {"type": "string"}},