Skip to main content
Benchmarking Open Models on Custom Tooling: Is It Agentic Enough?

Benchmarking Open Models on Custom Tooling: Is It Agentic Enough?

What BFCL, AgentBench, and GAIA actually tell you — and what only your own harness can reveal

Public benchmarks show which open models handle tool calling, but your own API schemas require a custom harness. Here's what the data shows and how to evaluate.

When you swap a cloud-hosted agent endpoint for a self-hosted open model, the first question is almost never "is it fast?" — it's "will it call my tools reliably?" Standardised benchmarks measure general capability; they do not tell you whether a given model will correctly dispatch a create_ticket() call with the right JSON schema on your internal API, handle a null-able nested field gracefully, or know when not to invoke a tool at all.

This synthesis covers what public benchmark data shows about agentic capability across open model families, how to instrument your own evaluation harness, and which hardware configurations the broader community has documented as sufficient for low-latency agent loops.

What "Agentic Enough" Actually Means for Custom Tooling

Agency in language models is conventionally measured along two axes: task persistence (can the model execute multi-step plans without drifting?) and tool-call accuracy (does it reliably emit well-formed, semantically correct function calls?). A model can score well on one and poorly on the other.

The distinction matters immediately when you own the tooling. A chatbot that occasionally emits malformed JSON costs you a retry. An agent coordinating a five-step workflow — searching a knowledge base, filing a ticket, updating a record, notifying a webhook, and logging the action — needs both axes to hold across the full chain, not just the first step. A single hallucinated argument in step three cascades.

Per the Berkeley Function Calling Leaderboard, tool-calling performance varies substantially across models even at similar parameter counts. Critically, the BFCL evaluates relevance detection separately from accuracy: the ability to recognise when a tool call is not warranted. Community inspection of leaderboard results consistently shows that relevance detection scores lag raw accuracy scores across most model families — which explains why agents on custom tooling often over-call tools they have no business invoking.

Standard Public Benchmarks as a Starting Point

Three public benchmarks give the most actionable signal for agentic evaluation before you build your own harness.

Berkeley Function Calling Leaderboard (BFCL)

The BFCL, maintained by the UC Berkeley Gorilla team, evaluates models on function-calling tasks across Python, Java, SQL, and REST schemas. It scores simple single-call accuracy, multi-turn conversational accuracy, and parallel-call accuracy separately — a separation that matters because many production tool stacks require parallel dispatch (simultaneously calling a search API and a user lookup, for example). Models that score high on simple calls but drop sharply on parallel calls are a predictable liability in multi-tool agent loops.

AgentBench

AgentBench (THUDM, 2023) evaluates open and closed models across eight distinct environments: operating system tasks, database queries, knowledge graph navigation, digital card games, lateral thinking puzzles, household tasks, web shopping, and web browsing. Community evaluation results on AgentBench reveal a consistent gap between models with explicit agentic instruction-following fine-tuning and base instruct variants — a gap that narrows only partially with quantization, and not at all for multi-environment generalisation.

GAIA

The GAIA benchmark from Meta FAIR and HuggingFace tests general AI assistants on multi-step tasks combining web search, file handling, and reasoning. GAIA Level 1 tasks require one to two tool invocations; Level 3 tasks frequently require five or more chained calls with state management between them. Public leaderboard results show most sub-14B open models peak around Level 1 with significant drop-off at Level 2 — a practical calibration point before committing a smaller model to a complex pipeline.

Building Your Own Tool-Calling Harness

Standard benchmarks measure general tool-calling on curated schemas. Your production tooling has its own field names, nesting depth, optional versus required arguments, and error response contracts. A harness that validates against those specifics will surface failure modes that BFCL and AgentBench miss entirely.

Instrument at the Schema Boundary

The most reliable evaluation unit is the tool call itself, not the final task outcome. Log every function call the model emits: the function name, the argument dict, whether the schema validated, and the round-trip latency. Track three metrics separately:

MetricWhat it measuresWhy it matters
Schema accuracyDid the model emit valid JSON conforming to your function schema?A schema failure breaks the chain immediately
Argument accuracyAre argument values semantically correct for the test case, not just syntactically valid?Catches confident-but-wrong calls
Relevance discriminationAcross mixed inputs, does the model correctly call and correctly abstain?Over-calling is as costly as under-calling

Build a Golden Set of Tool-Calling Scenarios

