Small language models are inexpensive to serve and can run on private infrastructure, but base models are often not good enough at multi-turn tool calling, and fine-tuning them needs per-API data that rarely exists.
Existing synthesis methods are too expensive for high-scale fine-tuning, as they often require mock operational environments for different domains and multiple LLM calls per generated conversation turn.
We introduce a fully automated, lightweight synthesis framework
That models each API as a finite-state machine, representing the system as abstract states that determine when each tool may be called, producing state-valid sequences of tools;
Sequences are translated into complete examples with a single LLM call.
Rather than optimize diversity, we set a target distribution over the number of turns, the tool sequence and task complexity.
We measure data quality by fine-tuning SLMs on generated trajectories
Showing that our FSM-based generation significantly improves downstream accuracy over an unmutated baseline and, against existing works, reaches 70.7% full accuracy over 63.4% and 53.7% with 3.6-6.6$\times$ fewer tokens.