Recommendation for Tool calling

Tool & Function Calling

Our top recommendation for Tool & Function Calling, based on the public evidence we track, is Anthropic: Claude Opus 4.5.[1][2] Use for complex multi-turn agent workflows where hallucination-resistant tool selection and strict format adherence matter, given its #1 BFCL ranking across all measured dimensions. Watch out: Expect ~4.38s mean latency per call on BFCL, which may bottleneck high-frequency tool chains. Anthropic: Claude Sonnet 4.5 is the next-ranked alternative. Enable strict: true constrained decoding in Bedrock Converse deployments to enforce schema compliance and eliminate PageDecodeError from malformed array outputs.

About this recommendation

Updated
Sep 4, 2026
Evidence through
Sep 4, 2026
Sources
9
Revision
v59

Decision audit

Why this result

Inspect the inputs and the computed order behind the recommendation.

Models screened

20

live candidates

Evaluation feeds

5

task-weighted

Winner coverage

65%

intended feed weight

Largest provider share

4 of 8

Anthropic

Provisional source breadth. 8 citation families and 1 practitioner families support the top result; 0 cautionary threads is retained. The largest citation family contributes 25%.

Sources evaluated

The task sets these weights before any model is scored.

winner: Claude Opus 4.5
Evaluation feedWeightWinner resultField measured
Berkeley Function Calling
55%
#18/20
LMArena Agent
15%
not measured11/20
LMArena Search
10%
not measured4/20
OpenRouter usage
10%
68/10020/20
Structured-output evalunavailable
10%
feed unavailable0/20

Provider concentration

Each exact model is scored separately; provider identity is not a ranking input.

Anthropic50%
  • Anthropic4 models
  • OpenAI2 models
  • Google1 model
  • Z.ai1 model

Decision table

Every published model is shown in computed order. Practitioner sources are distinct community threads, not the citations repeated in the prose below.

RankModelRelative scoreCoveragePractitioner evidenceStrongest measured reason
01Claude Opus 4.5Anthropic
68
65%1 threads · 1 families · 0 cautions#1 Berkeley Function Calling
02Claude Sonnet 4.5Anthropic
66
65%3 threads · 3 families · 2 cautions#2 Berkeley Function Calling
03GLM 4.6Z.ai
63
65%1 threads · 1 families · 0 cautions#3 Berkeley Function Calling
04GPT-5.6 SolOpenAI
61
35%21 threads · 14 families · 10 cautions#1 LMArena Search · #3 LMArena Agent
05Gemini 2.5 FlashGoogle
53
65%4 threads · 3 families · 3 cautions#8 Berkeley Function Calling
06Claude Fable 5Anthropic
52
35%2 threads · 2 families · 0 cautions#2 LMArena Agent · #3 LMArena Search
07GPT-5 MiniOpenAI
51
65%1 threads · 1 families · 1 cautions#9 Berkeley Function Calling
08Claude Opus 4.8Anthropic
51
35%5 threads · 5 families · 3 cautions#4 LMArena Agent · #5 LMArena Search

