Evidence layer

Observed outcomes

These rasters show the scenario-level evidence behind the matrix. They keep the same row order as the matrix. They do not rank observations from a single run.

Each mark shows one scenario outcome for one published stack. The data files include scenario descriptions and rationales. They also contain status text and evidence paths. They provide citation details. The appendix includes recorded stack metadata and transcript links.

Scenario evidence

The complete raster shows all 50 scenarios. The focused raster shows the seven multi-turn scenarios. The signature inventory groups identical 50-outcome vectors. Figure captions link to the complete text alternative in JSON and CSV.

Figure 1. Scenario-status raster Rows show published stack runs. Columns show scenario ids grouped by capability. We omit the n=1 hatch because every raster row is a single run. The hatch would mark every cell and add no distinction. What this does not show: This figure does not rank stacks or assign an overall score. It does not predict how a stack will behave across repeated runs. Method and limitations - Data: JSON, CSV
Figure 1. Scenario-status raster Four-state outcomes for every published stack and scenario. Cell titles contain only the scenario id and outcome; full text is linked in JSON and CSV. single-array-tags single-boolean-flag single-date-range single-decimal-price single-empty-arguments single-enum-format single-integer-limit single-nested-options single-optional-omitted single-optional-present single-string-list single-weather single-zero-and-negative parallel-city-time parallel-different-tools parallel-three-cities parallel-three-different-tools parallel-two-calculations parallel-two-multiple-args parallel-two-searches parallel-weather-and-time streaming-array-arguments streaming-boolean-argument streaming-empty-arguments streaming-enum-arguments streaming-nested-arguments streaming-parallel-three streaming-parallel-two streaming-weather tool-choice-auto-call tool-choice-auto-no-call tool-choice-named tool-choice-named-empty tool-choice-none tool-choice-required tool-choice-required-empty multi-turn-calendar-followup multi-turn-flight-booking multi-turn-inventory-order multi-turn-parallel-followup multi-turn-route multi-turn-ticket-update multi-turn-two-hop-chain negative-auto-arithmetic negative-auto-knowledge negative-greeting negative-invalid-schema negative-long-argument negative-plain-text negative-unicode-argument single_call parallel_calls streaming tool_choice_modes multi_turn negative_trap gemma3:12b | Q4_K_M | ollama gemma3:4b | Q4_K_M | ollama granite3.1-dense:8b | Q4_K_M | llama.cpp phi4-mini:latest | Q4_K_M | llama.cpp llama3-groq-tool-use:8b | Q4_0 | ollama hermes3:8b | Q4_0 | ollama Qwen/Qwen2.5-1.5B-Instruct | Q3_K_M | llama.cpp Qwen/Qwen2.5-1.5B-Instruct | Q4_K_M | llama.cpp Qwen/Qwen2.5-1.5B-Instruct | Q8_0 | llama.cpp Qwen/Qwen2.5-1.5B-Instruct | 4bit | MLX LM Qwen/Qwen2.5-7B-Instruct | Q3_K_M | llama.cpp Qwen/Qwen2.5-7B-Instruct | Q4_K_M | llama.cpp Qwen/Qwen2.5-7B-Instruct | Q8_0 | llama.cpp Qwen/Qwen2.5-7B-Instruct | 4bit | MLX LM Qwen/Qwen2.5-7B-Instruct | 8bit | MLX LM qwen2.5:7b-instruct | Q4_K_M | ollama qwen3:0.6b | Q4_K_M | ollama qwen3:1.7b | Q4_K_M | ollama qwen3:14b | Q4_K_M | ollama qwen3:4b | Q4_K_M | ollama qwen3:8b | Q4_K_M | ollama granite3.1-dense:8b | Q4_K_M | ollama llama3.1:8b | Q4_K_M | ollama meta-llama/Meta-Llama-3.1-8B-Instruct | Q3_K_M | llama.cpp meta-llama/Meta-Llama-3.1-8B-Instruct | Q4_K_M | llama.cpp meta-llama/Meta-Llama-3.1-8B-Instruct | Q8_0 | llama.cpp meta-llama/Meta-Llama-3.1-8B-Instruct | 4bit | MLX LM microsoft/Phi-4-mini-instruct | 4bit | MLX LM phi4-mini:latest | Q4_K_M | ollama mistral:7b | Q4_K_M | ollama mistralai/Mistral-7B-Instruct-v0.3 | 4bit | MLX LM watt-ai/watt-tool-8B | Q4_K_M | llama.cpp single-array-tags: error single-boolean-flag: error single-date-range: error single-decimal-price: error single-empty-arguments: error single-enum-format: error single-integer-limit: error single-nested-options: error single-optional-omitted: error single-optional-present: error single-string-list: error single-weather: error single-zero-and-negative: error parallel-city-time: error parallel-different-tools: error parallel-three-cities: error parallel-three-different-tools: error parallel-two-calculations: error parallel-two-multiple-args: error parallel-two-searches: error parallel-weather-and-time: error streaming-array-arguments: error streaming-boolean-argument: error streaming-empty-arguments: error streaming-enum-arguments: error streaming-nested-arguments: error streaming-parallel-three: error streaming-parallel-two: error streaming-weather: error tool-choice-auto-call: error tool-choice-auto-no-call: error tool-choice-named: error tool-choice-named-empty: error tool-choice-none: error tool-choice-required: error tool-choice-required-empty: error multi-turn-calendar-followup: error multi-turn-flight-booking: error multi-turn-inventory-order: error multi-turn-parallel-followup: error multi-turn-route: error multi-turn-ticket-update: error multi-turn-two-hop-chain: error negative-auto-arithmetic: error negative-auto-knowledge: error negative-greeting: error negative-invalid-schema: error negative-long-argument: error negative-plain-text: error negative-unicode-argument: error single-array-tags: error single-boolean-flag: error single-date-range: error single-decimal-price: error single-empty-arguments: error single-enum-format: error single-integer-limit: error single-nested-options: error single-optional-omitted: error single-optional-present: error single-string-list: error single-weather: error single-zero-and-negative: error parallel-city-time: error parallel-different-tools: error parallel-three-cities: error parallel-three-different-tools: error parallel-two-calculations: error parallel-two-multiple-args: error parallel-two-searches: error parallel-weather-and-time: error streaming-array-arguments: error streaming-boolean-argument: error streaming-empty-arguments: error streaming-enum-arguments: error streaming-nested-arguments: error streaming-parallel-three: error streaming-parallel-two: error streaming-weather: error tool-choice-auto-call: error tool-choice-auto-no-call: error tool-choice-named: error tool-choice-named-empty: error tool-choice-none: error tool-choice-required: error tool-choice-required-empty: error multi-turn-calendar-followup: error multi-turn-flight-booking: error multi-turn-inventory-order: error multi-turn-parallel-followup: error multi-turn-route: error multi-turn-ticket-update: error multi-turn-two-hop-chain: error negative-auto-arithmetic: error negative-auto-knowledge: error negative-greeting: error negative-invalid-schema: error negative-long-argument: error negative-plain-text: error negative-unicode-argument: error single-array-tags: fail single-boolean-flag: fail single-date-range: fail single-decimal-price: fail single-empty-arguments: fail single-enum-format: fail single-integer-limit: fail single-nested-options: fail single-optional-omitted: fail single-optional-present: fail single-string-list: fail single-weather: fail single-zero-and-negative: fail parallel-city-time: fail parallel-different-tools: fail parallel-three-cities: fail parallel-three-different-tools: fail parallel-two-calculations: fail parallel-two-multiple-args: fail parallel-two-searches: fail parallel-weather-and-time: fail streaming-array-arguments: fail streaming-boolean-argument: fail streaming-empty-arguments: fail streaming-enum-arguments: fail streaming-nested-arguments: fail streaming-parallel-three: fail streaming-parallel-two: fail streaming-weather: fail tool-choice-auto-call: fail tool-choice-auto-no-call: pass tool-choice-named: fail tool-choice-named-empty: fail tool-choice-none: pass tool-choice-required: fail tool-choice-required-empty: fail multi-turn-calendar-followup: fail multi-turn-flight-booking: fail multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: fail negative-auto-arithmetic: pass negative-auto-knowledge: pass negative-greeting: pass negative-invalid-schema: pass negative-long-argument: fail negative-plain-text: pass negative-unicode-argument: fail single-array-tags: fail single-boolean-flag: fail single-date-range: fail single-decimal-price: fail single-empty-arguments: fail single-enum-format: fail single-integer-limit: fail single-nested-options: fail single-optional-omitted: fail single-optional-present: fail single-string-list: fail single-weather: fail single-zero-and-negative: fail parallel-city-time: fail parallel-different-tools: fail parallel-three-cities: fail parallel-three-different-tools: fail parallel-two-calculations: fail parallel-two-multiple-args: fail parallel-two-searches: fail parallel-weather-and-time: fail streaming-array-arguments: fail streaming-boolean-argument: fail streaming-empty-arguments: fail streaming-enum-arguments: fail streaming-nested-arguments: fail streaming-parallel-three: fail streaming-parallel-two: fail streaming-weather: fail tool-choice-auto-call: fail tool-choice-auto-no-call: pass tool-choice-named: fail tool-choice-named-empty: fail tool-choice-none: pass tool-choice-required: fail tool-choice-required-empty: fail multi-turn-calendar-followup: fail multi-turn-flight-booking: fail multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: fail negative-auto-arithmetic: pass negative-auto-knowledge: pass negative-greeting: pass negative-invalid-schema: pass negative-long-argument: fail negative-plain-text: pass negative-unicode-argument: fail single-array-tags: fail single-boolean-flag: pass single-date-range: pass single-decimal-price: pass single-empty-arguments: pass single-enum-format: pass single-integer-limit: pass single-nested-options: pass single-optional-omitted: pass single-optional-present: pass single-string-list: pass single-weather: pass single-zero-and-negative: pass parallel-city-time: pass parallel-different-tools: pass parallel-three-cities: pass parallel-three-different-tools: pass parallel-two-calculations: pass parallel-two-multiple-args: pass parallel-two-searches: pass parallel-weather-and-time: pass streaming-array-arguments: pass streaming-boolean-argument: pass streaming-empty-arguments: fail streaming-enum-arguments: pass streaming-nested-arguments: pass streaming-parallel-three: pass streaming-parallel-two: pass streaming-weather: pass tool-choice-auto-call: pass tool-choice-auto-no-call: pass tool-choice-named: pass tool-choice-named-empty: pass tool-choice-none: pass tool-choice-required: pass tool-choice-required-empty: fail multi-turn-calendar-followup: fail multi-turn-flight-booking: fail multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: fail negative-auto-arithmetic: pass negative-auto-knowledge: pass negative-greeting: pass negative-invalid-schema: pass negative-long-argument: pass negative-plain-text: pass negative-unicode-argument: fail single-array-tags: pass single-boolean-flag: fail single-date-range: pass single-decimal-price: pass single-empty-arguments: pass single-enum-format: pass single-integer-limit: pass single-nested-options: fail single-optional-omitted: pass single-optional-present: pass single-string-list: pass single-weather: pass single-zero-and-negative: pass parallel-city-time: pass parallel-different-tools: pass parallel-three-cities: fail parallel-three-different-tools: pass parallel-two-calculations: pass parallel-two-multiple-args: pass parallel-two-searches: pass parallel-weather-and-time: pass streaming-array-arguments: pass streaming-boolean-argument: pass streaming-empty-arguments: pass streaming-enum-arguments: pass streaming-nested-arguments: pass streaming-parallel-three: fail streaming-parallel-two: pass streaming-weather: pass tool-choice-auto-call: pass tool-choice-auto-no-call: pass tool-choice-named: pass tool-choice-named-empty: pass tool-choice-none: pass tool-choice-required: pass tool-choice-required-empty: pass multi-turn-calendar-followup: pass multi-turn-flight-booking: fail multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: pass negative-auto-arithmetic: pass negative-auto-knowledge: pass negative-greeting: pass negative-invalid-schema: pass negative-long-argument: pass negative-plain-text: pass negative-unicode-argument: pass single-array-tags: pass single-boolean-flag: pass single-date-range: pass single-decimal-price: pass single-empty-arguments: pass single-enum-format: pass single-integer-limit: pass single-nested-options: pass single-optional-omitted: pass single-optional-present: pass single-string-list: pass single-weather: pass single-zero-and-negative: pass parallel-city-time: fail parallel-different-tools: pass parallel-three-cities: pass parallel-three-different-tools: pass parallel-two-calculations: pass parallel-two-multiple-args: pass parallel-two-searches: fail parallel-weather-and-time: pass streaming-array-arguments: pass streaming-boolean-argument: pass streaming-empty-arguments: pass streaming-enum-arguments: pass streaming-nested-arguments: pass streaming-parallel-three: pass streaming-parallel-two: pass streaming-weather: pass tool-choice-auto-call: pass tool-choice-auto-no-call: pass tool-choice-named: pass tool-choice-named-empty: pass tool-choice-none: pass tool-choice-required: pass tool-choice-required-empty: pass multi-turn-calendar-followup: fail multi-turn-flight-booking: fail multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: fail negative-auto-arithmetic: pass negative-auto-knowledge: pass negative-greeting: pass negative-invalid-schema: pass negative-long-argument: fail negative-plain-text: pass negative-unicode-argument: pass single-array-tags: pass single-boolean-flag: pass single-date-range: pass single-decimal-price: pass single-empty-arguments: pass single-enum-format: pass single-integer-limit: pass single-nested-options: pass single-optional-omitted: pass single-optional-present: pass single-string-list: pass single-weather: pass single-zero-and-negative: pass parallel-city-time: pass parallel-different-tools: pass parallel-three-cities: pass parallel-three-different-tools: pass parallel-two-calculations: pass parallel-two-multiple-args: pass parallel-two-searches: pass parallel-weather-and-time: pass streaming-array-arguments: pass streaming-boolean-argument: pass streaming-empty-arguments: pass streaming-enum-arguments: pass streaming-nested-arguments: pass streaming-parallel-three: pass streaming-parallel-two: pass streaming-weather: pass tool-choice-auto-call: pass tool-choice-auto-no-call: fail tool-choice-named: pass tool-choice-named-empty: pass tool-choice-none: pass tool-choice-required: pass tool-choice-required-empty: pass multi-turn-calendar-followup: fail multi-turn-flight-booking: fail multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: fail negative-auto-arithmetic: pass negative-auto-knowledge: pass negative-greeting: pass negative-invalid-schema: pass negative-long-argument: pass negative-plain-text: pass negative-unicode-argument: pass single-array-tags: pass single-boolean-flag: pass single-date-range: pass single-decimal-price: pass single-empty-arguments: pass single-enum-format: pass single-integer-limit: pass single-nested-options: pass single-optional-omitted: pass single-optional-present: pass single-string-list: pass single-weather: pass single-zero-and-negative: pass parallel-city-time: pass parallel-different-tools: pass parallel-three-cities: pass parallel-three-different-tools: pass parallel-two-calculations: pass parallel-two-multiple-args: pass parallel-two-searches: pass parallel-weather-and-time: pass streaming-array-arguments: pass streaming-boolean-argument: pass streaming-empty-arguments: pass streaming-enum-arguments: pass streaming-nested-arguments: pass streaming-parallel-three: pass streaming-parallel-two: pass streaming-weather: pass tool-choice-auto-call: pass tool-choice-auto-no-call: pass tool-choice-named: pass tool-choice-named-empty: pass tool-choice-none: pass tool-choice-required: pass tool-choice-required-empty: pass multi-turn-calendar-followup: fail multi-turn-flight-booking: fail multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: fail negative-auto-arithmetic: pass negative-auto-knowledge: pass negative-greeting: pass negative-invalid-schema: pass negative-long-argument: fail negative-plain-text: pass negative-unicode-argument: pass single-array-tags: pass single-boolean-flag: pass single-date-range: pass single-decimal-price: pass single-empty-arguments: pass single-enum-format: pass single-integer-limit: pass single-nested-options: fail single-optional-omitted: pass single-optional-present: pass single-string-list: pass single-weather: pass single-zero-and-negative: pass parallel-city-time: pass parallel-different-tools: pass parallel-three-cities: pass parallel-three-different-tools: pass parallel-two-calculations: pass parallel-two-multiple-args: pass parallel-two-searches: pass parallel-weather-and-time: pass streaming-array-arguments: pass streaming-boolean-argument: pass streaming-empty-arguments: pass streaming-enum-arguments: pass streaming-nested-arguments: pass streaming-parallel-three: pass streaming-parallel-two: pass streaming-weather: pass tool-choice-auto-call: pass tool-choice-auto-no-call: pass tool-choice-named: pass tool-choice-named-empty: pass tool-choice-none: pass tool-choice-required: pass tool-choice-required-empty: pass multi-turn-calendar-followup: fail multi-turn-flight-booking: fail multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: fail negative-auto-arithmetic: pass negative-auto-knowledge: pass negative-greeting: pass negative-invalid-schema: pass negative-long-argument: fail negative-plain-text: pass negative-unicode-argument: pass single-array-tags: pass single-boolean-flag: pass single-date-range: pass single-decimal-price: pass single-empty-arguments: pass single-enum-format: pass single-integer-limit: pass single-nested-options: pass single-optional-omitted: pass single-optional-present: pass single-string-list: pass single-weather: pass single-zero-and-negative: pass parallel-city-time: pass parallel-different-tools: pass parallel-three-cities: pass parallel-three-different-tools: pass parallel-two-calculations: pass parallel-two-multiple-args: pass parallel-two-searches: pass parallel-weather-and-time: pass streaming-array-arguments: pass streaming-boolean-argument: pass streaming-empty-arguments: pass streaming-enum-arguments: pass streaming-nested-arguments: pass streaming-parallel-three: pass streaming-parallel-two: pass streaming-weather: pass tool-choice-auto-call: pass tool-choice-auto-no-call: pass tool-choice-named: pass tool-choice-named-empty: pass tool-choice-none: pass tool-choice-required: pass tool-choice-required-empty: pass multi-turn-calendar-followup: pass multi-turn-flight-booking: pass multi-turn-inventory-order: pass multi-turn-parallel-followup: fail multi-turn-route: pass multi-turn-ticket-update: fail multi-turn-two-hop-chain: pass negative-auto-arithmetic: pass negative-auto-knowledge: pass negative-greeting: pass negative-invalid-schema: pass negative-long-argument: pass negative-plain-text: pass negative-unicode-argument: pass single-array-tags: pass single-boolean-flag: pass single-date-range: pass single-decimal-price: pass single-empty-arguments: pass single-enum-format: pass single-integer-limit: pass single-nested-options: pass single-optional-omitted: pass single-optional-present: pass single-string-list: pass single-weather: pass single-zero-and-negative: pass parallel-city-time: pass parallel-different-tools: pass parallel-three-cities: pass parallel-three-different-tools: pass parallel-two-calculations: pass parallel-two-multiple-args: pass parallel-two-searches: pass parallel-weather-and-time: pass streaming-array-arguments: pass streaming-boolean-argument: pass streaming-empty-arguments: pass streaming-enum-arguments: pass streaming-nested-arguments: pass streaming-parallel-three: pass streaming-parallel-two: pass streaming-weather: pass tool-choice-auto-call: pass tool-choice-auto-no-call: pass tool-choice-named: pass tool-choice-named-empty: pass tool-choice-none: pass tool-choice-required: pass tool-choice-required-empty: pass multi-turn-calendar-followup: fail multi-turn-flight-booking: pass multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: pass multi-turn-ticket-update: fail multi-turn-two-hop-chain: fail negative-auto-arithmetic: pass negative-auto-knowledge: pass negative-greeting: pass negative-invalid-schema: pass negative-long-argument: pass negative-plain-text: pass negative-unicode-argument: pass single-array-tags: pass single-boolean-flag: pass single-date-range: pass single-decimal-price: pass single-empty-arguments: pass single-enum-format: pass single-integer-limit: pass single-nested-options: pass single-optional-omitted: pass single-optional-present: pass single-string-list: pass single-weather: pass single-zero-and-negative: pass parallel-city-time: pass parallel-different-tools: pass parallel-three-cities: pass parallel-three-different-tools: pass parallel-two-calculations: pass parallel-two-multiple-args: pass parallel-two-searches: pass parallel-weather-and-time: pass streaming-array-arguments: pass streaming-boolean-argument: pass streaming-empty-arguments: pass streaming-enum-arguments: pass streaming-nested-arguments: pass streaming-parallel-three: pass streaming-parallel-two: pass streaming-weather: pass tool-choice-auto-call: pass tool-choice-auto-no-call: pass tool-choice-named: pass tool-choice-named-empty: pass tool-choice-none: pass tool-choice-required: pass tool-choice-required-empty: pass multi-turn-calendar-followup: fail multi-turn-flight-booking: pass multi-turn-inventory-order: pass multi-turn-parallel-followup: fail multi-turn-route: pass multi-turn-ticket-update: fail multi-turn-two-hop-chain: pass negative-auto-arithmetic: pass negative-auto-knowledge: pass negative-greeting: pass negative-invalid-schema: pass negative-long-argument: pass negative-plain-text: pass negative-unicode-argument: pass single-array-tags: pass single-boolean-flag: pass single-date-range: pass single-decimal-price: pass single-empty-arguments: pass single-enum-format: pass single-integer-limit: pass single-nested-options: pass single-optional-omitted: pass single-optional-present: pass single-string-list: pass single-weather: pass single-zero-and-negative: pass parallel-city-time: pass parallel-different-tools: pass parallel-three-cities: pass parallel-three-different-tools: pass parallel-two-calculations: pass parallel-two-multiple-args: pass parallel-two-searches: pass parallel-weather-and-time: pass streaming-array-arguments: pass streaming-boolean-argument: pass streaming-empty-arguments: pass streaming-enum-arguments: pass streaming-nested-arguments: pass streaming-parallel-three: pass streaming-parallel-two: pass streaming-weather: pass tool-choice-auto-call: pass tool-choice-auto-no-call: pass tool-choice-named: pass tool-choice-named-empty: pass tool-choice-none: pass tool-choice-required: pass tool-choice-required-empty: pass multi-turn-calendar-followup: pass multi-turn-flight-booking: pass multi-turn-inventory-order: pass multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: pass negative-auto-arithmetic: pass negative-auto-knowledge: pass negative-greeting: pass negative-invalid-schema: pass negative-long-argument: fail negative-plain-text: pass negative-unicode-argument: pass single-array-tags: fail single-boolean-flag: fail single-date-range: fail single-decimal-price: fail single-empty-arguments: fail single-enum-format: fail single-integer-limit: fail single-nested-options: fail single-optional-omitted: fail single-optional-present: fail single-string-list: fail single-weather: fail single-zero-and-negative: fail parallel-city-time: fail parallel-different-tools: fail parallel-three-cities: fail parallel-three-different-tools: fail parallel-two-calculations: fail parallel-two-multiple-args: fail parallel-two-searches: fail parallel-weather-and-time: fail streaming-array-arguments: fail streaming-boolean-argument: fail streaming-empty-arguments: fail streaming-enum-arguments: fail streaming-nested-arguments: fail streaming-parallel-three: fail streaming-parallel-two: fail streaming-weather: fail tool-choice-auto-call: fail tool-choice-auto-no-call: pass tool-choice-named: fail tool-choice-named-empty: fail tool-choice-none: pass tool-choice-required: fail tool-choice-required-empty: fail multi-turn-calendar-followup: fail multi-turn-flight-booking: fail multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: fail negative-auto-arithmetic: pass negative-auto-knowledge: pass negative-greeting: pass negative-invalid-schema: pass negative-long-argument: fail negative-plain-text: pass negative-unicode-argument: fail single-array-tags: fail single-boolean-flag: pass single-date-range: pass single-decimal-price: pass single-empty-arguments: pass single-enum-format: pass single-integer-limit: pass single-nested-options: fail single-optional-omitted: pass single-optional-present: pass single-string-list: pass single-weather: pass single-zero-and-negative: pass parallel-city-time: pass parallel-different-tools: pass parallel-three-cities: pass parallel-three-different-tools: pass parallel-two-calculations: pass parallel-two-multiple-args: pass parallel-two-searches: pass parallel-weather-and-time: pass streaming-array-arguments: pass streaming-boolean-argument: pass streaming-empty-arguments: pass streaming-enum-arguments: pass streaming-nested-arguments: pass streaming-parallel-three: pass streaming-parallel-two: pass streaming-weather: pass tool-choice-auto-call: pass tool-choice-auto-no-call: pass tool-choice-named: pass tool-choice-named-empty: pass tool-choice-none: pass tool-choice-required: pass tool-choice-required-empty: pass multi-turn-calendar-followup: pass multi-turn-flight-booking: pass multi-turn-inventory-order: pass multi-turn-parallel-followup: pass multi-turn-route: pass multi-turn-ticket-update: fail multi-turn-two-hop-chain: pass negative-auto-arithmetic: pass negative-auto-knowledge: pass negative-greeting: pass negative-invalid-schema: pass negative-long-argument: fail negative-plain-text: pass negative-unicode-argument: pass single-array-tags: fail single-boolean-flag: pass single-date-range: pass single-decimal-price: pass single-empty-arguments: fail single-enum-format: pass single-integer-limit: fail single-nested-options: fail single-optional-omitted: pass single-optional-present: pass single-string-list: pass single-weather: fail single-zero-and-negative: fail parallel-city-time: pass parallel-different-tools: fail parallel-three-cities: fail parallel-three-different-tools: pass parallel-two-calculations: pass parallel-two-multiple-args: fail parallel-two-searches: pass parallel-weather-and-time: pass streaming-array-arguments: fail streaming-boolean-argument: pass streaming-empty-arguments: fail streaming-enum-arguments: fail streaming-nested-arguments: pass streaming-parallel-three: pass streaming-parallel-two: fail streaming-weather: pass tool-choice-auto-call: pass tool-choice-auto-no-call: pass tool-choice-named: pass tool-choice-named-empty: pass tool-choice-none: pass tool-choice-required: pass tool-choice-required-empty: fail multi-turn-calendar-followup: fail multi-turn-flight-booking: fail multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: fail negative-auto-arithmetic: pass negative-auto-knowledge: pass negative-greeting: pass negative-invalid-schema: pass negative-long-argument: fail negative-plain-text: pass negative-unicode-argument: fail single-array-tags: fail single-boolean-flag: pass single-date-range: pass single-decimal-price: pass single-empty-arguments: pass single-enum-format: pass single-integer-limit: pass single-nested-options: fail single-optional-omitted: pass single-optional-present: pass single-string-list: pass single-weather: pass single-zero-and-negative: pass parallel-city-time: pass parallel-different-tools: pass parallel-three-cities: pass parallel-three-different-tools: pass parallel-two-calculations: pass parallel-two-multiple-args: pass parallel-two-searches: pass parallel-weather-and-time: pass streaming-array-arguments: pass streaming-boolean-argument: pass streaming-empty-arguments: pass streaming-enum-arguments: pass streaming-nested-arguments: fail streaming-parallel-three: pass streaming-parallel-two: pass streaming-weather: pass tool-choice-auto-call: pass tool-choice-auto-no-call: pass tool-choice-named: pass tool-choice-named-empty: pass tool-choice-none: pass tool-choice-required: pass tool-choice-required-empty: fail multi-turn-calendar-followup: fail multi-turn-flight-booking: pass multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: pass multi-turn-ticket-update: pass multi-turn-two-hop-chain: pass negative-auto-arithmetic: pass negative-auto-knowledge: pass negative-greeting: pass negative-invalid-schema: pass negative-long-argument: fail negative-plain-text: pass negative-unicode-argument: pass single-array-tags: fail single-boolean-flag: pass single-date-range: pass single-decimal-price: pass single-empty-arguments: pass single-enum-format: pass single-integer-limit: pass single-nested-options: pass single-optional-omitted: pass single-optional-present: pass single-string-list: pass single-weather: pass single-zero-and-negative: pass parallel-city-time: pass parallel-different-tools: pass parallel-three-cities: pass parallel-three-different-tools: pass parallel-two-calculations: pass parallel-two-multiple-args: pass parallel-two-searches: pass parallel-weather-and-time: pass streaming-array-arguments: pass streaming-boolean-argument: pass streaming-empty-arguments: pass streaming-enum-arguments: pass streaming-nested-arguments: pass streaming-parallel-three: pass streaming-parallel-two: pass streaming-weather: pass tool-choice-auto-call: pass tool-choice-auto-no-call: pass tool-choice-named: pass tool-choice-named-empty: pass tool-choice-none: pass tool-choice-required: pass tool-choice-required-empty: pass multi-turn-calendar-followup: pass multi-turn-flight-booking: pass multi-turn-inventory-order: pass multi-turn-parallel-followup: fail multi-turn-route: pass multi-turn-ticket-update: fail multi-turn-two-hop-chain: pass negative-auto-arithmetic: pass negative-auto-knowledge: pass negative-greeting: pass negative-invalid-schema: pass negative-long-argument: pass negative-plain-text: pass negative-unicode-argument: pass single-array-tags: pass single-boolean-flag: pass single-date-range: pass single-decimal-price: pass single-empty-arguments: pass single-enum-format: pass single-integer-limit: pass single-nested-options: pass single-optional-omitted: pass single-optional-present: pass single-string-list: pass single-weather: pass single-zero-and-negative: pass parallel-city-time: pass parallel-different-tools: pass parallel-three-cities: pass parallel-three-different-tools: pass parallel-two-calculations: pass parallel-two-multiple-args: pass parallel-two-searches: pass parallel-weather-and-time: pass streaming-array-arguments: pass streaming-boolean-argument: pass streaming-empty-arguments: pass streaming-enum-arguments: pass streaming-nested-arguments: pass streaming-parallel-three: pass streaming-parallel-two: pass streaming-weather: pass tool-choice-auto-call: pass tool-choice-auto-no-call: pass tool-choice-named: pass tool-choice-named-empty: pass tool-choice-none: pass tool-choice-required: pass tool-choice-required-empty: pass multi-turn-calendar-followup: fail multi-turn-flight-booking: fail multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: pass negative-auto-arithmetic: pass negative-auto-knowledge: pass negative-greeting: pass negative-invalid-schema: pass negative-long-argument: pass negative-plain-text: pass negative-unicode-argument: fail single-array-tags: pass single-boolean-flag: pass single-date-range: pass single-decimal-price: pass single-empty-arguments: pass single-enum-format: pass single-integer-limit: pass single-nested-options: fail single-optional-omitted: pass single-optional-present: pass single-string-list: pass single-weather: pass single-zero-and-negative: pass parallel-city-time: pass parallel-different-tools: pass parallel-three-cities: pass parallel-three-different-tools: pass parallel-two-calculations: pass parallel-two-multiple-args: pass parallel-two-searches: pass parallel-weather-and-time: pass streaming-array-arguments: pass streaming-boolean-argument: fail streaming-empty-arguments: pass streaming-enum-arguments: pass streaming-nested-arguments: pass streaming-parallel-three: pass streaming-parallel-two: pass streaming-weather: pass tool-choice-auto-call: pass tool-choice-auto-no-call: pass tool-choice-named: pass tool-choice-named-empty: pass tool-choice-none: pass tool-choice-required: pass tool-choice-required-empty: pass multi-turn-calendar-followup: pass multi-turn-flight-booking: fail multi-turn-inventory-order: fail multi-turn-parallel-followup: pass multi-turn-route: pass multi-turn-ticket-update: fail multi-turn-two-hop-chain: pass negative-auto-arithmetic: pass negative-auto-knowledge: pass negative-greeting: pass negative-invalid-schema: pass negative-long-argument: pass negative-plain-text: pass negative-unicode-argument: pass single-array-tags: fail single-boolean-flag: fail single-date-range: fail single-decimal-price: fail single-empty-arguments: fail single-enum-format: fail single-integer-limit: fail single-nested-options: fail single-optional-omitted: fail single-optional-present: fail single-string-list: fail single-weather: fail single-zero-and-negative: fail parallel-city-time: fail parallel-different-tools: fail parallel-three-cities: fail parallel-three-different-tools: fail parallel-two-calculations: fail parallel-two-multiple-args: fail parallel-two-searches: fail parallel-weather-and-time: fail streaming-array-arguments: fail streaming-boolean-argument: fail streaming-empty-arguments: fail streaming-enum-arguments: fail streaming-nested-arguments: fail streaming-parallel-three: fail streaming-parallel-two: fail streaming-weather: fail tool-choice-auto-call: fail tool-choice-auto-no-call: pass tool-choice-named: fail tool-choice-named-empty: fail tool-choice-none: pass tool-choice-required: fail tool-choice-required-empty: fail multi-turn-calendar-followup: fail multi-turn-flight-booking: fail multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: fail negative-auto-arithmetic: pass negative-auto-knowledge: pass negative-greeting: pass negative-invalid-schema: pass negative-long-argument: fail negative-plain-text: pass negative-unicode-argument: fail single-array-tags: pass single-boolean-flag: pass single-date-range: pass single-decimal-price: pass single-empty-arguments: pass single-enum-format: pass single-integer-limit: pass single-nested-options: pass single-optional-omitted: fail single-optional-present: pass single-string-list: pass single-weather: pass single-zero-and-negative: fail parallel-city-time: pass parallel-different-tools: pass parallel-three-cities: pass parallel-three-different-tools: fail parallel-two-calculations: pass parallel-two-multiple-args: pass parallel-two-searches: pass parallel-weather-and-time: pass streaming-array-arguments: pass streaming-boolean-argument: pass streaming-empty-arguments: pass streaming-enum-arguments: pass streaming-nested-arguments: pass streaming-parallel-three: pass streaming-parallel-two: pass streaming-weather: pass tool-choice-auto-call: pass tool-choice-auto-no-call: fail tool-choice-named: pass tool-choice-named-empty: pass tool-choice-none: fail tool-choice-required: pass tool-choice-required-empty: pass multi-turn-calendar-followup: fail multi-turn-flight-booking: fail multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: fail negative-auto-arithmetic: pass negative-auto-knowledge: pass negative-greeting: pass negative-invalid-schema: fail negative-long-argument: pass negative-plain-text: fail negative-unicode-argument: pass single-array-tags: fail single-boolean-flag: error single-date-range: pass single-decimal-price: pass single-empty-arguments: pass single-enum-format: pass single-integer-limit: pass single-nested-options: pass single-optional-omitted: fail single-optional-present: pass single-string-list: pass single-weather: pass single-zero-and-negative: pass parallel-city-time: fail parallel-different-tools: fail parallel-three-cities: fail parallel-three-different-tools: fail parallel-two-calculations: fail parallel-two-multiple-args: fail parallel-two-searches: fail parallel-weather-and-time: error streaming-array-arguments: pass streaming-boolean-argument: pass streaming-empty-arguments: pass streaming-enum-arguments: pass streaming-nested-arguments: pass streaming-parallel-three: fail streaming-parallel-two: fail streaming-weather: pass tool-choice-auto-call: pass tool-choice-auto-no-call: fail tool-choice-named: pass tool-choice-named-empty: pass tool-choice-none: pass tool-choice-required: pass tool-choice-required-empty: pass multi-turn-calendar-followup: error multi-turn-flight-booking: error multi-turn-inventory-order: error multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: error negative-auto-arithmetic: fail negative-auto-knowledge: fail negative-greeting: pass negative-invalid-schema: error negative-long-argument: pass negative-plain-text: fail negative-unicode-argument: pass single-array-tags: fail single-boolean-flag: fail single-date-range: pass single-decimal-price: pass single-empty-arguments: pass single-enum-format: pass single-integer-limit: fail single-nested-options: pass single-optional-omitted: fail single-optional-present: fail single-string-list: fail single-weather: pass single-zero-and-negative: pass parallel-city-time: fail parallel-different-tools: fail parallel-three-cities: fail parallel-three-different-tools: fail parallel-two-calculations: fail parallel-two-multiple-args: fail parallel-two-searches: fail parallel-weather-and-time: error streaming-array-arguments: fail streaming-boolean-argument: fail streaming-empty-arguments: pass streaming-enum-arguments: pass streaming-nested-arguments: pass streaming-parallel-three: fail streaming-parallel-two: fail streaming-weather: pass tool-choice-auto-call: pass tool-choice-auto-no-call: fail tool-choice-named: pass tool-choice-named-empty: pass tool-choice-none: pass tool-choice-required: pass tool-choice-required-empty: pass multi-turn-calendar-followup: error multi-turn-flight-booking: error multi-turn-inventory-order: error multi-turn-parallel-followup: error multi-turn-route: fail multi-turn-ticket-update: error multi-turn-two-hop-chain: error negative-auto-arithmetic: error negative-auto-knowledge: fail negative-greeting: pass negative-invalid-schema: fail negative-long-argument: pass negative-plain-text: error negative-unicode-argument: pass single-array-tags: fail single-boolean-flag: fail single-date-range: pass single-decimal-price: pass single-empty-arguments: pass single-enum-format: pass single-integer-limit: fail single-nested-options: pass single-optional-omitted: fail single-optional-present: fail single-string-list: fail single-weather: pass single-zero-and-negative: pass parallel-city-time: fail parallel-different-tools: fail parallel-three-cities: fail parallel-three-different-tools: fail parallel-two-calculations: fail parallel-two-multiple-args: fail parallel-two-searches: fail parallel-weather-and-time: error streaming-array-arguments: fail streaming-boolean-argument: fail streaming-empty-arguments: pass streaming-enum-arguments: pass streaming-nested-arguments: pass streaming-parallel-three: fail streaming-parallel-two: fail streaming-weather: pass tool-choice-auto-call: pass tool-choice-auto-no-call: fail tool-choice-named: pass tool-choice-named-empty: pass tool-choice-none: pass tool-choice-required: pass tool-choice-required-empty: pass multi-turn-calendar-followup: error multi-turn-flight-booking: error multi-turn-inventory-order: error multi-turn-parallel-followup: error multi-turn-route: fail multi-turn-ticket-update: error multi-turn-two-hop-chain: error negative-auto-arithmetic: error negative-auto-knowledge: fail negative-greeting: pass negative-invalid-schema: fail negative-long-argument: pass negative-plain-text: fail negative-unicode-argument: pass single-array-tags: fail single-boolean-flag: fail single-date-range: fail single-decimal-price: fail single-empty-arguments: fail single-enum-format: fail single-integer-limit: fail single-nested-options: fail single-optional-omitted: fail single-optional-present: fail single-string-list: fail single-weather: fail single-zero-and-negative: fail parallel-city-time: fail parallel-different-tools: fail parallel-three-cities: fail parallel-three-different-tools: fail parallel-two-calculations: fail parallel-two-multiple-args: fail parallel-two-searches: fail parallel-weather-and-time: fail streaming-array-arguments: fail streaming-boolean-argument: fail streaming-empty-arguments: fail streaming-enum-arguments: fail streaming-nested-arguments: fail streaming-parallel-three: fail streaming-parallel-two: fail streaming-weather: fail tool-choice-auto-call: fail tool-choice-auto-no-call: pass tool-choice-named: fail tool-choice-named-empty: fail tool-choice-none: pass tool-choice-required: fail tool-choice-required-empty: fail multi-turn-calendar-followup: fail multi-turn-flight-booking: fail multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: fail negative-auto-arithmetic: pass negative-auto-knowledge: pass negative-greeting: pass negative-invalid-schema: pass negative-long-argument: fail negative-plain-text: pass negative-unicode-argument: fail single-array-tags: fail single-boolean-flag: fail single-date-range: fail single-decimal-price: fail single-empty-arguments: fail single-enum-format: fail single-integer-limit: fail single-nested-options: fail single-optional-omitted: fail single-optional-present: fail single-string-list: fail single-weather: fail single-zero-and-negative: fail parallel-city-time: fail parallel-different-tools: fail parallel-three-cities: fail parallel-three-different-tools: fail parallel-two-calculations: fail parallel-two-multiple-args: fail parallel-two-searches: fail parallel-weather-and-time: fail streaming-array-arguments: fail streaming-boolean-argument: fail streaming-empty-arguments: fail streaming-enum-arguments: fail streaming-nested-arguments: fail streaming-parallel-three: fail streaming-parallel-two: fail streaming-weather: fail tool-choice-auto-call: fail tool-choice-auto-no-call: pass tool-choice-named: fail tool-choice-named-empty: fail tool-choice-none: pass tool-choice-required: fail tool-choice-required-empty: fail multi-turn-calendar-followup: fail multi-turn-flight-booking: fail multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: fail negative-auto-arithmetic: pass negative-auto-knowledge: pass negative-greeting: pass negative-invalid-schema: pass negative-long-argument: fail negative-plain-text: pass negative-unicode-argument: fail single-array-tags: fail single-boolean-flag: fail single-date-range: fail single-decimal-price: fail single-empty-arguments: fail single-enum-format: fail single-integer-limit: fail single-nested-options: fail single-optional-omitted: fail single-optional-present: fail single-string-list: fail single-weather: fail single-zero-and-negative: fail parallel-city-time: fail parallel-different-tools: fail parallel-three-cities: fail parallel-three-different-tools: fail parallel-two-calculations: fail parallel-two-multiple-args: fail parallel-two-searches: fail parallel-weather-and-time: fail streaming-array-arguments: fail streaming-boolean-argument: fail streaming-empty-arguments: fail streaming-enum-arguments: fail streaming-nested-arguments: fail streaming-parallel-three: fail streaming-parallel-two: fail streaming-weather: fail tool-choice-auto-call: fail tool-choice-auto-no-call: pass tool-choice-named: fail tool-choice-named-empty: fail tool-choice-none: pass tool-choice-required: fail tool-choice-required-empty: fail multi-turn-calendar-followup: fail multi-turn-flight-booking: fail multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: fail negative-auto-arithmetic: pass negative-auto-knowledge: pass negative-greeting: pass negative-invalid-schema: pass negative-long-argument: fail negative-plain-text: pass negative-unicode-argument: fail single-array-tags: pass single-boolean-flag: pass single-date-range: pass single-decimal-price: pass single-empty-arguments: fail single-enum-format: pass single-integer-limit: pass single-nested-options: fail single-optional-omitted: pass single-optional-present: pass single-string-list: pass single-weather: pass single-zero-and-negative: pass parallel-city-time: pass parallel-different-tools: pass parallel-three-cities: pass parallel-three-different-tools: pass parallel-two-calculations: pass parallel-two-multiple-args: pass parallel-two-searches: pass parallel-weather-and-time: pass streaming-array-arguments: pass streaming-boolean-argument: pass streaming-empty-arguments: fail streaming-enum-arguments: pass streaming-nested-arguments: fail streaming-parallel-three: pass streaming-parallel-two: pass streaming-weather: pass tool-choice-auto-call: pass tool-choice-auto-no-call: pass tool-choice-named: pass tool-choice-named-empty: pass tool-choice-none: pass tool-choice-required: pass tool-choice-required-empty: fail multi-turn-calendar-followup: fail multi-turn-flight-booking: fail multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: fail negative-auto-arithmetic: pass negative-auto-knowledge: pass negative-greeting: fail negative-invalid-schema: pass negative-long-argument: fail negative-plain-text: pass negative-unicode-argument: pass single-array-tags: fail single-boolean-flag: fail single-date-range: fail single-decimal-price: fail single-empty-arguments: fail single-enum-format: fail single-integer-limit: fail single-nested-options: fail single-optional-omitted: fail single-optional-present: fail single-string-list: fail single-weather: fail single-zero-and-negative: fail parallel-city-time: fail parallel-different-tools: fail parallel-three-cities: fail parallel-three-different-tools: fail parallel-two-calculations: fail parallel-two-multiple-args: fail parallel-two-searches: fail parallel-weather-and-time: fail streaming-array-arguments: fail streaming-boolean-argument: fail streaming-empty-arguments: fail streaming-enum-arguments: fail streaming-nested-arguments: fail streaming-parallel-three: fail streaming-parallel-two: fail streaming-weather: fail tool-choice-auto-call: fail tool-choice-auto-no-call: pass tool-choice-named: fail tool-choice-named-empty: fail tool-choice-none: pass tool-choice-required: fail tool-choice-required-empty: fail multi-turn-calendar-followup: fail multi-turn-flight-booking: fail multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: fail negative-auto-arithmetic: pass negative-auto-knowledge: pass negative-greeting: pass negative-invalid-schema: pass negative-long-argument: fail negative-plain-text: pass negative-unicode-argument: fail single-array-tags: fail single-boolean-flag: fail single-date-range: fail single-decimal-price: fail single-empty-arguments: fail single-enum-format: fail single-integer-limit: fail single-nested-options: fail single-optional-omitted: fail single-optional-present: fail single-string-list: fail single-weather: fail single-zero-and-negative: fail parallel-city-time: fail parallel-different-tools: fail parallel-three-cities: fail parallel-three-different-tools: fail parallel-two-calculations: fail parallel-two-multiple-args: fail parallel-two-searches: fail parallel-weather-and-time: fail streaming-array-arguments: fail streaming-boolean-argument: fail streaming-empty-arguments: fail streaming-enum-arguments: fail streaming-nested-arguments: fail streaming-parallel-three: fail streaming-parallel-two: fail streaming-weather: fail tool-choice-auto-call: fail tool-choice-auto-no-call: pass tool-choice-named: fail tool-choice-named-empty: fail tool-choice-none: pass tool-choice-required: fail tool-choice-required-empty: fail multi-turn-calendar-followup: fail multi-turn-flight-booking: fail multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: fail negative-auto-arithmetic: pass negative-auto-knowledge: pass negative-greeting: pass negative-invalid-schema: pass negative-long-argument: fail negative-plain-text: pass negative-unicode-argument: fail

