BFCL failure themes — Qwen3 thinking models

Root-cause themes for Berkeley Function Calling Leaderboard (v4) failures of three Qwen3 thinking models. Data: HuanzhiMao/BFCL-Result, snapshot 2025-12-16 — one pass per problem at temperature 0.001. Themes were labeled on a stratified sample of 70 failures per model (seed 0).

Companion analysis → Chain-of-thought length & correctness: does longer reasoning or backtracking (“wait”) predict wrong answers? (t = 1.0, 728k samples)

Task categories

What each category tests, and what is scored

BFCL v4 spans four kinds of task. They differ in what the model is asked to produce and — crucially — in what the grader checks: the emitted function call (AST match against ground truth), or the resulting state / answer value. Nothing here executes the target functions themselves except multi-turn, whose backend does.

Dataset

What BFCL v4 contains

10,306 scored test cases per model. "~prompt tokens" = the median full prompt we feed the model (system prompt + function schemas + question, chars/4) for single-turn tasks; multi-turn/agentic lengths are the median user text per episode.

Failure themes

What actually went wrong

Counts over the 70 sampled failures per model, one theme per failure. Click a row to browse its examples.

    Where it fails

    Accuracy by category

    Full benchmark, 10,306 tests per model. The official leaderboard overall weights these very differently from their test counts: non_live 10%, live 10%, irrelevance 10%, multi_turn 30%, agentic 40% — format_sensitivity excluded. That is why ~71-75% micro accuracy becomes 40.4 / 37.8 / 46.8 official (frontier reference, same formula and snapshot: Claude Opus-4.5-FC 77.5, Gemini-3-Pro-FC 68.1 — the gap is entirely multi_turn + agentic). Click a row to browse that category.

    Accuracy by task

    All 23 scored tasks

    Full data, sorted hardest first. Click a row to search its examples in the browser.

    Grader verdicts

    Error types over all failures

    Counts over every failed test in the full score files (8B 2,984 / 14B 2,836 / 32B 2,589 failures) — not the sampled subset. Click a row to search matching examples.

    Example browser

    210 labeled failures + 186 memory-recall passes

    Each failure example: the benchmark input (user request + available functions), the expected ground truth, the model's output, and the failure mode (theme + grader verdict). AST ground truth shows allowed values per argument (alternatives separated by |); agentic tasks show the accepted answer strings; multi-turn shows the reference call sequence per turn. The memory-recall passes (all 186 archive successes across the three backends, filter outcome = successes) show the full recall loop: the memory state injected in context, the CoT, any executed retrieval calls with their results, and the final answer. Striking pattern: only 5 of 186 passes execute a retrieval call at recall (4 of them Qwen3-32B on kv) — passing models answer by reading the context-injected memory, while retrieval calls appear more often in failures (42 of 1,209, mostly 32B kv). Recall-phase function calling is thus barely exercised by passes; the kv/vector archival APIs are the only place it is genuinely required.