In KoboldCpp we went with a different approach. Instead of relying on a models tool calling format we enforce json conformance and ask the model if it would like to use a tool. Opens up tool usage in models which are smart but lack native tool calling formats. To the user its a regular chat completions endpoint. AGPL.