JS Wei (Jack) Sun

LLM 0.32 adds agent hooks, LFM2.5 matches a 120B teacher, MiniMax-H3 hits M5 Max

Three unrelated developer-tooling drops land today: Willison's CLI grows agent hooks, LFM2.5 claims a 120B match, MiniMax-H3 ports to MLX.

LLM 0.32 adds agent hooks, LFM2.5 matches a 120B teacher, MiniMax-H3 hits M5 Max

TL;DR

  • LLM 0.32 ships reasoning traces, MCP, and Git-style logs — Willison’s biggest release since launch.
  • LFM2.5-2.6B matches 96-98% of a 120B teacher’s tool-calling after one SFT epoch.
  • Liquid’s license revokes commercial rights above $10M annual revenue.
  • MiniMax-H3 renders a 15-second clip on an M5 Max in ~45 minutes.
  • MiniMax weights cap at 768p — the advertised 2K stays behind the paid API.

Three unrelated developer-tooling stories carry the day, and no single frame holds all three. LLM 0.32 turns Simon Willison’s CLI into a real agent framework — reasoning traces, server-side tools, MCP, a Git-style content-addressable log — with pause/resume hooks that feel less optional once Claude 5’s RL-fried destructive-edit reputation is factored in. Liquid’s LFM2.5-2.6B posts a striking 96-98% match to a 120B teacher on tool-calling after one SFT epoch, though independent multi-turn benchmarks land far below the IFBench headline and the license cuts off commercial use above $10M revenue. MiniMax-H3’s MLX port runs a 15-second clip on an M5 Max MacBook Pro in about 45 minutes, but the downloadable weights cap at 768p and the community license excludes the US, UK, EU, and South Korea.

Read each on its own terms — the shared thread is only that all three land in the local-inference lane on the same day.

LLM 0.32 turns Willison’s CLI into an agent framework

Source: simon-willison · published 2026-08-04

TL;DR

  • LLM 0.32 ships reasoning traces, server-side tools, and a Git-style content-addressable log — Willison’s biggest release since launch.
  • A companion llm-anthropic 0.26 adds Claude 5, MCP, and pause/resume for human approval — primitives built for Datasette Agent.
  • The three-post drop lands mid-CLI-agent consolidation: developers are collapsing 7+ tools to IDE, agent, and gateway.
  • Claude 5’s “RL-fried” reputation for destructive edits makes the new human-in-the-loop hooks less optional than they look.

Willison finally says the word “agent”

The headline change across this three-post drop — LLM 0.32, the llm-anthropic 0.26 companion, and Willison’s own writeup tying them together — isn’t any single feature. It’s that Simon Willison has stopped pretending his tool isn’t an agent framework. Reasoning traces piped to stderr, server-side tools from OpenAI and Anthropic, a stream_events() API that unpacks reasoning/text/tool-call/attachment chunks separately, tool chains that pause for human approval and resume from stored history: this is the plumbing for “an LLM runs tools in a loop to achieve a goal,” which Willison now grudgingly accepts as the working definition of the term.

That definition matches what other practitioners are converging on. Jatin Bansal’s independent write-up of the “agent loop” describes the same shape LLM 0.32 now implements: a driver hands the model conversation history plus tool schemas, executes the emitted tool calls, and iterates 1. The refactor from a Conversation abstraction to a raw messages=[] array is Willison capitulating to the fact that modern APIs are stateless and pretending otherwise was leaking.

The stack, in one picture

flowchart LR
    CLI[llm CLI / Python API] --> Events[stream_events:<br/>reasoning / text / tool / attachment]
    Events --> Providers{Provider plugins}
    Providers -->|llm-anthropic 0.26| Claude[Claude 5 + WebSearch,<br/>CodeExecution, AnthropicMCP]
    Providers -->|built-in| OAI[GPT-5.6 + CodeInterpreter,<br/>WebSearch]
    Providers -->|llm openai endpoint| Local[Any OpenAI-compatible:<br/>LM Studio, Gemma 4, etc.]
    CLI --> Store[(Content-addressable<br/>SQLite log)]
    CLI -. pause/resume .-> Human[Human approval]

The llm openai endpoint command and the Git-style message store are the mechanical enablers of provider arbitrage — the strategic bet mgks.dev flagged in its Datasette Agent post-mortem, which argued Willison is deliberately pushing value into the “plugin and data access layer” so developers can swap GPT-5.6, Claude 5, or a local Gemma without rewriting agent code 2.

