Modelwire
Subscribe

llm CLI fixes tool-call JSON bug across OpenAI providers

Illustration accompanying: llm 0.31.1

Simon Willison's llm CLI tool reached version 0.31.1 with a targeted fix addressing a JSON serialization failure in OpenAI's Chat Completion API when tool calls contain empty arguments. The bug surfaced during testing of the llm-meta-ai plugin, highlighting a real friction point in multi-provider LLM tooling where edge cases in function-calling protocols diverge across implementations. For developers building LLM applications that rely on structured tool use, this fix removes a silent failure mode that could corrupt inference pipelines.

Modelwire context

Explainer

The fix is small in scope but points to a structural problem: function-calling specifications are not fully standardized across providers, meaning edge cases like empty argument objects are handled inconsistently, and failures often surface silently rather than throwing explicit errors that developers can catch.

This patch is a direct downstream consequence of the llm-meta-ai 0.1 release covered here the same day, where Willison added support for Meta's muse-spark-1.1 model to his CLI tool. Integrating a new provider is precisely the kind of stress test that exposes protocol divergence, and that is exactly what happened here. The broader context is worth noting: Meta is simultaneously building out its own inference API while investing in proprietary silicon (per TechCrunch's coverage of Meta's chip production timeline), which means the surface area for these kinds of cross-provider compatibility gaps is expanding, not shrinking. Every new provider added to a multi-model tool is another opportunity for subtle spec differences to corrupt a pipeline.

If the llm-meta-ai plugin surfaces additional serialization or schema mismatches in the next few releases, that is a signal that Meta's function-calling implementation diverges from OpenAI's spec more broadly, not just in the empty-arguments edge case.

This analysis is generated by Modelwire’s editorial layer from our archive and the summary above. It is not a substitute for the original reporting. How we write it.

MentionsSimon Willison · llm · OpenAI · llm-meta-ai

MW

Modelwire Editorial

This synthesis and analysis was prepared by the Modelwire editorial team. We use advanced language models to read, ground, and connect the day’s most significant AI developments, providing original strategic context that helps practitioners and leaders stay ahead of the frontier.

Modelwire summarizes, we don’t republish. Simon Willison originally reported this story as llm 0.31.1”. The full content lives on simonwillison.net. If you’re a publisher and want a different summarization policy for your work, see our takedown page.

llm CLI fixes tool-call JSON bug across OpenAI providers · Modelwire