Relative score combines normalized benchmark quality and signal coverage; independent practitioner evidence and freshness are bounded tie-breakers. It is an ordering score, not an absolute quality percentage. The writing model receives this order and cannot change it.

  1. Leads BFCL tool-calling benchmark with 77.47% overall, covering single-turn, multi-turn, web-search, memory, hallucination, and format-sensitive scenarios.

    Best when: Use for complex multi-turn agent workflows where hallucination-resistant tool selection and strict format adherence matter, given its #1 BFCL ranking across all measured dimensions.

    Tips

    • Use for complex multi-turn agent workflows where hallucination-resistant tool selection and strict format adherence matter, given its #1 BFCL ranking across all measured dimensions.
      Source 1
      Scores 77.47% overall on BFCL (#1 of 32), measuring single-turn, multi-turn, web-search, memory, hallucination, and format-sensitive tool calling; mean latency was 4.38s.
      Berkeley Function-Calling LeaderboardOpen original ↗

    Watch out for

    • Expect ~4.38s mean latency per call on BFCL, which may bottleneck high-frequency tool chains.
      Source 1
      Scores 77.47% overall on BFCL (#1 of 32), measuring single-turn, multi-turn, web-search, memory, hallucination, and format-sensitive tool calling; mean latency was 4.38s.
      Berkeley Function-Calling LeaderboardOpen original ↗
  2. Requires strict: true in tool schemas on Bedrock Converse to prevent type mismatch errors where sections returns as string instead of array.

    Best when: Enable `strict: true` constrained decoding in Bedrock Converse deployments to enforce schema compliance and eliminate `PageDecodeError` from malformed array outputs.

    Tips

    • Enable `strict: true` constrained decoding in Bedrock Converse deployments to enforce schema compliance and eliminate `PageDecodeError` from malformed array outputs.
      Source 2
      ## 背景 #111 で経路 B の応答を tool use で受け取るようにしたが、2026-08-22 23:09 の再投入 (2608.17950v1) で 12 ページ目がモデルの出力 `sections` が配列ではなく文字列で返り、`PageDecodeError` になった (#113 の再試行でも同じ)。 tool use の `inputSchema` は `strict` を付けないと型を保証しない。公式ドキュメントは「strict なしでは型の不一致や必須欠落が起こり得る」と述べ、解決策として `strict: true` (constrained decoding) を提示している。 Claude Sonnet 4.5 は Bedrock Converse (`bedrock-runtime`、cross-region inference 含む) で対象。 - [ToolSpecification API Reference](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime…

    Watch out for

    • Image editing workflows fail even with native function calling, producing invalid image URLs or silent failures on attachment handling.
      Source 3
      I retested with `anthropic/claude-sonnet-4.5` using Native function calling. The behavior is different from GPT-4.1 Mini, but image editing still does not work. The image upload itself succeeds: However, I observed two different failures. ### Failure 1: Open WebUI builds an invalid image URL edit_image attempts to load the uploaded image from: This returns: The same file is available successfully through the local Open WebUI endpoint: The relevant traceback is: ### Manual attachment fallback wi…
      GUILHERME-GARCIATECHOpen original ↗
  3. Ranks #3 on BFCL with 72.38% overall, showing strong tool-calling performance with slightly faster latency than the leader.

    Best when: Deploy for cost-sensitive tool-calling pipelines where 72.38% BFCL accuracy suffices, benefiting from 4.34s mean latency and open-weight flexibility across DeepInfra, LiteLLM, and OpenRouter.

    Tips

    • Deploy for cost-sensitive tool-calling pipelines where 72.38% BFCL accuracy suffices, benefiting from 4.34s mean latency and open-weight flexibility across DeepInfra, LiteLLM, and OpenRouter.
      Source 4
      Scores 72.38% overall on BFCL (#3 of 32), measuring single-turn, multi-turn, web-search, memory, hallucination, and format-sensitive tool calling; mean latency was 4.34s.
      Berkeley Function-Calling LeaderboardOpen original ↗

    Watch out for

    • Chat template lacks explicit thinking on/off switch, relying only on `reasoning_effort` and `clear_thinking` kwargs which can cause reasoning extraction mismatches with GLM-4.5/4.6-era parsers.
      Source 5
      ### 🐛 Describe the bug GLM-5.3's chat template has **no thinking on/off switch** — its only knobs are `reasoning_effort` (`'low'`/`'high'`, anything else → `'max'`) and `clear_thinking`: (`zai-org/GLM-5.3-Flash` `chat_template.jinja`; `enable_thinking` appears nowhere in the template.) But the GLM reasoning parser still gates reasoning **extraction** on the GLM-4.5/4.6-era kwargs. At current `main`, `vllm/parser/glm47_moe.py`: So when a client sends `chat_template_kwargs: {"enable_thinking": f…
      sethforprivacyOpen original ↗
  4. OpenAI: GPT-5.6 Sol ranks #1 of 6 on LMArena's search arena (score 1257), measuring answers produced with search.

    Best when: Consider only after reviewing the cited caution.

  5. Scores 56.24% on BFCL with the fastest latency at 2.99s, though being deprecated and showing model behavior issues with thought wrapping.

    Best when: Consider only after reviewing the cited caution.

    Watch out for

    • Model is actively deprecated with known thought-wrapping behavior issues, and community reports advise against relying on it for any production tool calling.
      Source 6
      Might be a model behavior issue or upstream provider issue for not wrapping the thought but honesty, i am guessing this is a model behavior issue here. Also gemini 2.5 is being deprecated any day now and is a dinosaur. Shouldn't rely on it for any form of tool calling really. I wouldn't at least. Not an open webui issue. Not reproducible with any newer gemini model or other models.
  6. Ranks #3 on LMArena search arena and designated for plan-review and security advisory roles in multi-model agent hierarchies.

    Best when: Consider only after reviewing the cited caution.

    Watch out for

    • Not designated for primary implementation or execution tiers, limiting its role to review and advisory rather than core tool-calling loops.
      Source 7
      ## Summary A five-model advisor review of the newly merged model-tier taxonomy (`c266410`, agent-harness#309) converged on an author/reviewer split, but rejected making the heavy tier the default implementation tier. Recommended upstream policy: - roadmap/plan/supervise: Claude Opus 5 (`heavy`) - execute/repair: Claude Sonnet 5 (`regular`), with a recorded escalation to Opus 5 after repeated verification failure - plan-review/code-review/advise/security: Claude Fable 5 (`ultra`) - worker/econom…
  7. Scores 55.46% on BFCL but fails with 400 errors on native tool calling due to unconditional temperature setting incompatible with GPT-5 family requirements.

    Best when: Consider only after reviewing the cited caution.

    Watch out for

    • Native tool-calling path unconditionally sets `temperature`, causing 400 `unsupported_value` errors since GPT-5 family only accepts default temperature (1), breaking all tool calls.
      Source 8
      ## Befund `tool_calls._chat_with_tools` setzt `temperature` bedingungslos in den Request. Der Quirk aus #1096 — die GPT-5-/o1/o3/o4-Reasoning-Familie akzeptiert ausschließlich den Default (1) und antwortet sonst 400 `unsupported_value` — ist auf diesem Pfad nie nachgezogen worden. `chat` und `describe_image` haben ihn. Konkret heißt das: ein natives Tool-Calling gegen `gpt-5-mini`, `o3` oder Verwandte läuft heute in einen 400, und zwar ohne Netz — der Tools-Pfad hat auch keinen Temperature-Fall…
  8. Ranks #4 on LMArena's agentic arena for tool-use and multi-step tasks, with migration paths to newer Opus 5 generation.

    Best when: Consider only after reviewing the cited caution.

    Watch out for

    • Being superseded by Claude Opus 5 in active agent definitions, with nine Opus 4.8 agents already migrated, suggesting declining long-term support.
      Source 9
      ## Scope Optimize agent frontmatter across all 24 agent definitions and migrate the Claude Opus model generation, then close the resulting runtime routing and loop-timestamp gaps. ## Changes - Normalize frontmatter field order and `reasoning` blocks across all 24 agents - Migrate nine Opus 4.8 agents to Claude Opus 5; keep seven agents on Sonnet 5 - Add `claude-opus-5`, `claude-sonnet-5`, and `claude-sonnet-4.5` capability metadata plus provider aliases for copilot, claude-code, and anthropic-a…

Frequently asked

What is the top-ranked model for Tool & Function Calling?
Anthropic: Claude Opus 4.5 ranks first in the current evidence-weighted comparison. Use for complex multi-turn agent workflows where hallucination-resistant tool selection and strict format adherence matter, given its #1 BFCL ranking across all measured dimensions.[1]
What should I watch out for with Anthropic: Claude Opus 4.5?
Expect ~4.38s mean latency per call on BFCL, which may bottleneck high-frequency tool chains.[1]
What is an alternative to Anthropic: Claude Opus 4.5?
Anthropic: Claude Sonnet 4.5 is the next-ranked option. Enable `strict: true` constrained decoding in Bedrock Converse deployments to enforce schema compliance and eliminate `PageDecodeError` from malformed array outputs.[2]

Sources

  1. 1

    Scores 77.47% overall on BFCL (#1 of 32), measuring single-turn, multi-turn, web-search, memory, hallucination, and format-sensitive tool calling; mean latency was 4.38s.

    Berkeley Function-Calling Leaderboard · Benchmark · Sep 4, 2026
  2. 2

    ## 背景 #111 で経路 B の応答を tool use で受け取るようにしたが、2026-08-22 23:09 の再投入 (2608.17950v1) で 12 ページ目がモデルの出力 `sections` が配列ではなく文字列で返り、`PageDecodeError` になった (#113 の再試行でも同じ)。 tool use の `inputSchema` は `strict` を付けないと型を保証しない。公式ドキュメントは「strict なしでは型の不一致や必須欠落が起こり得る」と述べ、解決策として `strict: true` (constrained decoding) を提示している。 Claude Sonnet 4.5 は Bedrock Converse (`bedrock-runtime`、cross-region inference 含む) で対象。 - [ToolSpecification API Reference](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime…

    tamaco489 · GitHub · Aug 22, 2026
  3. 3

    I retested with `anthropic/claude-sonnet-4.5` using Native function calling. The behavior is different from GPT-4.1 Mini, but image editing still does not work. The image upload itself succeeds: However, I observed two different failures. ### Failure 1: Open WebUI builds an invalid image URL edit_image attempts to load the uploaded image from: This returns: The same file is available successfully through the local Open WebUI endpoint: The relevant traceback is: ### Manual attachment fallback wi…

    GUILHERME-GARCIATECH · GitHub · Jul 28, 2026
  4. 4

    Scores 72.38% overall on BFCL (#3 of 32), measuring single-turn, multi-turn, web-search, memory, hallucination, and format-sensitive tool calling; mean latency was 4.34s.

    Berkeley Function-Calling Leaderboard · Benchmark · Sep 4, 2026
  5. 5

    ### 🐛 Describe the bug GLM-5.3's chat template has **no thinking on/off switch** — its only knobs are `reasoning_effort` (`'low'`/`'high'`, anything else → `'max'`) and `clear_thinking`: (`zai-org/GLM-5.3-Flash` `chat_template.jinja`; `enable_thinking` appears nowhere in the template.) But the GLM reasoning parser still gates reasoning **extraction** on the GLM-4.5/4.6-era kwargs. At current `main`, `vllm/parser/glm47_moe.py`: So when a client sends `chat_template_kwargs: {"enable_thinking": f…

    sethforprivacy · GitHub · Sep 1, 2026
  6. 6

    Might be a model behavior issue or upstream provider issue for not wrapping the thought but honesty, i am guessing this is a model behavior issue here. Also gemini 2.5 is being deprecated any day now and is a dinosaur. Shouldn't rely on it for any form of tool calling really. I wouldn't at least. Not an open webui issue. Not reproducible with any newer gemini model or other models.

    Classic298 · GitHub · Aug 10, 2026
  7. 7

    ## Summary A five-model advisor review of the newly merged model-tier taxonomy (`c266410`, agent-harness#309) converged on an author/reviewer split, but rejected making the heavy tier the default implementation tier. Recommended upstream policy: - roadmap/plan/supervise: Claude Opus 5 (`heavy`) - execute/repair: Claude Sonnet 5 (`regular`), with a recorded escalation to Opus 5 after repeated verification failure - plan-review/code-review/advise/security: Claude Fable 5 (`ultra`) - worker/econom…

    ViperJuice · GitHub · Jul 26, 2026
  8. 8

    ## Befund `tool_calls._chat_with_tools` setzt `temperature` bedingungslos in den Request. Der Quirk aus #1096 — die GPT-5-/o1/o3/o4-Reasoning-Familie akzeptiert ausschließlich den Default (1) und antwortet sonst 400 `unsupported_value` — ist auf diesem Pfad nie nachgezogen worden. `chat` und `describe_image` haben ihn. Konkret heißt das: ein natives Tool-Calling gegen `gpt-5-mini`, `o3` oder Verwandte läuft heute in einen 400, und zwar ohne Netz — der Tools-Pfad hat auch keinen Temperature-Fall…

    arn0ld87 · GitHub · Aug 11, 2026
  9. 9

    ## Scope Optimize agent frontmatter across all 24 agent definitions and migrate the Claude Opus model generation, then close the resulting runtime routing and loop-timestamp gaps. ## Changes - Normalize frontmatter field order and `reasoning` blocks across all 24 agents - Migrate nine Opus 4.8 agents to Claude Opus 5; keep seven agents on Sonnet 5 - Add `claude-opus-5`, `claude-sonnet-5`, and `claude-sonnet-4.5` capability metadata plus provider aliases for copilot, claude-code, and anthropic-a…

    jnPiyush · GitHub · Jul 27, 2026

Rankings synthesized from community evidence and open benchmarks. See methodology. Not driven by vendor marketing.