Issue with kimi-k2-0905 model and tool calling via Pipecat's GroqLLMService (specifically for simple function calls)

We are experiencing an issue where the kimi-k2-0905 model consistently fails to perform tool calls, even for a simple “disconnect” function in our voice agent application.

This problem is specific to kimi-k2-0905. Other models (like gpt-oss, LLama) work perfectly using the exact same configuration within Pipecat’s GroqLLMService.

It seems the Kimi model is not correctly identifying the need to use the provided tools.

Has anyone encountered this model-specific issue with tool calling on the Groq platform? Any advice on configuration or prompt engineering is welcome.

2 Likes

I’m curious - is this specific to the tool call name “disconnect” (e.g. would renaming it to disconnectFromVoiceCall) prevent errors?

Kimi k2 can be weirdly particular about naming conventions.

I am wondering if this issue is still present? I am currently having an issue with an ‘endCall’ function that I am trying to implement, all other models works fine yet kimi consistently fails.

is Kimi just having problem with this tool / function schema, while others are doing fine? (Does renaming it / giving it a very verbose name help?)

Yes, it is very much a Kimi issue. I tried prompting very concisely and that didn’t seem to help much. I did create a custom function that ‘forces’ the proper tool to be called as it does try to call the tool, however it just is not in the proper format. Which is confusing to me. Other models work just fine, even gpt-oss-20b.

Is it possible to rename your tools - try using camelCase, kebab-case, underscore_names, etc with very very long descriptive names. to try to get Kimi to “get it” — looks like whatever verb/noun combination you have in your list of tools is tripping Kimi up