skillfed

bfcl-eval

Berkeley Function Calling Leaderboard (BFCL)

bfcl-eval v2026.3.23 580.5K downloads/30d#5,911 on PyPI12,994
Permissive license Apache 2.0 Active released

What it is and what it does

BFCL is a comprehensive evaluation framework for assessing how well large language models can invoke functions correctly. It goes beyond simple function-calling tests to include parallel calls, multi-turn interactions, agentic scenarios with web search, and memory management. The package provides both a command-line interface and programmatic API to generate model responses and evaluate their correctness against executable test cases.

The framework integrates with major LLM providers (OpenAI, Anthropic, Mistral, Cohere, Google, Qwen) and supports locally-hosted models via vllm or sglang backends. It uses tree-sitter for code parsing, faiss-cpu for semantic retrieval, and sentence-transformers for embeddings. Results are stored in configurable directories and can be logged to Weights & Biases. The package requires substantial setup—environment variables, API keys, and a project root directory—but is designed for researchers and practitioners benchmarking model capabilities at scale.

Use it for:

  • Benchmark a new LLM variant's function-calling accuracy against the Berkeley leaderboard test suite
  • Evaluate locally-hosted open-source models using vllm or sglang backends to compare with proprietary APIs
  • Test multi-turn agentic workflows where models must chain function calls with web search and memory
  • Generate and evaluate function-calling responses for a custom subset of test cases using --run-ids
  • Integrate function-calling evaluation into a CI/CD pipeline to track model performance regressions

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Evaluates and benchmarks large language models' ability to invoke functions correctly across diverse scenarios, from simple calls to multi-turn agentic interactions with web search and memory management.

Yes, if you are benchmarking or comparing LLM function-calling capabilities. The package is actively maintained, well-integrated with major LLM providers, and covers realistic multi-turn and agentic scenarios beyond simple function calls. Install friction is low and no security vulnerabilities are known. Caveat: setup requires careful environment configuration (BFCL_PROJECT_ROOT, .env, API keys) and the 32 dependencies are substantial; use only if you actually need comprehensive function-calling evaluation.

Install

bfcl-eval on PyPI

pip

pip install bfcl-eval

uv

uv add bfcl-eval

poetry

poetry add bfcl-eval

Installing bfcl-eval

Before you install

Low friction installation as a wheel; active maintenance with recent commits and strong repository engagement (12994 stars). Requires Python 3.10+. The 32 runtime dependencies are substantial but standard for ML evaluation work (requests, pandas, huggingface_hub, multiple LLM provider SDKs, tree-sitter for code parsing, faiss-cpu for retrieval).

License in practice

Apache 2.0 is permissive; you can use, modify, and distribute this package with minimal restrictions, provided you include the license notice.

Quickstart

pip install bfcl-eval

export BFCL_PROJECT_ROOT=/path/to/project
cp $(python -c "import bfcl_eval; print(bfcl_eval.__path__[0])")/.env.example $BFCL_PROJECT_ROOT/.env

bfcl generate --model gpt-4o-2024-11-20-FC --test-category simple_python

Python 3.10+ required; BFCL_PROJECT_ROOT environment variable must be set for PyPI installations to locate result and score directories; API keys for proprietary models (OpenAI, Anthropic, Mistral, etc.) must be configured in .env file.

Verify before relying

  • Whether the package supports evaluation of models beyond those listed in SUPPORTED_MODELS.md
  • Performance characteristics and typical runtime for full evaluation suites
  • Whether locally-hosted model evaluation (vllm/sglang backends) is production-ready or experimental

Package facts

License Apache 2.0 (permissive)
Python support supports the current Python release (>=3.10)
Install friction low — pure-Python wheel
Runtime dependencies 32 — requests, tqdm, numpy, pandas, huggingface_hub, pydantic, python-dotenv, tree_sitter, tree-sitter-java, tree-sitter-javascript, openai, mistralai, anthropic, cohere, typer, tabulate, datamodel-code-generator, google-genai, qwen-agent, mpmath, tenacity, writer-sdk, overrides, boto3, beautifulsoup4, html2text, rank_bm25, google-search-results, sentence-transformers, faiss-cpu
Maintenance actively maintained — 144 days since the last release
Last repo commit
First released
Downloads 580,493/month — #5,911 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: bfcl_eval-2026.3.23-py3-none-any.whl

Tags

llm function calling evaluationbenchmark model function invocationagentic function call testingmulti-turn function calling evalllm leaderboard evaluation framework
llm-evaluationfunction-callingbenchmarking

More Artificial Intelligence packages

Further reading