Collect 50–200 real production inputs that caused ambiguous or incorrect tool dispatch during development. Annotate each with the correct expected calls. Run each open model candidate against this golden set before any A/B routing decision. Community practitioners on r/LocalLLaMA consistently report this is more predictive of production behaviour than any off-the-shelf benchmark score, precisely because your schema shapes are unique.

For more context on which open models ship with the strongest baseline tool-calling capability on consumer hardware, see which open LLMs actually handle tool-calling on an RTX 3060 and the GLM-5.2 vs Qwen3 comparison on 12 GB VRAM.

Stress-Test for Multi-Turn State Retention

Single-turn tool-call benchmarks do not expose state-management failures. Set up a test harness that runs five- to ten-step agent chains, checks at each step whether the model's next tool call correctly uses the output of the previous one, and flags early termination if it halluccinates a field that does not exist in the prior response. Track completion rate — the fraction of chains that finish without a hallucinated call — as a primary metric alongside schema and argument accuracy.

Which Open Models Lead on Tool-Calling

Community evaluation results and public leaderboard data point to several model families as strong candidates for self-hosted agentic workloads.

Model familyParameter tierTool-calling supportKey public signal
Llama 3.1 / 3.38B, 70BNative (JSON mode)Strong multi-turn retention per BFCL community submissions; 70B variant materially more reliable than 8B on chained calls
Qwen2.57B–72BNativeConsistently high on BFCL across size tiers; 14B and 32B hit a strong efficiency-accuracy balance for constrained VRAM
Mistral Nemo / 7B v0.312B / 7BNative (function-calling)Mistral's v0.3 checkpoint introduced native tool calling; Nemo adds broader multilingual and longer-context coverage
GLM-5.2VariousSupportedPer the GLM-5.2 open-weights review, strong instruction-following; recent BFCL community submissions show competitive function-calling scores

For a broader look at where GLM-5.2 sits relative to peers in the open-weights rankings, see GLM-5.2 is now the most intelligent open-weights model.

The Quantization Tradeoff for Agentic Workloads

Running a 70B model in 4-bit GGUF quantization on a 24 GB GPU changes its tool-calling accuracy relative to higher-precision runs. Community benchmarks on Ollama and llama.cpp consistently show that Q5_K_M and Q6_K quantizations preserve more function-calling accuracy than Q4_K_M — specifically on parallel-call and nested-argument scenarios where lower precision introduces more schema drift. For agentic workloads where a single malformed call breaks a chain, the higher quantization tier is generally considered worth the additional VRAM cost by community practitioners. See Ollama + RTX 3060 for self-hosted workflows for a practical look at quantization tradeoffs on consumer hardware.

Hardware Considerations for Local Agent Loops

Agent loops introduce a different resource profile than single-turn inference. The model receives tool call outputs back as context across multiple turns, expanding the effective context window with each step. Hardware sizing for agentic workloads should account for peak context growth, not just weight memory.

VRAM as the primary constraint. A 7B model in Q4 quantization requires roughly 4–5 GB of VRAM for weights, leaving headroom for context on a 12 GB card. A five-step agent loop accumulating tool outputs can push context to 8K–16K tokens, which can drive peak VRAM usage materially higher depending on KV cache configuration. Community documentation on r/LocalLLaMA treats the RTX 3060 12 GB as a practical floor for 13B agentic workloads; 24 GB cards expand the viable range to 34B quantized models.

Context window handling. Models vary in how gracefully they handle long-context agentic prompts. Community observations document that tool-call accuracy in multi-turn chains can degrade somewhere between 8K and 32K tokens depending on the model family — partly a model capability issue, partly an inference engine configuration issue (RoPE scaling and attention sink settings matter). Identify your model's effective accuracy cliff during evaluation, not in production.

Multi-instance parallelism. Running multiple parallel agent workers on the same card requires multiplying the per-instance VRAM estimate. Per Ollama's tool support documentation, Ollama supports serving multiple models concurrently with configurable VRAM partitioning — useful for running a small dispatcher model alongside a larger reasoning model in a hierarchical agent architecture.

For setups that separate the LLM backend from the front-end interface across devices, see Open WebUI on a Raspberry Pi 4 feeding an RTX 3060 rig. For background on the open-source GPU driver ecosystem that underpins Linux-based agentic deployments, see NVK Vulkan driver DLSS support for the RTX 3060.

