Blog/Best open models for tool calling
Models · November 2026

Best open models for tool calling in November 2026: benchmark scores, parser flags and hardware fit

By Samuel Seidel · Published November 7, 2026 · Sources checked November 7, 2026

As of 7 November 2026, the open models that call tools most reliably on independent tests are GLM-5.3 (50.3% on Artificial Analysis's tau3-Banking), Qwen3.8 2.4T A95B (49.1%) and Qwen3.8-27B (48.0%); the 27B runs on a 32 GB GPU at 4 bits. On Sierra's older three-domain tau2-bench, Qwen3.5-397B-A17B averages 87.9%, ahead of every closed model with a full three-domain run. Whichever you pick, the serving engine must use the right parser: in vLLM 0.33.0 that means --enable-auto-tool-choice plus the family's --tool-call-parser, such as qwen3_coder for Qwen3.8.

Modeltau3-Banking, AA runtau-bench, Sierra runOtherSmallest practical buildRuns on
GLM-5.3 (Max)50.3n/an/aUD-IQ1_S, 216.7 GB2 Sparks at ~1-bit
Qwen3.8 2.4T A95B49.1n/an/a2.4T parametersGPU servers
Qwen3.8-27B (Xhigh)48.0 (47.4 Medium, 32.2 Low)n/an/aUD-Q4_K_XL, 17.6 GB32 GB GPU
GLM-5.3-Flash47.2n/an/aUD-Q2_K_XL, 108.7 GB1 Spark at 2-bit
Qwen3.8-Flash-Next45.4n/an/aNVFP4 recipe, 76.5 GiB1 Spark
DeepSeek V4 Pro 0813 (Max)39.6n/aMCPMark 71.65 (V4 Pro max)server-classGPU servers
Kimi K3n/atau3-Banking 37.1 (pass^4 17.5)MCPMark 96.06 (kimi-k3-max)1,560.9 GBGPU servers
GLM-5.2n/atau3-Banking 37.1 (pass^4 13.4)n/aserver-classGPU servers
Inkling (Xhigh)29.1tau3-Banking 25.0n/aBF16 1,904.8 GBGPU servers
Qwen3.5-397B-A17B (thinking)13.4tau2 average 87.9 (retail 84.4, airline 81.5, telecom 97.8)AA tau2-bench 95.6~223 GB at 4.5 bits (estimate)2 Sparks (estimate)
Qwen3.6-35B-A3B (reasoning)9.3n/aAA tau2-bench 95.3UD-Q4_K_XL, ~23 GB32 GB GPU
gpt-oss-120b (High)12.8n/aAA tau2-bench 65.8MXFP4, 65.2 GB1 Spark
Closed reference: Qwen3.8 Max (0902)47.8tau3-Banking 55.2 (Qwen 3.8 Max)n/aAPI onlyn/a
Closed reference: Claude Opus 4.5n/atau2 average 85.3BFCL V4 77.47 (#1)API onlyn/a

Pass^1 in percent unless noted. AA = Artificial Analysis per-evaluation data, read 7 November 2026; its tau2-bench scores come from earlier index versions, which is why only older models have them. Sierra runs from taubench.com: tau2 rows dated 26 February to 2 March 2026 (gpt-5.2 user simulator, 4 trials), tau3-Banking rows dated 4 August 2026. MCPMark from its verified board, updated 20 July 2026. Sizes are Hugging Face file totals; the Qwen3.6-35B-A3B size is from our Qwen3.6-35B-A3B page.

Which benchmarks measure tool calling, and how current are they?

tau-bench is the one with fresh open-model results; BFCL and MCPMark are useful mainly for older models. They test different things.

The striking result is how well small models do on tau3-Banking. Qwen3.8-27B at 48.0% sits 2.3 points behind GLM-5.3, a model 28 times its size, and ahead of the closed Qwen3.8 Max (0902) at 47.8% in AA's runs. My reading is that tool use rewards following a format and a policy more than raw knowledge; the gap on coding benchmarks is much larger (see the coding model rankings).

How reliable are the models across repeated attempts?

Much less reliable than pass^1 suggests: on tau-bench, the share of tasks solved on all four tries is 36% to 71% of the single-try score. Sierra reports pass^k, the share of tasks a model solves in every one of k independent trials. From its submission files, read 7 November 2026:

Model, domainpass^1pass^2pass^4pass^4 ÷ pass^1
Qwen3.5-397B-A17B, retail84.474.459.70.71
GLM-5, retail73.760.443.90.60
Claude Opus 4.5, retail79.667.451.80.65
Kimi K3, tau3-Banking37.125.317.50.47
GLM-5.2, tau3-Banking37.125.313.40.36
Inkling, tau3-Banking25.016.711.30.45

Sierra-run submissions on taubench.com; the last column is my division. Kimi K3 and GLM-5.2 tie at pass^1 but separate at pass^4.

For a production agent, pass^4 is the number to plan around. Two models with the same headline score can differ by almost a quarter in how often they get the same task right every time, and only repeated runs on your own tasks will show which one you have.

Which parser flags does each model family need?

Each family writes tool calls in its own format, so the engine needs the matching parser, and most current families also need a matching reasoning parser. The table lists what the model's card or vLLM's recipe uses, checked 7 November 2026 against vLLM 0.33.0 (released 2 November) and SGLang v0.5.23 (2 November).

FamilyvLLM --tool-call-parservLLM --reasoning-parserExtra vLLM flagSGLang --tool-call-parserWhere stated
Qwen3.8-27B, Qwen3.8-Flash-Nextqwen3_coderqwen3qwen3_codervLLM recipe
GLM-5.3-Flashglm47glm47--tokenizer-mode glm5_nextglm47vLLM recipe
Kimi K3.1 Prokimi_k3kimi_k3kimi_k3vLLM recipe
DeepSeek-V4.1-Flash(-1017)deepseek_v41deepseek_v41--tokenizer-mode deepseek_v41deepseekv41vLLM recipe
MiniMax-M3.1-Flashminimax_m3minimax_m3minimax-m3vLLM recipe
gpt-oss-20b, gpt-oss-120bopenai(Harmony, built in)gpt-ossvLLM docs
MiMo-V2.6 Pro and Flashmimomimostrict: true for schema-constrained argumentsmimovLLM docs, model card
Nemotron 3.5 Super VLqwen3_codernemotron_v3qwen3_coder (reasoning: nemotron_3)model card
Nemotron 3.5 Boltqwen3_coderultra_v3 (plugin file from the repo)--reasoning-parser-pluginmodel card
Mistral Large 4, Mistral Small 4mistralmistralmistralmodel cards
Step 5 Previewstep5step5model card
Ling 3.1 Flashling3ling3ling3model card
Muse Spark OpenmusemusemusevLLM docs
Ripple-65B-PreviewrippleripplevLLM docs
Nanbeige4.3-33Bqwen3_coderqwen3model card
Mellum2.1hermesqwen3model card

vLLM always also needs --enable-auto-tool-choice. SGLang parser names are from its tool parser docs and the parser registry in its source; blank cells mean I found no named parser for that engine.

A Qwen3.8-27B launch that matches the recipe looks like this:

vllm serve Qwen/Qwen3.8-27B-FP8 \
  --enable-auto-tool-choice \
  --tool-call-parser qwen3_coder \
  --reasoning-parser qwen3 \
  --max-model-len 65536

vLLM's docs add one setting worth turning on: without a schema constraint, "arguments may occasionally be malformed" or break the parameter schema. Set "strict": true on a tool's function definition, or start the server with --tool-strict-level function, and vLLM enforces the argument schema with a structural-tag grammar. The glm47 parser applies that level by default. For DGX Spark-specific install steps, see the vLLM on DGX Spark guide.

What about llama.cpp and Ollama?

Both work, with less per-model configuration and less control.

llama.cpp (latest build b12189, 7 November 2026) parses tool calls from the model's Jinja chat template. The function-calling doc still says to start llama-server with --jinja, but the current server README lists it as enabled by default. Native handlers exist for Llama 3.x, Hermes 2/3 and Qwen 2.5, Mistral Nemo, Functionary, Command R7B, DeepSeek R1 and gpt-oss (Harmony), among others; any other template falls back to a generic handler, which the doc says may use more tokens. Two cautions from the same page: parallel tool calls are off unless the request sets "parallel_tool_calls": true, and extreme KV quantization such as -ctk q4_0 can substantially degrade tool calling. The site's llama.cpp guide covers the build for a Spark.

Ollama (v0.40.15, 3 November 2026) takes a tools array on /api/chat and handles the format inside the model's template, so there is no parser flag to set. Its tool calling docs cover parallel calls and a multi-turn agent loop, and for streaming they say to collect thinking, content and tool calls and send them all back with the tool results. That works well for models with a clean template in the Ollama library; for a release from last week, vLLM or SGLang with the vendor's parser is the safer route.

What goes wrong with tool calling, and how do you fix it?

Most failures are configuration mismatches, not model limits:

Which tool-calling model fits your hardware?

For most self-hosters the answer is Qwen3.8-27B, because it is near the top of the independent results and small enough to run anywhere.

My recommendation: start with Qwen3.8-27B on vLLM using the recipe flags, set strict on every tool, and measure pass^4 on twenty of your own tasks before trusting it. Where it ranks overall is in the open-weight leaderboard snapshot. A Spark to run that test on rents at $0.79/hour, billed per minute (pricing).

FAQ

What is the best open-source model for function calling?

On the most current independent test, Artificial Analysis's tau3-Banking runs read on 7 November 2026, GLM-5.3 (Max) leads the open models at 50.3%, followed by Qwen3.8 2.4T A95B at 49.1% and Qwen3.8-27B at 48.0%. The best closed model AA lists on the same test, Qwen3.8 Max, scores 47.8%. On Sierra's older tau2-bench, Qwen3.5-397B-A17B leads every model at 87.9%.

What is the best local LLM for tool calling on a 32 GB GPU?

Qwen3.8-27B. Its 4-bit GGUF is 17.6 GB, and Artificial Analysis measured it at 48.0% on tau3-Banking at its highest reasoning effort, within 2.3 points of GLM-5.3, a 753B model (7 November 2026). Serve it in vLLM with --enable-auto-tool-choice --tool-call-parser qwen3_coder --reasoning-parser qwen3, the settings in vLLM's recipe for the model.

Which vLLM tool-call parser should I use?

The one named in the model's vLLM recipe or card, because each family emits a different format. As of vLLM 0.33.0 (2 November 2026): qwen3_coder for Qwen3.8 and Nemotron 3.5, glm47 for GLM-5.3-Flash, kimi_k3 for Kimi K3.1 Pro, minimax_m3 for MiniMax-M3.1-Flash, deepseek_v41 for DeepSeek-V4.1-Flash, openai for gpt-oss, mimo for MiMo-V2.6. Always add --enable-auto-tool-choice.

Does llama.cpp support tool calling?

Yes. llama-server parses tool calls through the model's Jinja chat template, and its server README lists --jinja as enabled by default as of build b12189 (7 November 2026). Models with a recognized format get a native handler; others fall back to a generic handler that the function-calling docs say may use more tokens. Avoid heavy KV quantization such as -ctk q4_0, which the docs warn degrades tool calling.

Is BFCL still a good benchmark for tool calling?

Its method is sound but its model list is old. The Berkeley Function Calling Leaderboard V4 was last updated on 12 April 2026, and its newest models are Claude Opus 4.5 and Gemini 3 Pro Preview; the best open entry is GLM-4.6 at 72.38%. For models released since, use tau-bench results from Sierra or Artificial Analysis instead.

Sources

Every figure above is attributed to its source in the sentence or table where it appears. Pages were read on 7 November 2026 unless a date says otherwise.

Related pages

First top-up: pay $20, get $30 in credit

Run your own tool-calling tests.

Rent a 128 GB Spark by the minute, start vLLM with the parser for your model, and replay your real tool schemas before an agent acts on them.

A dedicated DGX Spark in the EU, $0.79/hour, billed per minute. $30 of credit is about 37 hours of compute.

Create account Structured output and function calling guide