Timing against a shaky ecosystem

Two forces make this release land harder than a normal point-bump. First, the LiteLLM supply-chain incident: compromised PyPI versions 1.82.7–8 exfiltrated SSH keys and cloud secrets, pushing enterprise teams toward compiled gateways like Bifrost and Kong AI Gateway 3. LLM’s per-provider plugin surface and local SQLite logging read as a lower-blast-radius option, though a single-maintainer tool obviously doesn’t carry a production gateway’s auditing story. Second, the dev.to “engineer’s map” survey predicts developers will settle on roughly three tools — one IDE, one terminal agent (aider is the incumbent), one gateway 4. LLM is now credibly competing for the terminal-agent slot.

The Claude 5 problem the release inherits

The llm-anthropic 0.26 half of the drop is where MCP actually lands: the plugin wires up AnthropicMCP, letting Claude execute MCP calls against remote Datasette instances inside a single request/response cycle. Anthropic is bullish — Opus 5 posted a 100% pass rate on Zapier’s AutomationBench 5. But r/ClaudeAI users describe the same model as “extremely RL-fried,” an “eager junior dev” that comments out critical code and then forgets it did so 6.

Opus 5 acts like an ‘eager junior dev,’ showing overconfidence and occasional ‘amnesia’ by performing actions… and then forgetting it did so 6.

That’s the model Willison is now handing an MCP hose and a code executor. The new pause/resume primitives, framed in the release notes as ergonomic conveniences, are the actual load-bearing safety layer. The interesting question for 0.33 isn’t what else Willison bolts on — it’s whether a Unix-flavored, single-maintainer harness can carry the reliability burden that Claude 5–class agents and post-LiteLLM security expectations now demand.

Further reading


Liquid AI’s 2.6B model matches a 120B teacher after one SFT epoch

Source: huggingface-blog · published 2026-08-04

TL;DR

  • Base LFM2.5-2.6B hits just 34-63% on independent multi-turn tool-calling tests, far below its IFBench headline.
  • One SFT epoch lifts tool-call equivalence to 96-98% of a 120B teacher model.
  • The 2.6B model runs at 220 tok/s on an Apple M5 Max under 2.5 GB RAM.
  • LFM Open License terminates commercial rights above $10M annual revenue.

What actually shipped

Liquid AI’s new LFM2.5-2.6B is a 2.6B-parameter model trained on ~34T tokens, extended to a 128K context, and post-trained through a four-stage agentic pipeline: two SFT rounds on tool-use trajectories, per-domain teacher specialization, multi-domain on-policy distillation back into the 2.6B student, and RL inside real agent harnesses like OpenClaw and Hermes.

The efficiency numbers are the pitch. It hits 220 tokens/s on an Apple M5 Max, 113 tok/s on a Ryzen AI Max+ 395, ~30 tok/s on modern phones, and nearly 15,000 output tok/s at high concurrency on a single H100 7. Weights are on Hugging Face with day-one support for transformers, llama.cpp, vLLM, MLX, and ONNX. On IFBench (59.17) and ToolSandbox (77.83) it clears both Gemma-4 8B and Qwen3.5 9.7B — genuinely impressive for the size class. But Qwen3.5 still wins BFCLv4 tool use (60.13 vs. 56.88), AIME25 math (56.07 vs. 51.87), and LiveCodeBenchv6 coding (69.86 vs. 59.41). The “beats models 4× its size” line only holds on instruction following and sandbox tool use.

The zero-shot gap nobody’s advertising

Distil Labs’ independent evaluation is the sharpest counterweight to the headline numbers. Their multi-turn tool-calling benchmarks put base LFM2.5-2.6B accuracy at just 34-63% 8 — far below what IFBench and ToolSandbox suggest a developer should expect on day one.

The redemption arc is that the model is exceptionally tunable:

After just one epoch of SFT, the model reached 96-98% tool call equivalence, effectively matching the performance of a 120B teacher model 8.

That reframes the launch. LFM2.5-2.6B isn’t a drop-in local agent; it’s a small, fast, highly distillable substrate for one. Teams shipping a narrow tool set — a support agent, a data-extraction pipeline, a specific MCP surface — will get a lot from a few hundred labeled trajectories. Teams hoping to point it at an arbitrary agent harness and get the benchmark numbers zero-shot will be disappointed.

Two other rough edges

