Towards Reliable Benchmarking: A Contamination Free, Controllable Evaluation Framework for Multi-step LLM Function Calling
Seiji Maekawa, Jackson Hassell, Pouya Pezeshkpour, Tom Mitchell, Estevam Hruschka
TL;DR
This work tackles contaminated, hard-to-compare evaluations of tool-augmented LLMs by introducing FuncBenchGen, a contamination-free framework that generates synthetic multi-step function-calling tasks framed as DAG traversals with tunable depth $d$, core nodes $n^\text{core}$, and distractor functions $n^\text{conn}$/$n^\text{dis}$. It formalizes multi-step function calling and provides a two-stage benchmark-generation pipeline (graph structure and function schema creation) to ensure scalable, controllable testing and realistic type-based linking of function schemas. Through experiments on seven LLMs, the authors show reasoning-optimized models outperform general-purpose ones yet struggle with long sequences and irrelevant CINs, and they identify Value Not Yet Known as a dominant failure mode. A simple mitigation—re-stating all known variable values at each step—produces substantial gains (e.g., GPT-5 improving from 62.5% to 81.3%), underscoring the importance of explicit state-tracking aids. Overall, FuncBenchGen provides a robust platform for dissecting TaLM function-calling capabilities and guiding evaluation-driven improvements for real-world tool use.
Abstract
As language models gain access to external tools via structured function calls, they become increasingly more capable of solving complex, multi-step tasks. However, existing benchmarks for tool-augmented language models (TaLMs) provide insufficient control over factors such as the number of functions accessible, task complexity, and input size, and remain vulnerable to data contamination. We present FuncBenchGen, a unified, contamination-free framework that evaluates TaLMs by generating synthetic multi-step tool-use tasks. The key idea is to cast tool use as traversal over a hidden function-dependency DAG where nodes are function calls and an edge between nodes represents one function consuming the output of another. Given a set of external function schemas, initial variable values, and a target variable, models must compose the correct call sequence to compute the target variable. FuncBenchGen allows users to precisely control task difficulty (e.g., graph size, dependency depth, and distractor functions) while avoiding data leakage. We apply our FuncBenchGen framework to evaluate seven LLMs on tool use tasks of varying difficulty. Reasoning-optimized models consistently outperform general-purpose models with GPT-5 significantly outperforming other models. Performance declines sharply as dependency depth increases. Furthermore, connected irrelevant functions prove especially difficult to handle. We find that strong models often make syntactically valid function calls but propagate incorrect or stale argument values across steps, revealing brittle state tracking by LLMs in multi-turn tool use. Motivated by this observation, we introduce a simple mitigation strategy that explicitly restates prior variable values to the agent at each step. Surprisingly, this lightweight change yields substantial gains across models. e.g., yielding a success rate improvement from 62.5% to 81.3% for GPT-5.