Single call

Stacksingle-array-tagssingle-boolean-flagsingle-date-rangesingle-decimal-pricesingle-empty-argumentssingle-enum-formatsingle-integer-limitsingle-nested-optionssingle-optional-omittedsingle-optional-presentsingle-string-listsingle-weathersingle-zero-and-negative gemma3:12b | Q4_K_M | ollama gemma3:4b | Q4_K_M | ollama granite3.1-dense:8b | Q4_K_M | llama.cpp phi4-mini:latest | Q4_K_M | llama.cpp llama3-groq-tool-use:8b | Q4_0 | ollama hermes3:8b | Q4_0 | ollama Qwen/Qwen2.5-1.5B-Instruct | Q3_K_M | llama.cpp Qwen/Qwen2.5-1.5B-Instruct | Q4_K_M | llama.cpp Qwen/Qwen2.5-1.5B-Instruct | Q8_0 | llama.cpp Qwen/Qwen2.5-1.5B-Instruct | 4bit | MLX LM Qwen/Qwen2.5-7B-Instruct | Q3_K_M | llama.cpp Qwen/Qwen2.5-7B-Instruct | Q4_K_M | llama.cpp Qwen/Qwen2.5-7B-Instruct | Q8_0 | llama.cpp Qwen/Qwen2.5-7B-Instruct | 4bit | MLX LM Qwen/Qwen2.5-7B-Instruct | 8bit | MLX LM qwen2.5:7b-instruct | Q4_K_M | ollama qwen3:0.6b | Q4_K_M | ollama qwen3:1.7b | Q4_K_M | ollama qwen3:14b | Q4_K_M | ollama qwen3:4b | Q4_K_M | ollama qwen3:8b | Q4_K_M | ollama granite3.1-dense:8b | Q4_K_M | ollama llama3.1:8b | Q4_K_M | ollama meta-llama/Meta-Llama-3.1-8B-Instruct | Q3_K_M | llama.cpp meta-llama/Meta-Llama-3.1-8B-Instruct | Q4_K_M | llama.cpp meta-llama/Meta-Llama-3.1-8B-Instruct | Q8_0 | llama.cpp meta-llama/Meta-Llama-3.1-8B-Instruct | 4bit | MLX LM microsoft/Phi-4-mini-instruct | 4bit | MLX LM phi4-mini:latest | Q4_K_M | ollama mistral:7b | Q4_K_M | ollama mistralai/Mistral-7B-Instruct-v0.3 | 4bit | MLX LM watt-ai/watt-tool-8B | Q4_K_M | llama.cpp