Single vs. Dual GPU Configurations for 70B Agentic Workloads

For 70B agentic workloads, the question of splitting across two smaller GPUs versus running a single larger card comes up frequently. The tradeoff is covered in depth at dual RTX 3060 vs. a single larger GPU for Llama 70B. For agentic loops specifically, PCIe bandwidth between dual-GPU configurations adds latency on every inter-layer communication step — a cost that compounds across multi-turn agent chains more than it does for single-turn inference, making the single-large-GPU path generally preferable when latency per chain step is the bottleneck.

Reading Benchmark Results Critically

Several patterns recur when practitioners port public benchmark numbers to private tool stacks:

  • Schema specificity matters. Models that perform well on BFCL's generic Python function schema can still fail on deeply nested, nullable-field-heavy enterprise schemas. Test your actual schemas, not generic surrogates.
  • Model size is not a reliable proxy for tool-calling quality. Per current BFCL standings, several 7B models outperform some 13B models on parallel-call tasks. Evaluate by task type, not size tier alone.
  • Temperature settings affect schema compliance. Community results consistently show lower temperatures (0.0–0.2) improve JSON schema compliance at the cost of reduced response diversity. For deterministic tool dispatch, low temperature is the documented community default.
  • Context length affects accuracy non-linearly. Tool-call accuracy in multi-turn chains typically degrades at some point between 8K and 32K tokens depending on the model family and inference configuration. Identify the cliff during evaluation.

FAQs

Q: Can I run a meaningful agentic benchmark on a single RTX 3060? Yes, for 7B and some 13B models. The RTX 3060 12 GB can hold a 7B model in Q5 quantization and sustain multi-turn agent chains; the VRAM ceiling becomes binding with 13B models at higher quantization tiers or with long accumulated tool-output contexts. Community results on r/LocalLLaMA document this ceiling extensively.

Q: Which open model has the best tool-calling capability right now? Per the Berkeley Function Calling Leaderboard, Qwen2.5 and Llama 3.3 70B consistently place near the top among open models. Leaderboard rankings update with each major release — check the live leaderboard rather than treating any snapshot as definitive.

Q: Does quantization hurt tool-calling accuracy more than general question-answering? Community comparisons suggest yes. Structured output tasks like JSON function calling are more sensitive to quantization than open-ended QA. Q5_K_M and Q6_K quantizations are more commonly recommended for agentic pipelines than Q4_K_M, though exact gaps vary by model family.

Q: What is the minimum context window I need for a five-step agent loop? Depends on tool output verbosity, but a five-step loop accumulating typical API responses commonly reaches 8K–12K tokens. Models with 32K+ native context are advisable; most current flagship open models support this, though effective accuracy within that window varies.

Q: Should I benchmark on BFCL or build my own evaluation set? Both. BFCL and AgentBench give calibrated starting points for comparing model families. Your own golden set — real production queries annotated with expected tool dispatches — gives production-fidelity signal that no public benchmark can substitute, because your schema shapes and optional/required field patterns differ from anything the leaderboards test.

Q: Is Ollama sufficient for running agent loops, or do I need a dedicated inference server? Per Ollama's published tool-support documentation, Ollama supports native tool calling for compatible models and is widely used for local agentic development. For high-throughput production deployments with many concurrent workers, vLLM and text-generation-inference offer more granular concurrency controls, but Ollama is a practical and well-documented starting point.

Citations and sources

  • https://gorilla.cs.berkeley.edu/leaderboard.html — Berkeley Function Calling Leaderboard (BFCL), UC Berkeley Gorilla team
  • https://arxiv.org/abs/2308.03688 — AgentBench: Evaluating LLMs as Agents, THUDM (2023)
  • https://huggingface.co/spaces/gaia-benchmark/leaderboard — GAIA benchmark leaderboard, Meta FAIR / HuggingFace
  • https://ollama.com/blog/tool-support — Ollama native tool/function-calling support documentation
  • https://huggingface.co/spaces/open-llm-leaderboard/open_llm_leaderboard — Open LLM Leaderboard, HuggingFace

This piece is editorial synthesis based on publicly available information. No independent first-party benchmarking is reported.

Sources

— SpecPicks Editorial · Last verified 2026-07-06

More guides & deep dives from the SpecPicks archive

Browse all articles & guides →

More reviews from the SpecPicks archive

Browse all reviews →

More buying guides from SpecPicks

Browse all buying guides →