What they did
The authors developed ToolLoop, a synthetic-data framework for teaching language models to invoke external functions. It decomposes generation into three stages: sampling combinations of function names as targets, deriving plausible user requests backward from those targets, and then deriving the corresponding tool calls forward.
At each stage, the generating model uses dynamic self-feedback to verify and iteratively refine its output rather than relying only on post-hoc filtering. The resulting 11K examples were used to train a 4B-parameter model, evaluated on the Berkeley Function Calling Leaderboard (BFCL) and ACEBench.
Key findings
- The trained 4B model achieved 86.40% BFCL accuracy in non-reasoning mode.
- An “Isolate” variant that excluded candidate functions overlapping with BFCL still reached 86.07%, a difference of 0.33 percentage points.
- On ACEBench, the model obtained 72.1% overall accuracy while using 18.3% as much training data as the referenced baseline.
Why it matters
The results suggest that controlling the composition of synthetic examples and correcting them during generation can produce more data-efficient tool-use training sets. This could reduce dependence on large collections of manually labeled interactions or inefficiently generated examples for function-calling models.
Caveats
The reported results concern a 4B model and two function-calling benchmarks, so it remains unclear how the method scales to larger models, noisier real-world APIs, or long multi-step tool interactions. The abstract also does not quantify synthesis cost, self-feedback iterations, or the contribution of each generation stage, while benchmark-function overlap is addressed only through the reported Isolate variant.