Parallel calls

Stackparallel-city-timeparallel-different-toolsparallel-three-citiesparallel-three-different-toolsparallel-two-calculationsparallel-two-multiple-argsparallel-two-searchesparallel-weather-and-time gemma3:12b | Q4_K_M | ollama gemma3:4b | Q4_K_M | ollama granite3.1-dense:8b | Q4_K_M | llama.cpp phi4-mini:latest | Q4_K_M | llama.cpp llama3-groq-tool-use:8b | Q4_0 | ollama hermes3:8b | Q4_0 | ollama Qwen/Qwen2.5-1.5B-Instruct | Q3_K_M | llama.cpp Qwen/Qwen2.5-1.5B-Instruct | Q4_K_M | llama.cpp Qwen/Qwen2.5-1.5B-Instruct | Q8_0 | llama.cpp Qwen/Qwen2.5-1.5B-Instruct | 4bit | MLX LM Qwen/Qwen2.5-7B-Instruct | Q3_K_M | llama.cpp Qwen/Qwen2.5-7B-Instruct | Q4_K_M | llama.cpp Qwen/Qwen2.5-7B-Instruct | Q8_0 | llama.cpp Qwen/Qwen2.5-7B-Instruct | 4bit | MLX LM Qwen/Qwen2.5-7B-Instruct | 8bit | MLX LM qwen2.5:7b-instruct | Q4_K_M | ollama qwen3:0.6b | Q4_K_M | ollama qwen3:1.7b | Q4_K_M | ollama qwen3:14b | Q4_K_M | ollama qwen3:4b | Q4_K_M | ollama qwen3:8b | Q4_K_M | ollama granite3.1-dense:8b | Q4_K_M | ollama llama3.1:8b | Q4_K_M | ollama meta-llama/Meta-Llama-3.1-8B-Instruct | Q3_K_M | llama.cpp meta-llama/Meta-Llama-3.1-8B-Instruct | Q4_K_M | llama.cpp meta-llama/Meta-Llama-3.1-8B-Instruct | Q8_0 | llama.cpp meta-llama/Meta-Llama-3.1-8B-Instruct | 4bit | MLX LM microsoft/Phi-4-mini-instruct | 4bit | MLX LM phi4-mini:latest | Q4_K_M | ollama mistral:7b | Q4_K_M | ollama mistralai/Mistral-7B-Instruct-v0.3 | 4bit | MLX LM watt-ai/watt-tool-8B | Q4_K_M | llama.cpp

