Discourse AI: parallel tool calls silently dropped with Mistral (streaming)

Thanks a lot @sam for the quick fix, and @zogstrip for the quick repply

Everything works as expected :+1: and the result is great: now that the agent can request several reads in 1 response, my RAG test scenario uses 43% fewer LLM calls, spent 40% less time searching and reading, and cost 33% less.

I’ve verified it on 2026.10.0-latest (f18a1985b, includes #44270) with Mistral mistral-large-2512 (after removing my parallel_tool_calls: false workaround):

  • The network-free repro from my first post now returns every call: 2 of 2 and 3 of 3 in one chunk, also with partial_tool_calls and through Endpoints::Mistral#decode_chunk. One call per chunk still works. (The script needs a .flatten now, since process_streamed_message can return an array.)
  • With a real RAG agent and no workaround, Mistral sent 4 parallel reads in a single chunk, and all 4 were executed. Over 14 agent runs, every requested tool call was executed.

Thanks again!

2 Likes