llm CLI fixes tool-call JSON bug across OpenAI providers
Source published ·Modelwire updated
Original coverage: Simon Willison ↗·How Modelwire adds context

The development
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’s AI-generated summary of coverage from Simon Willison.
Modelwire analysis
ExplainerOur AI-generated reading of the wider context and the next developments to watch.
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 interpretation is generated from the summary above and available source metadata. Our methodology · Report an error
MentionsSimon Willison · llm · OpenAI · llm-meta-ai
How this coverage is produced
Modelwire uses AI to generate summaries and context from source headlines, snippets, and selected archive coverage. Automated checks do not verify every claim, and items are not routinely reviewed by a person before publication. Zacaria Solis operates the site. Read the linked source for the full evidence and report errors through our corrections process.
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.