We wanted a harder answer to a simple question: which small language model is actually suitable for a useful local agent on a phone?
Our first comparison covered five compact GGUF models. We have now expanded it with five international candidates: Meta's Llama 3.2 1B and 3B, Hugging Face's SmolLM2 1.7B and SmolLM3 3B, and Liquid AI's LFM2.5 1.2B. The completed study contains 10 models, 20 context configurations, 60 successful iPhone launches, and 1,920 deterministic routing evaluations.
The resource tests ran on an iPhone 15 Pro Max. Every model used GGUF Q4_K_M, full Metal offload, and both 4K and 8K contexts. Capability was measured with the same 96 Chinese and English agent requests, covering structured parsing, Skill and Action selection, Mode classification, missing slots, and planning.
This is not a general leaderboard. It asks whether a model can fit a phone, respond quickly, and make reliable structured decisions for an agent that may touch reminders, mail drafts, or memory.
The 10 tested models
| Model | Origin | GGUF size | Quantization |
|---|---|---|---|
| MiniCPM5-1B | OpenBMB | 656.2 MiB | Q4_K_M |
| LFM2.5-1.2B-Instruct | Liquid AI | 697.0 MiB | Q4_K_M |
| Llama 3.2 1B Instruct | Meta | 770.3 MiB | Q4_K_M |
| Gemma 3 1B IT | 768.7 MiB | Q4_K_M | |
| SmolLM2-1.7B-Instruct | Hugging Face | 1006.7 MiB | Q4_K_M |
| Qwen3.5-2B | Qwen | 1221.5 MiB | Q4_K_M |
| SmolLM3-3B | Hugging Face | 1826.6 MiB | Q4_K_M |
| Llama 3.2 3B Instruct | Meta | 1925.8 MiB | Q4_K_M |
| Qwen2.5-3B-Instruct | Qwen | 2007.4 MiB | Q4_K_M |
| Phi-4-mini 3.8B | Microsoft | 2376.4 MiB | Q4_K_M |
For reproducibility, the added weights were pinned by repository commit, SHA-256, license, and prompt profile. Llama 3 used its header-token template, SmolLM3 ran with /no_think, and LFM2.5 used its required start-of-text token.
Why Qwen3.5 when the mainline has reached Qwen3.8?
The newest Qwen mainline is already beyond 3.5, but its public focus is on much larger cloud and workstation models. Those releases are not in the same deployment class as a 1B-4B model that must live inside an 8 GB phone.
Our target needs a practical 4K default, optional 8K capacity, predictable memory, and stable structured output. Under those constraints, Qwen3.5-2B remains a relevant phone-sized candidate. Qwen3.6, Qwen3.7, and Qwen3.8 do not currently provide a clear official open 1B/2B-class replacement for this exact role.
Test protocol
This diagram could not be rendered. Its source is still available below.
View diagram source
flowchart LR
A[Pin model, commit and SHA-256] --> B[Apply the native prompt profile]
B --> C[Run 4K and 8K on iPhone]
C --> D[Record load, TTFT, process and Metal memory]
D --> E[Run the same 96 bilingual routing cases]
E --> F[Apply resource and capability gates]
The phone was an iPhone 15 Pro Max with A17 Pro, 8 GB physical memory, iOS 26.6.1, SwiftLlama, and llama.cpp b8668. Each model/context pair was launched independently three times. All 60 runs loaded successfully.
The phone prompt was intentionally short, so these numbers measure loading, context allocation, short-prompt TTFT, basic generation, and memory footprint. They are not a full 4K/8K prefill stress test. The deterministic 96-case capability suite ran with the same model files on a desktop Metal evaluator to keep comparisons repeatable.