Licensing. The LFM Open License v1.0 grants broad royalty-free rights only to organizations under $10M annual revenue; above that, commercial rights terminate automatically and a paid agreement is required 9. It’s not OSI-compliant, and it awkwardly targets exactly the enterprises most likely to value air-gapped local agents. VentureBeat’s coverage of the earlier 350M release notes this is a consistent Liquid AI pattern rather than a one-off 10.

Tool-call plumbing. The model uses a “Pythonic” tool-call format wrapped in custom <|tool_call_start|> / <|tool_call_end|> special tokens. Ollama and llama.cpp parsers frequently fail to recognize these, either surfacing them as raw text or throwing server errors, and MCP multi-server setups can trigger “token blindness” where the model picks a tool but omits the wrapper 11. Day-one support at the weights level is real; day-one support at the harness level is not.

Takeaway

Treat LFM2.5-2.6B as what the evidence says it is: a fast, memory-cheap distillation target with an excellent instruction-following ceiling and a rough zero-shot tool-calling floor. Independent hands-on comparisons of the peer 2026 small-model tier (Gemma 4, Qwen 3.5, Ministral 3) already show benchmark parity poorly predicts real workloads 12. Budget an SFT pass, read the license, and expect to patch your harness’s tokenizer before the demo works.


MiniMax-H3 runs on M5 Max at 768p, 45 min per 15s clip

Source: simon-willison · published 2026-08-04

TL;DR

  • PipeNetwork’s MLX port of MiniMax-H3 renders a 15-second clip on an M5 Max MacBook Pro in ~45 minutes.
  • Downloadable weights cap at 768p — the advertised “native 2K” needs a closed H3-Regenerate-2K stage behind MiniMax’s paid API.
  • H3’s Community License excludes the US, UK, EU, and South Korea — narrower than Alibaba’s Apache-2.0 Wan 2.2.
  • In the 8-bit MLX build, --use-sage-attention emits pure noise because the DiT mis-routes low-precision attention calls.

The demo works

Simon Willison cloned PipeNetwork/minimax-h3-mlx, downloaded ~115 GB of weights, and got a coherent 15-second clip of “a rainbow colored skunk leaps over a mossy log in a supermarket” out of an M5 Max MacBook Pro in just under 45 minutes. The visuals held together; the audio came out as “weird speech-like garbage” because he skipped the prompting guide. That guide isn’t optional decoration — Evolink’s Hailuo 3 API writeup notes MiniMax mandates a rigid five-block structure (Subject, Action, Environment, Camera, Sound), and deviations tend to produce exactly the audio artifacts Willison saw 13.

That’s the good news. The rest of the picture is more complicated than a working generate.py suggests.

What the local build isn’t

Two things the hero clip doesn’t advertise. First, the downloadable H3-Base weights top out at 768p; the “native 2K” MiniMax marketed at launch runs through a closed-source H3-Regenerate-2K stage that only exists behind the paid API 14. Willison’s local render is the deliberately capped tier of the actual product.

Second, “open-weight” is doing heavy lifting. The MiniMax H3 Community License explicitly excludes the US, UK, EU, and South Korea from its “Applicable Territory” — a hedge against evolving Hollywood copyright litigation 14. For comparison, Alibaba’s Wan 2.2 ships under Apache 2.0 with no such carve-outs 15. If you’re a US developer running this on a MacBook, you’re already outside the license’s covered geography.

ModelLicenseLocal ceiling2K path
MiniMax-H3Community (excludes US/UK/EU/KR)768pClosed API only 14
Wan 2.2Apache 2.0FullSelf-hostable 15

Quality beyond the hero shot

Reviewers running H3 at length report a consistent failure mode dubbed the “Shot-4 Test”: subject identity drifts by the fourth cut in a sequence, and characters can end up “anatomically absurd” or embedded in geometry that melts mid-shot 16. One reviewer’s summary is worth quoting directly:

Accurate speech says nothing about the accuracy of the pictures behind it.

H3 optimizes temporal audio alignment aggressively — which is what makes the demos feel novel — but the spatial logic underneath is fragile past the single-shot showcase 16.

Bugs in the MLX path

Two implementation edges are worth flagging for anyone repeating Willison’s run. A community optimization prunes ~40% of “modulation weights” into a lookup table, shrinking the ~123 GB footprint to ~42 GB with no reported quality loss 17 — a smaller MLX build along those lines would meaningfully lower the storage bar Willison hit. And there’s a live bug in the 8-bit path: enabling --use-sage-attention causes the H3 Diffusion Transformer to mis-route low-precision attention calls and emit pure noise, with users also reporting 83°C thermal peaks and crashes around 14 minutes into long renders on discrete GPUs 18. Willison’s default-flags run happened to sidestep it.

