Different approach, which also works with Llama 3.0 8B: let the LLM write the tool invocation of choice in Python syntax, parse the LLM response with the Python AST package.
(PoC'y hackathon demo) code here: <a href="https://github.com/ndurner/aileen2">https://github.com/ndurner/aileen2</a>.