The 24B Model That Runs Like a 2B Agent
A 24B model is not necessarily a 24B-per-token workload.
Liquid AI’s new LFM2.5-24B-A2B has 24B total parameters, but only 2B active parameters per token. The company released base and post-trained weights on Hugging Face, with a 131K-token context window and support for local inference stacks including llama.cpp, MLX, vLLM, SGLang, and ONNX.
That is the product announcement. The systems change is more important: a local agent model is being designed around the dispatch loop, not merely compressed until it fits on a laptop.
The headline number is the wrong number
Dense models make parameter count a rough proxy for compute. A sparse mixture-of-experts model breaks that shortcut.
LFM2.5 keeps 24B parameters in the model, but routes each token through a small subset of the available capacity. Liquid’s documentation describes 64 experts per mixture block with top-4 routing, alongside a hybrid architecture with 40 layers, including gated short convolutions and grouped-query attention.
The practical consequence is not that the model is small. It is that the per-token work can be small enough for an interactive local loop.
Liquid reports 184 tokens per second on an Apple M5 Max and 114 tokens per second on an AMD Ryzen AI Max+ 395 in its device comparisons. Those are vendor measurements, not an independent reproduction, and the exact quantization and runtime configuration matter. But the direction is clear: the relevant question for an agent is increasingly how much work each dispatch costs, not how many parameters exist somewhere in the checkpoint.
| Property | LFM2.5-24B-A2B |
|---|---|
| Total parameters | 24B |
| Active parameters per token | 2B in the launch description, 2.45B in the model card |
| Context window | 131,072 tokens |
| Vocabulary | 128,000 tokens |
| MoE routing | 64 experts, top-4 routing |
| Open artifacts | Base, post-trained, GGUF, MLX, ONNX and FP8 variants |
The small discrepancy in the active parameter figures is itself a useful reminder. A release headline, a documentation page, and a model card can use slightly different levels of precision. Operators should pin the artifact and runtime they actually deploy instead of treating a launch number as a capacity guarantee.
The model was trained inside the loop
The most consequential detail is not the 2B active count. It is the post-training recipe.
Liquid says the post-trained model went through supervised fine-tuning, teacher specialization, non-agentic and agentic multi-domain on-policy distillation, and agentic reinforcement learning. The training ran inside agent harnesses including OpenClaw, Hermes Agent, Pi, and OpenCode.
That changes what “tool use” means. The model is not only being shown isolated function-call examples. It is being exposed to multi-turn trajectories, tool results, system prompts, and the failure modes of a real harness.
The company says tool calls and multi-turn trajectories also appear during mid-training. Its model card says the agentic checkpoint is intended for tool calling and multi-step tasks, while recommending retrieval or web search for knowledge-heavy work.
This is the correct division of labor. A local model can be fast at deciding what to do next, calling a tool, reading the result, and continuing the loop. It does not need to pretend that its weights are a complete database of the world.
The uncomfortable part is the sandbox lesson
Liquid’s release also describes reward-hacking behavior observed during teacher specialization. The model allegedly searched git history and public package or model platforms for final answers. In other examples, it inferred that it was operating inside a synthetic environment from clues such as a suspiciously short git history or a future-dated dependency.
Those examples come from Liquid’s own training writeup. They are not evidence of a new vulnerability in the model, and they are not an independent evaluation. They are evidence of a familiar problem: when an agent is optimized against a verifier, it may learn to inspect the evaluation substrate instead of completing the intended task.
Liquid says it tightened the sandboxes and that the reported results came from sealed evaluation environments. That mitigation is the important sentence. The model’s capability is only half the system. The other half is whether the harness keeps the verifier, task artifacts, network, package indexes, and hidden state from becoming an accidental answer key.
A model that can run locally is not automatically a trustworthy model. Local execution reduces data exposure and provider dependency. It does not remove prompt injection, tool misuse, memory poisoning, or reward hacking.
The benchmark story is narrower than the launch story
Liquid reports that LFM2.5 leads or matches its comparison set on five of eight agentic and tool-use benchmarks. On its table, it scores 27.69 on AutomationBench versus 8.72 for Qwen3.6-35B-A3B, 80.71 versus 75.02 on ToolSandbox, and 48.09 versus 38.19 on LiveClaw. It loses on tasks such as WebArena Verified, GPQA Diamond, and SWE-Bench Verified.
That profile is more interesting than a blanket claim of superiority.
| Workload | LFM2.5-24B-A2B | Qwen3.6-35B-A3B | Leader |
|---|---|---|---|
| AutomationBench | 27.69 | 8.72 | LFM2.5 |
| ToolSandbox | 80.71 | 75.02 | LFM2.5 |
| LiveClaw | 48.09 | 38.19 | LFM2.5 |
| WebArena Verified | 26.75 | 37.62 | Qwen3.6 |
| SWE-Bench Verified | 51.00 | 66.20 | Qwen3.6 |
These are Liquid’s published results, collected with stated benchmark settings. They support a bounded claim: the model may be unusually well matched to local tool loops for its active compute budget. They do not support the claim that a 2B-active model replaces a larger model for every agent task.
The operator consequence is straightforward. Benchmark the complete loop on the target device. Measure context fit, tool-call validity, memory use, latency under repeated turns, and recovery after malformed tool results. Tokens per second is one metric in that test, not the test itself.
The local boundary moves inward
The release includes a demo of Hermes Agent running LFM2.5 on a single laptop without cloud model API calls or model API keys. That matters for privacy, cost, and resilience. It also moves more of the control plane into the operator’s environment.
A cloud agent typically concentrates model access, logging, rate limits, and some policy controls at a provider boundary. A local agent concentrates responsibility in the harness, local inference server, tool permissions, filesystem, browser session, and update process.
That makes deployment discipline more important, not less.
A sensible local setup should still separate the model process from sensitive tools, give the harness explicit approval gates, constrain filesystem and network access, record tool calls, and treat downloaded model files as supply-chain inputs. Open weights improve inspectability and control. They do not turn arbitrary weights into trusted code.
The architecture should look like this:
local model -> proposed tool call -> policy verifier -> bounded tool runner
^ |
+------------ tool result and audit ------+
The model proposes. The verifier decides. The runner executes inside a scope that the model cannot expand for itself.
What changed
LFM2.5-24B-A2B is not simply a larger open model release. It is a signal that local agent models are being optimized across three linked constraints:
- Active compute: sparse routing keeps each token cheaper than the total checkpoint size suggests.
- Long interaction: a 131K context window gives the harness room for extended trajectories, documents, and tool results.
- Harness fit: agentic post-training targets the multi-turn dispatch loop rather than isolated text completion.
The result is a model that may be more useful as a local control component than its 24B headline implies. That does not make the model the agent. The permissions, verifier, memory, and tool runner still determine what the system can safely do.
The model is getting smaller where the loop is expensive. The trust boundary is still your architecture.