iPhone 15 Pro Max: 4K and 8K resources
Values are P50 across three independent launches. Each paired value is 4K / 8K.
| Model | Load | TTFT | Process memory | Metal memory | Thermal |
|---|---|---|---|---|---|
| MiniCPM5-1B | 0.172 / 0.176 s | 0.140 / 0.136 s | 175.7 / 271.6 MiB | 1008.8 / 1104.8 MiB | Fair |
| Gemma 3 1B IT | 0.621 / 0.567 s | 0.215 / 0.200 s | 197.3 / 301.3 MiB | 1381.2 / 1485.2 MiB | Nominal |
| LFM2.5-1.2B | 0.132 / 0.131 s | 0.188 / 0.181 s | 110.5 / 158.2 MiB | 899.4 / 931.4 MiB | Nominal |
| Llama 3.2 1B | 0.228 / 0.237 s | 0.164 / 0.167 s | 228.8 / 356.8 MiB | 1145.8 / 1273.8 MiB | Fair |
| SmolLM2-1.7B | 0.188 / 0.253 s | 0.265 / 0.257 s | 823.4 / 1591.9 MiB | 1873.5 / 2641.5 MiB | Fair |
| Qwen3.5-2B | 0.323 / 0.323 s | 0.268 / 0.274 s | 201.4 / 249.6 MiB | 1767.8 / 1819.8 MiB | Fair |
| Qwen2.5-3B | 0.303 / 0.296 s | 0.445 / 0.442 s | 230.8 / 375.0 MiB | 2447.0 / 2591.0 MiB | Fair |
| Llama 3.2 3B | 0.319 / 0.374 s | 0.429 / 0.435 s | 550.2 / 999.0 MiB | 2623.3 / 3071.3 MiB | Serious |
| SmolLM3-3B | 0.293 / 0.314 s | 0.435 / 0.433 s | 390.8 / 679.2 MiB | 2366.1 / 2654.1 MiB | Nominal / Fair |
| Phi-4-mini 3.8B | 0.431 / 0.569 s | 0.503 / 0.511 s | 614.0 / 1126.4 MiB | 3291.8 / 3795.8 MiB | Nominal |
LFM2.5 was the resource winner: its 8K Metal allocation stayed at 931.4 MiB. Qwen3.5-2B added only 52 MiB of Metal memory when moving from 4K to 8K. SmolLM2 added 768 MiB, while Llama 3.2 3B reached a Serious thermal state in all six phone samples.
The 96-case Agent capability test
The dataset contains 48 Chinese and 48 English requests across 12 Skills, split evenly between core and challenge cases. Parse means the full two-stage protocol succeeded. Every score is calculated over all 96 cases. Paired values are 4K / 8K.
| Model | Parse | Skill | Action | Mode | 4K E2E P50 |
|---|---|---|---|---|---|
| MiniCPM5-1B | 62.5 / 62.5% | 85.4 / 85.4% | 51.0 / 51.0% | 53.1 / 53.1% | 0.622 s |
| Gemma 3 1B IT | 68.8 / 68.8% | 82.3 / 82.3% | 52.1 / 52.1% | 58.3 / 58.3% | 0.976 s |
| LFM2.5-1.2B | 56.2 / 56.2% | 80.2 / 80.2% | 38.5 / 38.5% | 44.8 / 44.8% | 0.903 s |
| Llama 3.2 1B | 53.1 / 53.1% | 86.5 / 86.5% | 42.7 / 42.7% | 46.9 / 46.9% | 1.401 s |
| SmolLM2-1.7B | 69.8 / 69.8% | 21.9 / 21.9% | 13.5 / 13.5% | 31.2 / 31.2% | 2.319 s |
| Qwen3.5-2B | 100 / 100% | 95.8 / 95.8% | 95.8 / 95.8% | 96.9 / 96.9% | 1.098 s |
| Qwen2.5-3B | 94.8 / 94.8% | 80.2 / 80.2% | 71.9 / 71.9% | 79.2 / 79.2% | 1.633 s |
| Llama 3.2 3B | 94.8 / 94.8% | 51.0 / 51.0% | 42.7 / 42.7% | 61.5 / 61.5% | 1.644 s |
| SmolLM3-3B | 76.0 / 76.0% | 56.2 / 56.2% | 45.8 / 45.8% | 49.0 / 49.0% | 2.015 s |
| Phi-4-mini 3.8B | 67.7 / 63.5% | 50.0 / 55.2% | 42.7 / 34.4% | 51.0 / 42.7% | 2.220 s |
The added candidates did not become more accurate at 8K because these short routing requests fit comfortably inside 4K. Here, 8K tests deployment cost and compatibility, not extra intelligence.
What the international candidates changed
LFM2.5-1.2B is the strongest new resource candidate. It is the lightest model on the phone and reached 80.2% Skill accuracy. Its 38.5% Action accuracy, however, is not safe for full execution. It is worth studying as a low-risk first-stage Skill shortlist model.
Llama 3.2 1B has the best new Skill score at 86.5%. But 53.1% Parse and 42.7% Action show a clear boundary: recognizing intent is easier than producing a complete execution contract. It is another Skill-only research candidate, subject to license review.
Llama 3.2 3B produced valid structure but often chose the wrong semantics. Parse reached 94.8%, while Skill remained at 51.0%. It also used 3071.3 MiB of Metal memory at 8K and repeatedly reached Serious thermal state.
SmolLM2-1.7B does not fit this bilingual routing task. Its 21.9% Skill and 13.5% Action scores were the lowest, and its 8K context cost was unusually high.
SmolLM3-3B improved substantially over SmolLM2, but 56.2% Skill and 45.8% Action remain below the execution threshold. It may still be useful for English-focused tool-use research.
Final decision
The international expansion changes the map, but not the default:
- Qwen3.5-2B Q4_K_M remains the default local Agent router. It is still the only model here with 100% Parse, 95.8% Skill and Action, 96.9% Mode, and less than 2 GiB of 8K Metal memory.
- Use 4K by default and switch to 8K only when required. Qwen3.5's measured 8K Metal increment was only 52 MiB.
- Keep LFM2.5-1.2B and Llama 3.2 1B in a Skill-only research track. Their resource profiles are excellent, but they should not directly generate execution parameters.
- Do not equate successful loading with production readiness. Stable Action, Mode, missing-slot, bilingual, thermal, and recovery behavior are separate gates.
Limits and next tests
The next resource round should add approximately 3.5K and 7.5K prefill workloads, 20-turn sustained sessions, generation throughput, battery drop, thermal curves, and Jetsam recovery. Multimodal candidates such as Gemma 3n E2B and MiniCPM-V need a separate vision-language protocol for screen understanding, OCR, images, and privacy boundaries.
The larger lesson is that phone-local model selection is a systems problem. Model size matters, but prompt protocol, structured reliability, context memory, language consistency, heat, and the runtime's deterministic safeguards matter just as much.