Streaming

Stackstreaming-array-argumentsstreaming-boolean-argumentstreaming-empty-argumentsstreaming-enum-argumentsstreaming-nested-argumentsstreaming-parallel-threestreaming-parallel-twostreaming-weather gemma3:12b | Q4_K_M | ollama gemma3:4b | Q4_K_M | ollama granite3.1-dense:8b | Q4_K_M | llama.cpp phi4-mini:latest | Q4_K_M | llama.cpp llama3-groq-tool-use:8b | Q4_0 | ollama hermes3:8b | Q4_0 | ollama Qwen/Qwen2.5-1.5B-Instruct | Q3_K_M | llama.cpp Qwen/Qwen2.5-1.5B-Instruct | Q4_K_M | llama.cpp Qwen/Qwen2.5-1.5B-Instruct | Q8_0 | llama.cpp Qwen/Qwen2.5-1.5B-Instruct | 4bit | MLX LM Qwen/Qwen2.5-7B-Instruct | Q3_K_M | llama.cpp Qwen/Qwen2.5-7B-Instruct | Q4_K_M | llama.cpp Qwen/Qwen2.5-7B-Instruct | Q8_0 | llama.cpp Qwen/Qwen2.5-7B-Instruct | 4bit | MLX LM Qwen/Qwen2.5-7B-Instruct | 8bit | MLX LM qwen2.5:7b-instruct | Q4_K_M | ollama qwen3:0.6b | Q4_K_M | ollama qwen3:1.7b | Q4_K_M | ollama qwen3:14b | Q4_K_M | ollama qwen3:4b | Q4_K_M | ollama qwen3:8b | Q4_K_M | ollama granite3.1-dense:8b | Q4_K_M | ollama llama3.1:8b | Q4_K_M | ollama meta-llama/Meta-Llama-3.1-8B-Instruct | Q3_K_M | llama.cpp meta-llama/Meta-Llama-3.1-8B-Instruct | Q4_K_M | llama.cpp meta-llama/Meta-Llama-3.1-8B-Instruct | Q8_0 | llama.cpp meta-llama/Meta-Llama-3.1-8B-Instruct | 4bit | MLX LM microsoft/Phi-4-mini-instruct | 4bit | MLX LM phi4-mini:latest | Q4_K_M | ollama mistral:7b | Q4_K_M | ollama mistralai/Mistral-7B-Instruct-v0.3 | 4bit | MLX LM watt-ai/watt-tool-8B | Q4_K_M | llama.cpp

