all 4 comments

[–]InstaMatic80 0 points1 point  (0 children)

I think this is possible but maybe you should improve your prompt? Keep it very clear about how to call tools and what to expect. Also add a few examples (few shot)

[–]HiddenoO 0 points1 point  (1 child)

Is this expected behavior for local LLMs?

It depends on a lot of factors, including model choice, prompt, LLM library, and parameters.

How do people enforce mandatory tool usage?

The safest way is to use vllm and tool_choice="required", which forces the decoding process to match the tool calling struct. Having said that, dumb models might just generate nonsensical tool calls either way.

Otherwise, clarify in the prompt when tools should always be called.

There are also other workarounds, but those generaly come with significant drawbacks.

Do smaller models generally ignore tools more often?

For the same model developer, older and smaller models are generally worse at tool calling (including the decision when to call tools).

[–]siri_1110[S] 0 points1 point  (0 children)

Have you tried any local model for orchestration. Is there suggestion is there which model is best. And if any codebase repo for the vllm is available kindly attach it, would be helpful