Define the task and the data boundary
Before a large model download, choose one job you can judge: answer a document question with a source, extract fields into JSON, or produce a patch that passes a test. That small check tells you more than an impressive model size. Also trace the whole workflow: a local model can still call a cloud tool.
LM Studio documents offline chat, document processing and local serving after the necessary models and runtimes are available. Model discovery, downloads and update checks require connectivity. Offline operation. Confirm the behavior of any plugins or external tools separately.
Pick a starting interface
| Need | Candidate to try | First verification |
|---|---|---|
| Desktop chat and document exploration | LM Studio | Open a downloaded model and test while disconnected |
| A local HTTP endpoint for an application | Ollama | Confirm which model is serving and its processor placement |
| Python-driven experiments on Apple silicon | MLX LM | Record package and model-artifact versions |
Ollama documents ollama ps for inspecting loaded models and processor placement. MLX LM provides command-line and Python workflows. These are documented entry points, not a ranking of speed. Ollama FAQ, MLX LM.
Estimate weights, then measure the full workload
The weight calculation is a lower bound. A four-billion-parameter model at four bits has approximately 2 GB of raw weights in decimal units. Eight billion parameters at four bits gives 4 GB. Neither number includes runtime overhead, context cache, activations, the application or the operating system.
For a 16GB Mac, choose a modest starting model and a bounded task, then observe memory pressure and responsiveness while the real task runs. Avoid a blanket promise that every model under a particular parameter count will be useful. Context settings and other applications can change the result substantially.
Keep your first experiment inspectable
Save the prompt, expected output, model identifier and software versions. Run once to observe loading, then repeat warm trials. Record first-token time, task correctness and memory alongside generation speed. If the task requires structured JSON, validate the schema; fluent text does not satisfy that requirement.
Begin without an agent attached to external services. Once the local inference step works, add retrieval and tools one at a time. Confirm what each tool can read, where it sends data and which actions require review.
Act on the result
If the model completes the task correctly but feels slow, isolate loading from generation and check the runtime settings. If it is fast but wrong, improve the task definition or model choice before buying hardware. If memory pressure is sustained, reduce workload demands and measure again.
Use the hardware planning tool, benchmark template and paired comparison method. For deployment requirements, see private local AI consulting.
Check the path beyond the model
A local model connected to a remote search tool is part of a mixed deployment. Draw the complete data path from source document to retrieval, prompt construction, inference and any external action. Record which component can send network requests and which account controls it. This makes the privacy boundary inspectable without implying that every local application behaves identically.
For a first trial, use a document you own with an answer you can verify. Record the source passage, ask a precise question and check whether the answer is supported. Then ask something absent from the document. A useful system should acknowledge missing evidence rather than fill the gap with a confident guess.
Retain both outputs alongside timing and memory observations. If the application becomes unresponsive while another program is open, that is relevant workload evidence. Do not remove the observation simply because a synthetic throughput run looked fast. Hardware recommendations should describe those practical constraints and the exact setup that was tested.
Sources and review notes
Official documentation checked October 14, 2026. Memory examples are theoretical weight calculations. No machine-specific throughput, speedup or battery-life result is claimed.
Owner evidence: M2 Max 64GB
Measured workload, not a hardware ranking.
Owner-supplied oMLX v0.7.0 screenshots show Code (Python), 128 output tokens, and a model label beginning Qwen3.6-35B-A3B-Uncensored-HauhauCS-Aggressive-Opti… . The full artifact and quantization are not visible.
| Input / batch | Generation tok/s | TTFT ms | E2E seconds | Peak GB reported |
|---|---|---|---|---|
| 1024 / 1× | 81 | 1076.3 | 2.662 | 19.89 |
| 4096 / 1× | 78.4 | 3956.5 | 5.595 | 21.79 |
| 1024 / 2× | 133.2 | 2085.7 | 4.47 | Not shown |
| 1024 / 4× | 213.1 | 3871.2 | 8.526 | Not shown |
At 2× and 4× batching, generation is aggregate throughput, not the rate each user receives. The screenshot reports 1.64× and 2.63× speedup.
All-time serving: a separate view
The All-Time / All Models dashboard reports 215.6 tok/s prompt processing excluding cached tokens and 33.2 tok/s generation. Its date range, model mix and request count are unknown. These are mixed-use averages, not another benchmark or proof of a latency/cost saving. The empty Today history does not invalidate the all-time counters.
The M2 Max specification is 400 GB/s memory bandwidth; the M3 Ultra is 819 GB/s. The supplied tests use different artifacts and oMLX versions (v0.7.0 versus v0.5.4), so their token speeds cannot isolate bandwidth or establish which chip is faster. Inspect both datasets, bandwidth sources and original screenshots →
More memory didn’t fix the model. Finding the right model did.
Even our M3 Ultra Mac Studio with 256GB unified memory could run models that failed to do the work we needed. Qwen3.6 35B MoE became our sweet spot for agentic AI, coding and basic operations.
- Did not meet our needs
Smaller models tried
Frequent hallucinations and insufficient reasoning for our OpenClaw workflows.
- Did not meet our needs
Other Qwen variants
The variants we tried did not sustain the agent workflows we needed.
- Did not meet our needs
“Mistral 70B” — owner’s label
Still unsuccessful in our setup, including on the 256GB M3 Ultra. Exact artifact unconfirmed.
- Our operational sweet spot
Qwen3.6 35B MoE
Worked for our agentic AI, coding and basic operations; our preferred model among those tried.
Running in parallel for months of basic operations, according to the owner’s experience with Qwen3.6 35B MoE.
Our recommendation: test the workflow before buying more RAM.
For an OpenClaw setup like ours, start by evaluating this 35B MoE model against the tasks your agents actually perform. Check reasoning, hallucinations, tool use and completed work, then measure latency and memory. A model fitting into RAM does not establish that it can run the workflow successfully.
Evidence scope and how to read this verdict
This is Fazal Shah’s retrospective account of models tried in his own setup, not a universal claim that other models fail. “Failed” means the model did not meet his operational needs; it does not necessarily mean it failed to load. Smaller models reportedly hallucinated and could not support the reasoning and work required by his OpenClaw agents.
Exact alternative model repositories, quantizations, dates, prompts, failure counts and intervention rates have not been supplied. “Mistral 70B” preserves the owner’s wording, not a verified model identifier. The 16-agent account does not establish 16 simultaneous inference requests, uninterrupted uptime, unattended operation or a measured success rate. Its exact machine allocation and deployment artifact remain unconfirmed.
The screenshot benchmarks test 1×, 2× and 4× batching with 128 output tokens, not the 16-agent operational deployment. They show Qwen3.6-35B-A3B-8bit on the M3 Ultra and a differently named, truncated artifact on the M2 Max. They cannot independently verify months of agent operation or identify the exact deployment artifact.
Next evidence to collect: a redacted OpenClaw agent roster, dated run history, exact model artifact and configuration, representative completed tasks, failed attempts and human interventions. Keep task quality and throughput as separate measurements.
Bring the problem. We’ll scope the next step.
Something in your workflow keeps breaking, or your team is doing the same manual work every week.
Send the current setup, what failed, and the result you need. I can help with software integrations, local AI infrastructure, agent permissions, failure recovery and deployment.
Useful first details: system or runtime, expected workload, data restrictions and one redacted example. Don’t send credentials or private customer data.Fazal Shah builds AI systems, automation and software products. Based in Pakistan, working with a global audience. About Fazal →