The takeaway: MLX-on-Apple-Silicon can now host a frontier omni-modal video model in a coffee break’s worth of compute. Just don’t confuse the port with the product MiniMax is actually selling.

Round-ups

ChatGPT Work reverse-engineered: memory, scheduling, browser use exposed

Source: latent-space

ChatGPT Work, OpenAI’s enterprise agent aimed at a billion users, gets an external teardown covering seven subsystems: Memory, Proactivity, Scheduling, Browser Use, Plugins, Skills and Tools. The reconstruction maps how each piece interoperates, giving builders a reference architecture for agent-style products beyond the marketing surface.

Megakernels return as Cursor ships and GPU engineers debate fusion

Source: latent-space

Megakernels — the single-kernel-per-model GPU compilation trick once written off — resurface in an engineering debate paired with a fresh Cursor launch. The pattern trades scheduler overhead for compile complexity, and its revival signals renewed appetite for squeezing latency out of inference stacks.

condense-json 1.1 adds structural replacements and object merges

Source: simon-willison

The JSON-shrinking library from Simon Willison follows its 1.0 release with non-string replacement values and merge-based diffs between similar objects, letting condense_json store key updates and deletions. Hypothesis-powered round-trip property tests now guard the encode/decode symmetry.

Footnotes

  1. jatinbansal.com — ‘The Agent Loop’https://jatinbansal.com/ai-engineering/agent-loop/

    The ‘driver’ (the code running the agent) provides the model with a context of conversation history and tool schemas; the model then emits tool calls, which the driver executes

  2. mgks.dev — ‘Datasette Agent: when three years of tooling finally converge’https://mgks.dev/blog/2026-05-25-datasette-agent-when-three-years-of-tooling-finally-converge/

    shifts value away from the specific model used and into the ‘plugin and data access layer,’ allowing developers to arbitrage between different LLM providers based on price and performance

  3. developersdigest.tech — Best CLI Tools for AI Development 2026https://www.developersdigest.tech/blog/best-cli-tools-for-ai-development-2026

    Compromised PyPI versions (v1.82.7–8) were found to exfiltrate SSH keys and cloud secrets, leading many enterprise teams to migrate toward compiled, more secure alternatives like Bifrost or Kong AI Gateway

  4. dev.to — ‘Coding CLIs in mid-2026: the engineer’s map’https://dev.to/soulentheo/coding-clis-in-mid-2026-the-engineers-map-and-what-changed-in-30-days-23p4

    developers frequently start with 7+ tools but eventually consolidate to a minimal stack consisting of one IDE, one terminal agent (aider), and one gateway

  5. Anthropic — Claude Opus 5 announcementhttps://www.anthropic.com/news/claude-opus-5

    Opus 5 topped Zapier’s AutomationBench with a 100% pass rate, effectively managing multi-step business workflows that previous models failed

  6. r/ClaudeAI — ‘Opus 5 extremely RL-fried and mistake-prone’https://www.reddit.com/r/ClaudeAI/comments/1v92csh/opus_5_extremely_rlfried_and_mistakeprone_for/

    Opus 5 acts like an ‘eager junior dev,’ showing overconfidence and occasional ‘amnesia’ by performing actions (like commenting out critical code) and then forgetting it did so

    2
  7. AI Weekly newsletterhttps://aiweekly.co/alerts/liquid-ai-ships-lfm25-26b-a-phone-ready-agent-model

    Liquid AI ships LFM2.5-2.6B, a phone-ready agent model… 220 tokens/s on Apple M5 Max, under 2.5 GB memory, positioned as a private on-device alternative eliminating per-token cloud costs

  8. Distil Labs writeup via r/neuralnetworkshttps://www.reddit.com/r/neuralnetworks/comments/1r6h27e/knowledge_distillation_for_multiturn_tool_calling/

    out-of-the-box multi-turn tool calling is ‘sloppy’—yielding only 34–63% accuracy—[but] exceptionally responsive to task-specific fine-tuning… After just one epoch of SFT, the model reached 96–98% tool call equivalence, effectively matching the performance of a 120B teacher model

    2
  9. Liquid AI LFM Open License v1.0 docshttps://docs.liquid.ai/lfm/help/model-license

    Organizations generating less than [$10M USD annual revenue] are granted broad, royalty-free rights… Once a legal entity or its affiliates exceed this revenue cap, the right to use the model for ‘direct or indirect commercial advantage’ under the open license terminates automatically

  10. VentureBeat on LFM2-350Mhttps://venturebeat.com/technology/liquid-ais-smallest-model-yet-lfm2-5-230m-beats-models-4x-its-size-at-data-extraction-can-run-anywhere

    Liquid AI’s smallest model yet, LFM2-350M, beats models 4x its size at data extraction, can run anywhere — a pattern the company has repeated with the 2.6B release aimed at agentic tool use

  11. LFM2.5-2.6B Hugging Face model cardhttps://huggingface.co/LiquidAI/LFM2.5-2.6B

    native ‘Pythonic’ tool-calling format wraps function calls in specialized <|tool_call_start|> and <|tool_call_end|> tokens… parsers in Ollama and llama.cpp often fail to recognize these tokens, displaying them as raw text or triggering server errors

  12. XDA Developers hands-on comparisonhttps://www.xda-developers.com/tested-gemma-4-qwen-3-5-ministral-3-for-vision-tasks-only-one-understood-the-assignment/

    tested Gemma 4, Qwen 3.5, Ministral 3 for vision tasks — only one understood the assignment… advertised benchmark parity does not always translate to reliable real-world behavior on constrained hardware

  13. Evolink.ai — Hailuo 3 API guidehttps://evolink.ai/blog/hailuo-3-api-guide

    2K API output is priced at roughly $0.13 per second, approximately one-twelfth the cost of ByteDance’s Seedance 2.5… documentation mandates a rigid 5-block structure: Subject, Action, Environment, Camera, and a dedicated Sound/Ending block.

  14. RunPod blog — ‘MiniMax-H3: the open-weight omni-modal video model and what it takes to run it’https://www.runpod.io/blog/minimax-h3-the-open-weight-omni-modal-video-model-and-what-it-takes-to-run-it

    The MiniMax H3 Community License specifically excludes use in the United States, United Kingdom, European Union, and South Korea… the downloadable H3-Base model only supports 768p resolution; native 2K relies on a proprietary H3-Regenerate-2K stage that remains closed-source and accessible only via the company’s paid API.

    2 3
  15. Arena.ai text-to-video leaderboardhttps://arena.ai/leaderboard/text-to-video

    Wan 2.2 is released under the permissive Apache 2.0 license, allowing unrestricted commercial use… MiniMax-H3, while marketed as ‘open-weight,’ uses a more restrictive Community License… its most advanced ‘In-Context Regeneration’ features are currently locked behind a serverless API.

    2
  16. Trilogy AI Substack — MiniMax H3 reviewhttps://trilogyai.substack.com/p/minimax-h3-ai-video

    Accurate speech says nothing about the accuracy of the pictures behind it… the model may produce perfectly synced speech for a character whose anatomy is ‘absurd’ or whose physical surroundings melt during the shot; it frequently loses subject identity by the fourth shot in a sequence — a failure mode dubbed the ‘Shot-4 Test’.

    2
  17. Hugging Face blog — ResterChed, ‘MiniMax H3 / Hailuo 3.0’ reviewhttps://huggingface.co/blog/ResterChed/minimax-h3-hailuo-3-0

    By pruning ‘modulation weights’ (~40% of parameters) into a lookup table, engineers shrunk the memory footprint from 123GB to roughly 42GB without loss in quality, allowing the model to fit on consumer GPUs like the RTX 3060.

  18. Hugging Face discussion #12 on MiniMaxAI/MiniMax-H3https://huggingface.co/MiniMaxAI/MiniMax-H3/discussions/12

    Enabling —use-sage-attention causes the 8-bit model to produce ‘pure noise’ rather than a coherent signal… the H3 Diffusion Transformer fails to route low-precision attention calls correctly; users report thermal peaks up to 83°C and system crashes after ~14 minutes of generation.

Jack Sun

Jack Sun, writing.

Engineer · Bay Area

Hands-on with agentic AI all day — building frameworks, reading what industry ships, occasionally writing them down.

Digest
All · AI Tech · AI Research · AI News
Writing
Essays
Elsewhere
Subscribe
All · AI Tech · AI Research · AI News · Essays

© 2026 Wei (Jack) Sun · jacksunwei.me Built on Astro · hosted on Cloudflare