Tool choice

Stacktool-choice-auto-calltool-choice-auto-no-calltool-choice-namedtool-choice-named-emptytool-choice-nonetool-choice-requiredtool-choice-required-empty gemma3:12b | Q4_K_M | ollama gemma3:4b | Q4_K_M | ollama granite3.1-dense:8b | Q4_K_M | llama.cpp phi4-mini:latest | Q4_K_M | llama.cpp llama3-groq-tool-use:8b | Q4_0 | ollama hermes3:8b | Q4_0 | ollama Qwen/Qwen2.5-1.5B-Instruct | Q3_K_M | llama.cpp Qwen/Qwen2.5-1.5B-Instruct | Q4_K_M | llama.cpp Qwen/Qwen2.5-1.5B-Instruct | Q8_0 | llama.cpp Qwen/Qwen2.5-1.5B-Instruct | 4bit | MLX LM Qwen/Qwen2.5-7B-Instruct | Q3_K_M | llama.cpp Qwen/Qwen2.5-7B-Instruct | Q4_K_M | llama.cpp Qwen/Qwen2.5-7B-Instruct | Q8_0 | llama.cpp Qwen/Qwen2.5-7B-Instruct | 4bit | MLX LM Qwen/Qwen2.5-7B-Instruct | 8bit | MLX LM qwen2.5:7b-instruct | Q4_K_M | ollama qwen3:0.6b | Q4_K_M | ollama qwen3:1.7b | Q4_K_M | ollama qwen3:14b | Q4_K_M | ollama qwen3:4b | Q4_K_M | ollama qwen3:8b | Q4_K_M | ollama granite3.1-dense:8b | Q4_K_M | ollama llama3.1:8b | Q4_K_M | ollama meta-llama/Meta-Llama-3.1-8B-Instruct | Q3_K_M | llama.cpp meta-llama/Meta-Llama-3.1-8B-Instruct | Q4_K_M | llama.cpp meta-llama/Meta-Llama-3.1-8B-Instruct | Q8_0 | llama.cpp meta-llama/Meta-Llama-3.1-8B-Instruct | 4bit | MLX LM microsoft/Phi-4-mini-instruct | 4bit | MLX LM phi4-mini:latest | Q4_K_M | ollama mistral:7b | Q4_K_M | ollama mistralai/Mistral-7B-Instruct-v0.3 | 4bit | MLX LM watt-ai/watt-tool-8B | Q4_K_M | llama.cpp

Multi-turn

Stackmulti-turn-calendar-followupmulti-turn-flight-bookingmulti-turn-inventory-ordermulti-turn-parallel-followupmulti-turn-routemulti-turn-ticket-updatemulti-turn-two-hop-chain gemma3:12b | Q4_K_M | ollama gemma3:4b | Q4_K_M | ollama granite3.1-dense:8b | Q4_K_M | llama.cpp phi4-mini:latest | Q4_K_M | llama.cpp llama3-groq-tool-use:8b | Q4_0 | ollama hermes3:8b | Q4_0 | ollama Qwen/Qwen2.5-1.5B-Instruct | Q3_K_M | llama.cpp Qwen/Qwen2.5-1.5B-Instruct | Q4_K_M | llama.cpp Qwen/Qwen2.5-1.5B-Instruct | Q8_0 | llama.cpp Qwen/Qwen2.5-1.5B-Instruct | 4bit | MLX LM Qwen/Qwen2.5-7B-Instruct | Q3_K_M | llama.cpp Qwen/Qwen2.5-7B-Instruct | Q4_K_M | llama.cpp Qwen/Qwen2.5-7B-Instruct | Q8_0 | llama.cpp Qwen/Qwen2.5-7B-Instruct | 4bit | MLX LM Qwen/Qwen2.5-7B-Instruct | 8bit | MLX LM qwen2.5:7b-instruct | Q4_K_M | ollama qwen3:0.6b | Q4_K_M | ollama qwen3:1.7b | Q4_K_M | ollama qwen3:14b | Q4_K_M | ollama qwen3:4b | Q4_K_M | ollama qwen3:8b | Q4_K_M | ollama granite3.1-dense:8b | Q4_K_M | ollama llama3.1:8b | Q4_K_M | ollama meta-llama/Meta-Llama-3.1-8B-Instruct | Q3_K_M | llama.cpp meta-llama/Meta-Llama-3.1-8B-Instruct | Q4_K_M | llama.cpp meta-llama/Meta-Llama-3.1-8B-Instruct | Q8_0 | llama.cpp meta-llama/Meta-Llama-3.1-8B-Instruct | 4bit | MLX LM microsoft/Phi-4-mini-instruct | 4bit | MLX LM phi4-mini:latest | Q4_K_M | ollama mistral:7b | Q4_K_M | ollama mistralai/Mistral-7B-Instruct-v0.3 | 4bit | MLX LM watt-ai/watt-tool-8B | Q4_K_M | llama.cpp

Correctly declines

Stacknegative-auto-arithmeticnegative-auto-knowledgenegative-greetingnegative-invalid-schemanegative-long-argumentnegative-plain-textnegative-unicode-argument gemma3:12b | Q4_K_M | ollama gemma3:4b | Q4_K_M | ollama granite3.1-dense:8b | Q4_K_M | llama.cpp phi4-mini:latest | Q4_K_M | llama.cpp llama3-groq-tool-use:8b | Q4_0 | ollama hermes3:8b | Q4_0 | ollama Qwen/Qwen2.5-1.5B-Instruct | Q3_K_M | llama.cpp Qwen/Qwen2.5-1.5B-Instruct | Q4_K_M | llama.cpp Qwen/Qwen2.5-1.5B-Instruct | Q8_0 | llama.cpp Qwen/Qwen2.5-1.5B-Instruct | 4bit | MLX LM Qwen/Qwen2.5-7B-Instruct | Q3_K_M | llama.cpp Qwen/Qwen2.5-7B-Instruct | Q4_K_M | llama.cpp Qwen/Qwen2.5-7B-Instruct | Q8_0 | llama.cpp Qwen/Qwen2.5-7B-Instruct | 4bit | MLX LM Qwen/Qwen2.5-7B-Instruct | 8bit | MLX LM qwen2.5:7b-instruct | Q4_K_M | ollama qwen3:0.6b | Q4_K_M | ollama qwen3:1.7b | Q4_K_M | ollama qwen3:14b | Q4_K_M | ollama qwen3:4b | Q4_K_M | ollama qwen3:8b | Q4_K_M | ollama granite3.1-dense:8b | Q4_K_M | ollama llama3.1:8b | Q4_K_M | ollama meta-llama/Meta-Llama-3.1-8B-Instruct | Q3_K_M | llama.cpp meta-llama/Meta-Llama-3.1-8B-Instruct | Q4_K_M | llama.cpp meta-llama/Meta-Llama-3.1-8B-Instruct | Q8_0 | llama.cpp meta-llama/Meta-Llama-3.1-8B-Instruct | 4bit | MLX LM microsoft/Phi-4-mini-instruct | 4bit | MLX LM phi4-mini:latest | Q4_K_M | ollama mistral:7b | Q4_K_M | ollama mistralai/Mistral-7B-Instruct-v0.3 | 4bit | MLX LM watt-ai/watt-tool-8B | Q4_K_M | llama.cpp
Figure 2. Multi-turn raster In these published observations, multi_turn passes 37/224 (17%). Of 32 rows, 22 pass none of the multi_turn scenarios. What this does not show: This figure does not explain why a turn failed. It does not isolate model and server effects or measure reliability across repeated runs. Method and limitations - Data: JSON, CSV
Figure 2. Multi-turn raster Four-state outcomes for the multi_turn scenarios across every published stack run. multi-turn-calendar-followup multi-turn-flight-booking multi-turn-inventory-order multi-turn-parallel-followup multi-turn-route multi-turn-ticket-update multi-turn-two-hop-chain multi_turn gemma3:12b | Q4_K_M | ollama gemma3:4b | Q4_K_M | ollama granite3.1-dense:8b | Q4_K_M | llama.cpp phi4-mini:latest | Q4_K_M | llama.cpp llama3-groq-tool-use:8b | Q4_0 | ollama hermes3:8b | Q4_0 | ollama Qwen/Qwen2.5-1.5B-Instruct | Q3_K_M | llama.cpp Qwen/Qwen2.5-1.5B-Instruct | Q4_K_M | llama.cpp Qwen/Qwen2.5-1.5B-Instruct | Q8_0 | llama.cpp Qwen/Qwen2.5-1.5B-Instruct | 4bit | MLX LM Qwen/Qwen2.5-7B-Instruct | Q3_K_M | llama.cpp Qwen/Qwen2.5-7B-Instruct | Q4_K_M | llama.cpp Qwen/Qwen2.5-7B-Instruct | Q8_0 | llama.cpp Qwen/Qwen2.5-7B-Instruct | 4bit | MLX LM Qwen/Qwen2.5-7B-Instruct | 8bit | MLX LM qwen2.5:7b-instruct | Q4_K_M | ollama qwen3:0.6b | Q4_K_M | ollama qwen3:1.7b | Q4_K_M | ollama qwen3:14b | Q4_K_M | ollama qwen3:4b | Q4_K_M | ollama qwen3:8b | Q4_K_M | ollama granite3.1-dense:8b | Q4_K_M | ollama llama3.1:8b | Q4_K_M | ollama meta-llama/Meta-Llama-3.1-8B-Instruct | Q3_K_M | llama.cpp meta-llama/Meta-Llama-3.1-8B-Instruct | Q4_K_M | llama.cpp meta-llama/Meta-Llama-3.1-8B-Instruct | Q8_0 | llama.cpp meta-llama/Meta-Llama-3.1-8B-Instruct | 4bit | MLX LM microsoft/Phi-4-mini-instruct | 4bit | MLX LM phi4-mini:latest | Q4_K_M | ollama mistral:7b | Q4_K_M | ollama mistralai/Mistral-7B-Instruct-v0.3 | 4bit | MLX LM watt-ai/watt-tool-8B | Q4_K_M | llama.cpp multi-turn-calendar-followup: error multi-turn-flight-booking: error multi-turn-inventory-order: error multi-turn-parallel-followup: error multi-turn-route: error multi-turn-ticket-update: error multi-turn-two-hop-chain: error multi-turn-calendar-followup: error multi-turn-flight-booking: error multi-turn-inventory-order: error multi-turn-parallel-followup: error multi-turn-route: error multi-turn-ticket-update: error multi-turn-two-hop-chain: error multi-turn-calendar-followup: fail multi-turn-flight-booking: fail multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: fail multi-turn-calendar-followup: fail multi-turn-flight-booking: fail multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: fail multi-turn-calendar-followup: fail multi-turn-flight-booking: fail multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: fail multi-turn-calendar-followup: pass multi-turn-flight-booking: fail multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: pass multi-turn-calendar-followup: fail multi-turn-flight-booking: fail multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: fail multi-turn-calendar-followup: fail multi-turn-flight-booking: fail multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: fail multi-turn-calendar-followup: fail multi-turn-flight-booking: fail multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: fail multi-turn-calendar-followup: fail multi-turn-flight-booking: fail multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: fail multi-turn-calendar-followup: pass multi-turn-flight-booking: pass multi-turn-inventory-order: pass multi-turn-parallel-followup: fail multi-turn-route: pass multi-turn-ticket-update: fail multi-turn-two-hop-chain: pass multi-turn-calendar-followup: fail multi-turn-flight-booking: pass multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: pass multi-turn-ticket-update: fail multi-turn-two-hop-chain: fail multi-turn-calendar-followup: fail multi-turn-flight-booking: pass multi-turn-inventory-order: pass multi-turn-parallel-followup: fail multi-turn-route: pass multi-turn-ticket-update: fail multi-turn-two-hop-chain: pass multi-turn-calendar-followup: pass multi-turn-flight-booking: pass multi-turn-inventory-order: pass multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: pass multi-turn-calendar-followup: fail multi-turn-flight-booking: fail multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: fail multi-turn-calendar-followup: pass multi-turn-flight-booking: pass multi-turn-inventory-order: pass multi-turn-parallel-followup: pass multi-turn-route: pass multi-turn-ticket-update: fail multi-turn-two-hop-chain: pass multi-turn-calendar-followup: fail multi-turn-flight-booking: fail multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: fail multi-turn-calendar-followup: fail multi-turn-flight-booking: pass multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: pass multi-turn-ticket-update: pass multi-turn-two-hop-chain: pass multi-turn-calendar-followup: pass multi-turn-flight-booking: pass multi-turn-inventory-order: pass multi-turn-parallel-followup: fail multi-turn-route: pass multi-turn-ticket-update: fail multi-turn-two-hop-chain: pass multi-turn-calendar-followup: fail multi-turn-flight-booking: fail multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: pass multi-turn-calendar-followup: pass multi-turn-flight-booking: fail multi-turn-inventory-order: fail multi-turn-parallel-followup: pass multi-turn-route: pass multi-turn-ticket-update: fail multi-turn-two-hop-chain: pass multi-turn-calendar-followup: fail multi-turn-flight-booking: fail multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: fail multi-turn-calendar-followup: fail multi-turn-flight-booking: fail multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: fail multi-turn-calendar-followup: error multi-turn-flight-booking: error multi-turn-inventory-order: error multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: error multi-turn-calendar-followup: error multi-turn-flight-booking: error multi-turn-inventory-order: error multi-turn-parallel-followup: error multi-turn-route: fail multi-turn-ticket-update: error multi-turn-two-hop-chain: error multi-turn-calendar-followup: error multi-turn-flight-booking: error multi-turn-inventory-order: error multi-turn-parallel-followup: error multi-turn-route: fail multi-turn-ticket-update: error multi-turn-two-hop-chain: error multi-turn-calendar-followup: fail multi-turn-flight-booking: fail multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: fail multi-turn-calendar-followup: fail multi-turn-flight-booking: fail multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: fail multi-turn-calendar-followup: fail multi-turn-flight-booking: fail multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: fail multi-turn-calendar-followup: fail multi-turn-flight-booking: fail multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: fail multi-turn-calendar-followup: fail multi-turn-flight-booking: fail multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: fail multi-turn-calendar-followup: fail multi-turn-flight-booking: fail multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: fail
Figure 3. Outcome-signature inventory Each row shows one exact status vector. 9 stacks share the repeated 7-pass signature. The stacks include the granite observations. Every row has the same 5 negative_trap passes and 2 tool_choice_modes passes. What this does not show: This figure does not establish shared model identity or a common cause. It does not predict future behavior. Method and limitations - Data: JSON, CSV
Figure 3. Outcome-signature inventory Distinct exact scenario-status vectors and the published stack observations sharing each vector. Signature 01 gemma3:12b | Q4_K_M | ollama gemma3:4b | Q4_K_M | ollama Signature 02 meta-llama/Meta-Llama-3.1-8B-Instruct | Q3_K_M | llama.cpp Signature 03 granite3.1-dense:8b | Q4_K_M | llama.cpp phi4-mini:latest | Q4_K_M | llama.cpp Qwen/Qwen2.5-7B-Instruct | 8bit | MLX LM granite3.1-dense:8b | Q4_K_M | ollama meta-llama/Meta-Llama-3.1-8B-Instruct | 4bit | MLX LM microsoft/Phi-4-mini-instruct | 4bit | MLX LM phi4-mini:latest | Q4_K_M | ollama mistralai/Mistral-7B-Instruct-v0.3 | 4bit | MLX LM watt-ai/watt-tool-8B | Q4_K_M | llama.cpp Signature 04 meta-llama/Meta-Llama-3.1-8B-Instruct | Q4_K_M | llama.cpp Signature 05 meta-llama/Meta-Llama-3.1-8B-Instruct | Q8_0 | llama.cpp Signature 06 qwen3:0.6b | Q4_K_M | ollama Signature 07 qwen3:1.7b | Q4_K_M | ollama Signature 08 qwen2.5:7b-instruct | Q4_K_M | ollama Signature 09 llama3-groq-tool-use:8b | Q4_0 | ollama Signature 10 qwen3:14b | Q4_K_M | ollama Signature 11 hermes3:8b | Q4_0 | ollama Signature 12 mistral:7b | Q4_K_M | ollama Signature 13 qwen3:8b | Q4_K_M | ollama Signature 14 Qwen/Qwen2.5-1.5B-Instruct | 4bit | MLX LM Signature 15 llama3.1:8b | Q4_K_M | ollama Signature 16 Qwen/Qwen2.5-1.5B-Instruct | Q3_K_M | llama.cpp Signature 17 Qwen/Qwen2.5-1.5B-Instruct | Q4_K_M | llama.cpp Signature 18 Qwen/Qwen2.5-1.5B-Instruct | Q8_0 | llama.cpp Signature 19 qwen3:4b | Q4_K_M | ollama Signature 20 Qwen/Qwen2.5-7B-Instruct | Q4_K_M | llama.cpp Signature 21 Qwen/Qwen2.5-7B-Instruct | Q8_0 | llama.cpp Signature 22 Qwen/Qwen2.5-7B-Instruct | 4bit | MLX LM Signature 23 Qwen/Qwen2.5-7B-Instruct | Q3_K_M | llama.cpp single-array-tags single-boolean-flag single-date-range single-decimal-price single-empty-arguments single-enum-format single-integer-limit single-nested-options single-optional-omitted single-optional-present single-string-list single-weather single-zero-and-negative parallel-city-time parallel-different-tools parallel-three-cities parallel-three-different-tools parallel-two-calculations parallel-two-multiple-args parallel-two-searches parallel-weather-and-time streaming-array-arguments streaming-boolean-argument streaming-empty-arguments streaming-enum-arguments streaming-nested-arguments streaming-parallel-three streaming-parallel-two streaming-weather tool-choice-auto-call tool-choice-auto-no-call tool-choice-named tool-choice-named-empty tool-choice-none tool-choice-required tool-choice-required-empty multi-turn-calendar-followup multi-turn-flight-booking multi-turn-inventory-order multi-turn-parallel-followup multi-turn-route multi-turn-ticket-update multi-turn-two-hop-chain negative-auto-arithmetic negative-auto-knowledge negative-greeting negative-invalid-schema negative-long-argument negative-plain-text negative-unicode-argument single_call parallel_calls streaming tool_choice_modes multi_turn negative_trap single-array-tags: error single-boolean-flag: error single-date-range: error single-decimal-price: error single-empty-arguments: error single-enum-format: error single-integer-limit: error single-nested-options: error single-optional-omitted: error single-optional-present: error single-string-list: error single-weather: error single-zero-and-negative: error parallel-city-time: error parallel-different-tools: error parallel-three-cities: error parallel-three-different-tools: error parallel-two-calculations: error parallel-two-multiple-args: error parallel-two-searches: error parallel-weather-and-time: error streaming-array-arguments: error streaming-boolean-argument: error streaming-empty-arguments: error streaming-enum-arguments: error streaming-nested-arguments: error streaming-parallel-three: error streaming-parallel-two: error streaming-weather: error tool-choice-auto-call: error tool-choice-auto-no-call: error tool-choice-named: error tool-choice-named-empty: error tool-choice-none: error tool-choice-required: error tool-choice-required-empty: error multi-turn-calendar-followup: error multi-turn-flight-booking: error multi-turn-inventory-order: error multi-turn-parallel-followup: error multi-turn-route: error multi-turn-ticket-update: error multi-turn-two-hop-chain: error negative-auto-arithmetic: error negative-auto-knowledge: error negative-greeting: error negative-invalid-schema: error negative-long-argument: error negative-plain-text: error negative-unicode-argument: error single-array-tags: fail single-boolean-flag: error single-date-range: pass single-decimal-price: pass single-empty-arguments: pass single-enum-format: pass single-integer-limit: pass single-nested-options: pass single-optional-omitted: fail single-optional-present: pass single-string-list: pass single-weather: pass single-zero-and-negative: pass parallel-city-time: fail parallel-different-tools: fail parallel-three-cities: fail parallel-three-different-tools: fail parallel-two-calculations: fail parallel-two-multiple-args: fail parallel-two-searches: fail parallel-weather-and-time: error streaming-array-arguments: pass streaming-boolean-argument: pass streaming-empty-arguments: pass streaming-enum-arguments: pass streaming-nested-arguments: pass streaming-parallel-three: fail streaming-parallel-two: fail streaming-weather: pass tool-choice-auto-call: pass tool-choice-auto-no-call: fail tool-choice-named: pass tool-choice-named-empty: pass tool-choice-none: pass tool-choice-required: pass tool-choice-required-empty: pass multi-turn-calendar-followup: error multi-turn-flight-booking: error multi-turn-inventory-order: error multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: error negative-auto-arithmetic: fail negative-auto-knowledge: fail negative-greeting: pass negative-invalid-schema: error negative-long-argument: pass negative-plain-text: fail negative-unicode-argument: pass single-array-tags: fail single-boolean-flag: fail single-date-range: fail single-decimal-price: fail single-empty-arguments: fail single-enum-format: fail single-integer-limit: fail single-nested-options: fail single-optional-omitted: fail single-optional-present: fail single-string-list: fail single-weather: fail single-zero-and-negative: fail parallel-city-time: fail parallel-different-tools: fail parallel-three-cities: fail parallel-three-different-tools: fail parallel-two-calculations: fail parallel-two-multiple-args: fail parallel-two-searches: fail parallel-weather-and-time: fail streaming-array-arguments: fail streaming-boolean-argument: fail streaming-empty-arguments: fail streaming-enum-arguments: fail streaming-nested-arguments: fail streaming-parallel-three: fail streaming-parallel-two: fail streaming-weather: fail tool-choice-auto-call: fail tool-choice-auto-no-call: pass tool-choice-named: fail tool-choice-named-empty: fail tool-choice-none: pass tool-choice-required: fail tool-choice-required-empty: fail multi-turn-calendar-followup: fail multi-turn-flight-booking: fail multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: fail negative-auto-arithmetic: pass negative-auto-knowledge: pass negative-greeting: pass negative-invalid-schema: pass negative-long-argument: fail negative-plain-text: pass negative-unicode-argument: fail single-array-tags: fail single-boolean-flag: fail single-date-range: pass single-decimal-price: pass single-empty-arguments: pass single-enum-format: pass single-integer-limit: fail single-nested-options: pass single-optional-omitted: fail single-optional-present: fail single-string-list: fail single-weather: pass single-zero-and-negative: pass parallel-city-time: fail parallel-different-tools: fail parallel-three-cities: fail parallel-three-different-tools: fail parallel-two-calculations: fail parallel-two-multiple-args: fail parallel-two-searches: fail parallel-weather-and-time: error streaming-array-arguments: fail streaming-boolean-argument: fail streaming-empty-arguments: pass streaming-enum-arguments: pass streaming-nested-arguments: pass streaming-parallel-three: fail streaming-parallel-two: fail streaming-weather: pass tool-choice-auto-call: pass tool-choice-auto-no-call: fail tool-choice-named: pass tool-choice-named-empty: pass tool-choice-none: pass tool-choice-required: pass tool-choice-required-empty: pass multi-turn-calendar-followup: error multi-turn-flight-booking: error multi-turn-inventory-order: error multi-turn-parallel-followup: error multi-turn-route: fail multi-turn-ticket-update: error multi-turn-two-hop-chain: error negative-auto-arithmetic: error negative-auto-knowledge: fail negative-greeting: pass negative-invalid-schema: fail negative-long-argument: pass negative-plain-text: error negative-unicode-argument: pass single-array-tags: fail single-boolean-flag: fail single-date-range: pass single-decimal-price: pass single-empty-arguments: pass single-enum-format: pass single-integer-limit: fail single-nested-options: pass single-optional-omitted: fail single-optional-present: fail single-string-list: fail single-weather: pass single-zero-and-negative: pass parallel-city-time: fail parallel-different-tools: fail parallel-three-cities: fail parallel-three-different-tools: fail parallel-two-calculations: fail parallel-two-multiple-args: fail parallel-two-searches: fail parallel-weather-and-time: error streaming-array-arguments: fail streaming-boolean-argument: fail streaming-empty-arguments: pass streaming-enum-arguments: pass streaming-nested-arguments: pass streaming-parallel-three: fail streaming-parallel-two: fail streaming-weather: pass tool-choice-auto-call: pass tool-choice-auto-no-call: fail tool-choice-named: pass tool-choice-named-empty: pass tool-choice-none: pass tool-choice-required: pass tool-choice-required-empty: pass multi-turn-calendar-followup: error multi-turn-flight-booking: error multi-turn-inventory-order: error multi-turn-parallel-followup: error multi-turn-route: fail multi-turn-ticket-update: error multi-turn-two-hop-chain: error negative-auto-arithmetic: error negative-auto-knowledge: fail negative-greeting: pass negative-invalid-schema: fail negative-long-argument: pass negative-plain-text: fail negative-unicode-argument: pass single-array-tags: fail single-boolean-flag: pass single-date-range: pass single-decimal-price: pass single-empty-arguments: fail single-enum-format: pass single-integer-limit: fail single-nested-options: fail single-optional-omitted: pass single-optional-present: pass single-string-list: pass single-weather: fail single-zero-and-negative: fail parallel-city-time: pass parallel-different-tools: fail parallel-three-cities: fail parallel-three-different-tools: pass parallel-two-calculations: pass parallel-two-multiple-args: fail parallel-two-searches: pass parallel-weather-and-time: pass streaming-array-arguments: fail streaming-boolean-argument: pass streaming-empty-arguments: fail streaming-enum-arguments: fail streaming-nested-arguments: pass streaming-parallel-three: pass streaming-parallel-two: fail streaming-weather: pass tool-choice-auto-call: pass tool-choice-auto-no-call: pass tool-choice-named: pass tool-choice-named-empty: pass tool-choice-none: pass tool-choice-required: pass tool-choice-required-empty: fail multi-turn-calendar-followup: fail multi-turn-flight-booking: fail multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: fail negative-auto-arithmetic: pass negative-auto-knowledge: pass negative-greeting: pass negative-invalid-schema: pass negative-long-argument: fail negative-plain-text: pass negative-unicode-argument: fail single-array-tags: fail single-boolean-flag: pass single-date-range: pass single-decimal-price: pass single-empty-arguments: pass single-enum-format: pass single-integer-limit: pass single-nested-options: fail single-optional-omitted: pass single-optional-present: pass single-string-list: pass single-weather: pass single-zero-and-negative: pass parallel-city-time: pass parallel-different-tools: pass parallel-three-cities: pass parallel-three-different-tools: pass parallel-two-calculations: pass parallel-two-multiple-args: pass parallel-two-searches: pass parallel-weather-and-time: pass streaming-array-arguments: pass streaming-boolean-argument: pass streaming-empty-arguments: pass streaming-enum-arguments: pass streaming-nested-arguments: fail streaming-parallel-three: pass streaming-parallel-two: pass streaming-weather: pass tool-choice-auto-call: pass tool-choice-auto-no-call: pass tool-choice-named: pass tool-choice-named-empty: pass tool-choice-none: pass tool-choice-required: pass tool-choice-required-empty: fail multi-turn-calendar-followup: fail multi-turn-flight-booking: pass multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: pass multi-turn-ticket-update: pass multi-turn-two-hop-chain: pass negative-auto-arithmetic: pass negative-auto-knowledge: pass negative-greeting: pass negative-invalid-schema: pass negative-long-argument: fail negative-plain-text: pass negative-unicode-argument: pass single-array-tags: fail single-boolean-flag: pass single-date-range: pass single-decimal-price: pass single-empty-arguments: pass single-enum-format: pass single-integer-limit: pass single-nested-options: fail single-optional-omitted: pass single-optional-present: pass single-string-list: pass single-weather: pass single-zero-and-negative: pass parallel-city-time: pass parallel-different-tools: pass parallel-three-cities: pass parallel-three-different-tools: pass parallel-two-calculations: pass parallel-two-multiple-args: pass parallel-two-searches: pass parallel-weather-and-time: pass streaming-array-arguments: pass streaming-boolean-argument: pass streaming-empty-arguments: pass streaming-enum-arguments: pass streaming-nested-arguments: pass streaming-parallel-three: pass streaming-parallel-two: pass streaming-weather: pass tool-choice-auto-call: pass tool-choice-auto-no-call: pass tool-choice-named: pass tool-choice-named-empty: pass tool-choice-none: pass tool-choice-required: pass tool-choice-required-empty: pass multi-turn-calendar-followup: pass multi-turn-flight-booking: pass multi-turn-inventory-order: pass multi-turn-parallel-followup: pass multi-turn-route: pass multi-turn-ticket-update: fail multi-turn-two-hop-chain: pass negative-auto-arithmetic: pass negative-auto-knowledge: pass negative-greeting: pass negative-invalid-schema: pass negative-long-argument: fail negative-plain-text: pass negative-unicode-argument: pass single-array-tags: fail single-boolean-flag: pass single-date-range: pass single-decimal-price: pass single-empty-arguments: pass single-enum-format: pass single-integer-limit: pass single-nested-options: pass single-optional-omitted: pass single-optional-present: pass single-string-list: pass single-weather: pass single-zero-and-negative: pass parallel-city-time: pass parallel-different-tools: pass parallel-three-cities: pass parallel-three-different-tools: pass parallel-two-calculations: pass parallel-two-multiple-args: pass parallel-two-searches: pass parallel-weather-and-time: pass streaming-array-arguments: pass streaming-boolean-argument: pass streaming-empty-arguments: fail streaming-enum-arguments: pass streaming-nested-arguments: pass streaming-parallel-three: pass streaming-parallel-two: pass streaming-weather: pass tool-choice-auto-call: pass tool-choice-auto-no-call: pass tool-choice-named: pass tool-choice-named-empty: pass tool-choice-none: pass tool-choice-required: pass tool-choice-required-empty: fail multi-turn-calendar-followup: fail multi-turn-flight-booking: fail multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: fail negative-auto-arithmetic: pass negative-auto-knowledge: pass negative-greeting: pass negative-invalid-schema: pass negative-long-argument: pass negative-plain-text: pass negative-unicode-argument: fail single-array-tags: fail single-boolean-flag: pass single-date-range: pass single-decimal-price: pass single-empty-arguments: pass single-enum-format: pass single-integer-limit: pass single-nested-options: pass single-optional-omitted: pass single-optional-present: pass single-string-list: pass single-weather: pass single-zero-and-negative: pass parallel-city-time: pass parallel-different-tools: pass parallel-three-cities: pass parallel-three-different-tools: pass parallel-two-calculations: pass parallel-two-multiple-args: pass parallel-two-searches: pass parallel-weather-and-time: pass streaming-array-arguments: pass streaming-boolean-argument: pass streaming-empty-arguments: pass streaming-enum-arguments: pass streaming-nested-arguments: pass streaming-parallel-three: pass streaming-parallel-two: pass streaming-weather: pass tool-choice-auto-call: pass tool-choice-auto-no-call: pass tool-choice-named: pass tool-choice-named-empty: pass tool-choice-none: pass tool-choice-required: pass tool-choice-required-empty: pass multi-turn-calendar-followup: pass multi-turn-flight-booking: pass multi-turn-inventory-order: pass multi-turn-parallel-followup: fail multi-turn-route: pass multi-turn-ticket-update: fail multi-turn-two-hop-chain: pass negative-auto-arithmetic: pass negative-auto-knowledge: pass negative-greeting: pass negative-invalid-schema: pass negative-long-argument: pass negative-plain-text: pass negative-unicode-argument: pass single-array-tags: pass single-boolean-flag: fail single-date-range: pass single-decimal-price: pass single-empty-arguments: pass single-enum-format: pass single-integer-limit: pass single-nested-options: fail single-optional-omitted: pass single-optional-present: pass single-string-list: pass single-weather: pass single-zero-and-negative: pass parallel-city-time: pass parallel-different-tools: pass parallel-three-cities: fail parallel-three-different-tools: pass parallel-two-calculations: pass parallel-two-multiple-args: pass parallel-two-searches: pass parallel-weather-and-time: pass streaming-array-arguments: pass streaming-boolean-argument: pass streaming-empty-arguments: pass streaming-enum-arguments: pass streaming-nested-arguments: pass streaming-parallel-three: fail streaming-parallel-two: pass streaming-weather: pass tool-choice-auto-call: pass tool-choice-auto-no-call: pass tool-choice-named: pass tool-choice-named-empty: pass tool-choice-none: pass tool-choice-required: pass tool-choice-required-empty: pass multi-turn-calendar-followup: pass multi-turn-flight-booking: fail multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: pass negative-auto-arithmetic: pass negative-auto-knowledge: pass negative-greeting: pass negative-invalid-schema: pass negative-long-argument: pass negative-plain-text: pass negative-unicode-argument: pass single-array-tags: pass single-boolean-flag: pass single-date-range: pass single-decimal-price: pass single-empty-arguments: fail single-enum-format: pass single-integer-limit: pass single-nested-options: fail single-optional-omitted: pass single-optional-present: pass single-string-list: pass single-weather: pass single-zero-and-negative: pass parallel-city-time: pass parallel-different-tools: pass parallel-three-cities: pass parallel-three-different-tools: pass parallel-two-calculations: pass parallel-two-multiple-args: pass parallel-two-searches: pass parallel-weather-and-time: pass streaming-array-arguments: pass streaming-boolean-argument: pass streaming-empty-arguments: fail streaming-enum-arguments: pass streaming-nested-arguments: fail streaming-parallel-three: pass streaming-parallel-two: pass streaming-weather: pass tool-choice-auto-call: pass tool-choice-auto-no-call: pass tool-choice-named: pass tool-choice-named-empty: pass tool-choice-none: pass tool-choice-required: pass tool-choice-required-empty: fail multi-turn-calendar-followup: fail multi-turn-flight-booking: fail multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: fail negative-auto-arithmetic: pass negative-auto-knowledge: pass negative-greeting: fail negative-invalid-schema: pass negative-long-argument: fail negative-plain-text: pass negative-unicode-argument: pass single-array-tags: pass single-boolean-flag: pass single-date-range: pass single-decimal-price: pass single-empty-arguments: pass single-enum-format: pass single-integer-limit: pass single-nested-options: fail single-optional-omitted: pass single-optional-present: pass single-string-list: pass single-weather: pass single-zero-and-negative: pass parallel-city-time: pass parallel-different-tools: pass parallel-three-cities: pass parallel-three-different-tools: pass parallel-two-calculations: pass parallel-two-multiple-args: pass parallel-two-searches: pass parallel-weather-and-time: pass streaming-array-arguments: pass streaming-boolean-argument: fail streaming-empty-arguments: pass streaming-enum-arguments: pass streaming-nested-arguments: pass streaming-parallel-three: pass streaming-parallel-two: pass streaming-weather: pass tool-choice-auto-call: pass tool-choice-auto-no-call: pass tool-choice-named: pass tool-choice-named-empty: pass tool-choice-none: pass tool-choice-required: pass tool-choice-required-empty: pass multi-turn-calendar-followup: pass multi-turn-flight-booking: fail multi-turn-inventory-order: fail multi-turn-parallel-followup: pass multi-turn-route: pass multi-turn-ticket-update: fail multi-turn-two-hop-chain: pass negative-auto-arithmetic: pass negative-auto-knowledge: pass negative-greeting: pass negative-invalid-schema: pass negative-long-argument: pass negative-plain-text: pass negative-unicode-argument: pass single-array-tags: pass single-boolean-flag: pass single-date-range: pass single-decimal-price: pass single-empty-arguments: pass single-enum-format: pass single-integer-limit: pass single-nested-options: fail single-optional-omitted: pass single-optional-present: pass single-string-list: pass single-weather: pass single-zero-and-negative: pass parallel-city-time: pass parallel-different-tools: pass parallel-three-cities: pass parallel-three-different-tools: pass parallel-two-calculations: pass parallel-two-multiple-args: pass parallel-two-searches: pass parallel-weather-and-time: pass streaming-array-arguments: pass streaming-boolean-argument: pass streaming-empty-arguments: pass streaming-enum-arguments: pass streaming-nested-arguments: pass streaming-parallel-three: pass streaming-parallel-two: pass streaming-weather: pass tool-choice-auto-call: pass tool-choice-auto-no-call: pass tool-choice-named: pass tool-choice-named-empty: pass tool-choice-none: pass tool-choice-required: pass tool-choice-required-empty: pass multi-turn-calendar-followup: fail multi-turn-flight-booking: fail multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: fail negative-auto-arithmetic: pass negative-auto-knowledge: pass negative-greeting: pass negative-invalid-schema: pass negative-long-argument: fail negative-plain-text: pass negative-unicode-argument: pass single-array-tags: pass single-boolean-flag: pass single-date-range: pass single-decimal-price: pass single-empty-arguments: pass single-enum-format: pass single-integer-limit: pass single-nested-options: pass single-optional-omitted: fail single-optional-present: pass single-string-list: pass single-weather: pass single-zero-and-negative: fail parallel-city-time: pass parallel-different-tools: pass parallel-three-cities: pass parallel-three-different-tools: fail parallel-two-calculations: pass parallel-two-multiple-args: pass parallel-two-searches: pass parallel-weather-and-time: pass streaming-array-arguments: pass streaming-boolean-argument: pass streaming-empty-arguments: pass streaming-enum-arguments: pass streaming-nested-arguments: pass streaming-parallel-three: pass streaming-parallel-two: pass streaming-weather: pass tool-choice-auto-call: pass tool-choice-auto-no-call: fail tool-choice-named: pass tool-choice-named-empty: pass tool-choice-none: fail tool-choice-required: pass tool-choice-required-empty: pass multi-turn-calendar-followup: fail multi-turn-flight-booking: fail multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: fail negative-auto-arithmetic: pass negative-auto-knowledge: pass negative-greeting: pass negative-invalid-schema: fail negative-long-argument: pass negative-plain-text: fail negative-unicode-argument: pass single-array-tags: pass single-boolean-flag: pass single-date-range: pass single-decimal-price: pass single-empty-arguments: pass single-enum-format: pass single-integer-limit: pass single-nested-options: pass single-optional-omitted: pass single-optional-present: pass single-string-list: pass single-weather: pass single-zero-and-negative: pass parallel-city-time: fail parallel-different-tools: pass parallel-three-cities: pass parallel-three-different-tools: pass parallel-two-calculations: pass parallel-two-multiple-args: pass parallel-two-searches: fail parallel-weather-and-time: pass streaming-array-arguments: pass streaming-boolean-argument: pass streaming-empty-arguments: pass streaming-enum-arguments: pass streaming-nested-arguments: pass streaming-parallel-three: pass streaming-parallel-two: pass streaming-weather: pass tool-choice-auto-call: pass tool-choice-auto-no-call: pass tool-choice-named: pass tool-choice-named-empty: pass tool-choice-none: pass tool-choice-required: pass tool-choice-required-empty: pass multi-turn-calendar-followup: fail multi-turn-flight-booking: fail multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: fail negative-auto-arithmetic: pass negative-auto-knowledge: pass negative-greeting: pass negative-invalid-schema: pass negative-long-argument: fail negative-plain-text: pass negative-unicode-argument: pass single-array-tags: pass single-boolean-flag: pass single-date-range: pass single-decimal-price: pass single-empty-arguments: pass single-enum-format: pass single-integer-limit: pass single-nested-options: pass single-optional-omitted: pass single-optional-present: pass single-string-list: pass single-weather: pass single-zero-and-negative: pass parallel-city-time: pass parallel-different-tools: pass parallel-three-cities: pass parallel-three-different-tools: pass parallel-two-calculations: pass parallel-two-multiple-args: pass parallel-two-searches: pass parallel-weather-and-time: pass streaming-array-arguments: pass streaming-boolean-argument: pass streaming-empty-arguments: pass streaming-enum-arguments: pass streaming-nested-arguments: pass streaming-parallel-three: pass streaming-parallel-two: pass streaming-weather: pass tool-choice-auto-call: pass tool-choice-auto-no-call: fail tool-choice-named: pass tool-choice-named-empty: pass tool-choice-none: pass tool-choice-required: pass tool-choice-required-empty: pass multi-turn-calendar-followup: fail multi-turn-flight-booking: fail multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: fail negative-auto-arithmetic: pass negative-auto-knowledge: pass negative-greeting: pass negative-invalid-schema: pass negative-long-argument: pass negative-plain-text: pass negative-unicode-argument: pass single-array-tags: pass single-boolean-flag: pass single-date-range: pass single-decimal-price: pass single-empty-arguments: pass single-enum-format: pass single-integer-limit: pass single-nested-options: pass single-optional-omitted: pass single-optional-present: pass single-string-list: pass single-weather: pass single-zero-and-negative: pass parallel-city-time: pass parallel-different-tools: pass parallel-three-cities: pass parallel-three-different-tools: pass parallel-two-calculations: pass parallel-two-multiple-args: pass parallel-two-searches: pass parallel-weather-and-time: pass streaming-array-arguments: pass streaming-boolean-argument: pass streaming-empty-arguments: pass streaming-enum-arguments: pass streaming-nested-arguments: pass streaming-parallel-three: pass streaming-parallel-two: pass streaming-weather: pass tool-choice-auto-call: pass tool-choice-auto-no-call: pass tool-choice-named: pass tool-choice-named-empty: pass tool-choice-none: pass tool-choice-required: pass tool-choice-required-empty: pass multi-turn-calendar-followup: fail multi-turn-flight-booking: fail multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: fail negative-auto-arithmetic: pass negative-auto-knowledge: pass negative-greeting: pass negative-invalid-schema: pass negative-long-argument: fail negative-plain-text: pass negative-unicode-argument: pass single-array-tags: pass single-boolean-flag: pass single-date-range: pass single-decimal-price: pass single-empty-arguments: pass single-enum-format: pass single-integer-limit: pass single-nested-options: pass single-optional-omitted: pass single-optional-present: pass single-string-list: pass single-weather: pass single-zero-and-negative: pass parallel-city-time: pass parallel-different-tools: pass parallel-three-cities: pass parallel-three-different-tools: pass parallel-two-calculations: pass parallel-two-multiple-args: pass parallel-two-searches: pass parallel-weather-and-time: pass streaming-array-arguments: pass streaming-boolean-argument: pass streaming-empty-arguments: pass streaming-enum-arguments: pass streaming-nested-arguments: pass streaming-parallel-three: pass streaming-parallel-two: pass streaming-weather: pass tool-choice-auto-call: pass tool-choice-auto-no-call: pass tool-choice-named: pass tool-choice-named-empty: pass tool-choice-none: pass tool-choice-required: pass tool-choice-required-empty: pass multi-turn-calendar-followup: fail multi-turn-flight-booking: fail multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: pass negative-auto-arithmetic: pass negative-auto-knowledge: pass negative-greeting: pass negative-invalid-schema: pass negative-long-argument: pass negative-plain-text: pass negative-unicode-argument: fail single-array-tags: pass single-boolean-flag: pass single-date-range: pass single-decimal-price: pass single-empty-arguments: pass single-enum-format: pass single-integer-limit: pass single-nested-options: pass single-optional-omitted: pass single-optional-present: pass single-string-list: pass single-weather: pass single-zero-and-negative: pass parallel-city-time: pass parallel-different-tools: pass parallel-three-cities: pass parallel-three-different-tools: pass parallel-two-calculations: pass parallel-two-multiple-args: pass parallel-two-searches: pass parallel-weather-and-time: pass streaming-array-arguments: pass streaming-boolean-argument: pass streaming-empty-arguments: pass streaming-enum-arguments: pass streaming-nested-arguments: pass streaming-parallel-three: pass streaming-parallel-two: pass streaming-weather: pass tool-choice-auto-call: pass tool-choice-auto-no-call: pass tool-choice-named: pass tool-choice-named-empty: pass tool-choice-none: pass tool-choice-required: pass tool-choice-required-empty: pass multi-turn-calendar-followup: fail multi-turn-flight-booking: pass multi-turn-inventory-order: fail multi-turn-parallel-followup: fail multi-turn-route: pass multi-turn-ticket-update: fail multi-turn-two-hop-chain: fail negative-auto-arithmetic: pass negative-auto-knowledge: pass negative-greeting: pass negative-invalid-schema: pass negative-long-argument: pass negative-plain-text: pass negative-unicode-argument: pass single-array-tags: pass single-boolean-flag: pass single-date-range: pass single-decimal-price: pass single-empty-arguments: pass single-enum-format: pass single-integer-limit: pass single-nested-options: pass single-optional-omitted: pass single-optional-present: pass single-string-list: pass single-weather: pass single-zero-and-negative: pass parallel-city-time: pass parallel-different-tools: pass parallel-three-cities: pass parallel-three-different-tools: pass parallel-two-calculations: pass parallel-two-multiple-args: pass parallel-two-searches: pass parallel-weather-and-time: pass streaming-array-arguments: pass streaming-boolean-argument: pass streaming-empty-arguments: pass streaming-enum-arguments: pass streaming-nested-arguments: pass streaming-parallel-three: pass streaming-parallel-two: pass streaming-weather: pass tool-choice-auto-call: pass tool-choice-auto-no-call: pass tool-choice-named: pass tool-choice-named-empty: pass tool-choice-none: pass tool-choice-required: pass tool-choice-required-empty: pass multi-turn-calendar-followup: fail multi-turn-flight-booking: pass multi-turn-inventory-order: pass multi-turn-parallel-followup: fail multi-turn-route: pass multi-turn-ticket-update: fail multi-turn-two-hop-chain: pass negative-auto-arithmetic: pass negative-auto-knowledge: pass negative-greeting: pass negative-invalid-schema: pass negative-long-argument: pass negative-plain-text: pass negative-unicode-argument: pass single-array-tags: pass single-boolean-flag: pass single-date-range: pass single-decimal-price: pass single-empty-arguments: pass single-enum-format: pass single-integer-limit: pass single-nested-options: pass single-optional-omitted: pass single-optional-present: pass single-string-list: pass single-weather: pass single-zero-and-negative: pass parallel-city-time: pass parallel-different-tools: pass parallel-three-cities: pass parallel-three-different-tools: pass parallel-two-calculations: pass parallel-two-multiple-args: pass parallel-two-searches: pass parallel-weather-and-time: pass streaming-array-arguments: pass streaming-boolean-argument: pass streaming-empty-arguments: pass streaming-enum-arguments: pass streaming-nested-arguments: pass streaming-parallel-three: pass streaming-parallel-two: pass streaming-weather: pass tool-choice-auto-call: pass tool-choice-auto-no-call: pass tool-choice-named: pass tool-choice-named-empty: pass tool-choice-none: pass tool-choice-required: pass tool-choice-required-empty: pass multi-turn-calendar-followup: pass multi-turn-flight-booking: pass multi-turn-inventory-order: pass multi-turn-parallel-followup: fail multi-turn-route: fail multi-turn-ticket-update: fail multi-turn-two-hop-chain: pass negative-auto-arithmetic: pass negative-auto-knowledge: pass negative-greeting: pass negative-invalid-schema: pass negative-long-argument: fail negative-plain-text: pass negative-unicode-argument: pass single-array-tags: pass single-boolean-flag: pass single-date-range: pass single-decimal-price: pass single-empty-arguments: pass single-enum-format: pass single-integer-limit: pass single-nested-options: pass single-optional-omitted: pass single-optional-present: pass single-string-list: pass single-weather: pass single-zero-and-negative: pass parallel-city-time: pass parallel-different-tools: pass parallel-three-cities: pass parallel-three-different-tools: pass parallel-two-calculations: pass parallel-two-multiple-args: pass parallel-two-searches: pass parallel-weather-and-time: pass streaming-array-arguments: pass streaming-boolean-argument: pass streaming-empty-arguments: pass streaming-enum-arguments: pass streaming-nested-arguments: pass streaming-parallel-three: pass streaming-parallel-two: pass streaming-weather: pass tool-choice-auto-call: pass tool-choice-auto-no-call: pass tool-choice-named: pass tool-choice-named-empty: pass tool-choice-none: pass tool-choice-required: pass tool-choice-required-empty: pass multi-turn-calendar-followup: pass multi-turn-flight-booking: pass multi-turn-inventory-order: pass multi-turn-parallel-followup: fail multi-turn-route: pass multi-turn-ticket-update: fail multi-turn-two-hop-chain: pass negative-auto-arithmetic: pass negative-auto-knowledge: pass negative-greeting: pass negative-invalid-schema: pass negative-long-argument: pass negative-plain-text: pass negative-unicode-argument: pass