CoolFace
Modelpublic

Manojb/CUA_benchmark_local_small_models

sourceHugging Faceupdated 6mo agoView on Hugging Face
4likes
Model Card

Small LLM Agent Benchmark

Real-world browser agent benchmark for small language models on Apple Silicon (16GB)

BFCL says Bonsai-8B is the best tool-caller at 73%. Our benchmark says it scores 1/6 on actual agent tasks. A 1.2B model scores 4.5/6. Here's what we found testing 15+ model configurations across 5 axes.

TL;DR Results

RankModelScoreSpeedMemoryNotes
๐Ÿ† 1Gemma4 E4B Uncensored Q5KP5.0/624.5 tok/s6.3 GBOverall best
๐Ÿ† 2Qwen3.5-9B Uncensored Q6_K5.0/613.5 tok/s7.8 GBMost reliable
โœจ 3LFM2-1.2B-Tool Q8_0 (slim)4.5/676 tok/s2.75 GBEfficiency king
4Gemma4 E4B Uncensored Q6KP4.5/623.1 tok/s6.7 GB
5Qwen3.5-9B Base Q4KXL4.5/610.0 tok/s6.5 GB
6Gemma4 E4B Uncensored Q8KP4.0/619.0 tok/s8.5 GBHigher quant = worse!
7Qwen3.5-9B Uncensored Q4KM3.5/616.7 tok/s6.1 GB
8Qwen3VL-8B Balanced Q6_K3.0/616.2 tok/s7.4 GB
9Bonsai-8B 1-bit1.0/648.8 tok/s1.5 GB73% BFCL but 1/6 here
10LFM2-8B-A1B Q6_K (1.5B active)1.0/669.4 tok/s6.4 GBBase model, no tool training
11LFM2.5-Nova 1.2B Q40.0/6118 tok/s0.8 GB4K context too small
12FunctionGemma 270M Q80.0/6197 tok/s0.3 GBInfinite loop
13Qwopus-27B Q3KSOOMโ€”14+ GBDoesn't fit 16GB

What This Benchmarks

6 real-world browser agent tasks, not synthetic function-call formatting tests:

#TaskDifficultyWhat it tests
T1Wikipedia info extractionEasyNavigate โ†’ extract โ†’ report
T2DuckDuckGo searchMediumNavigate โ†’ type โ†’ click โ†’ read
T3Hacker News top storyEasyNavigate โ†’ read โ†’ stop
T4Cat image detection (Falcon Perception)MediumNavigate โ†’ vision_detect โ†’ report
T5Form filling (httpbin POST)MediumNavigate โ†’ input ร— 3 โ†’ click submit
T6reCAPTCHA challengeHardNavigate โ†’ click โ†’ vision โ†’ batch click

Each test requires multi-step tool chaining โ€” not single-turn function call formatting.

10 Counter-Intuitive Findings

  1. 1.BFCL โ‰  Agent Capability โ€” Bonsai scores 73% on BFCL but 1.0/6 on real agent tasks
  2. 2.Higher Quant โ‰  Better for MoE โ€” Gemma4: Q5 (5.0) > Q6 (4.5) > Q8 (4.0)
  3. 3.Higher Quant = Better for Dense โ€” Qwen: Q4 (3.5) < Q6 (5.0)
  4. 4.Uncensored โ‰  Better Agent โ€” Quality gains come from quantization, not censoring
  5. 5.Faster Backend โ‰  Better Results โ€” GGUF 24 tok/s beats MLX 35 tok/s (proxy issues)
  6. 6.197 tok/s Model Scores 0/6 โ€” FunctionGemma is useless despite being fastest
  7. 7.4B MoE = 9B Dense โ€” Gemma4 E4B matches Qwen3.5-9B on agent tasks
  8. 8.1.2B Specialized > 8B Base โ€” LFM2-1.2B-Tool (4.5/6) > LFM2-8B-A1B (1.0/6)
  9. 9.The "Capability Cliff" Has Exceptions โ€” LFM2-1.2B-Tool breaks the 4B param rule
  10. 10.Small Models Are Context-Starved โ€” Reducing tools 26โ†’8 pushed LFM2 from 4.0โ†’4.5

5-Axis Analysis

Axis 1: Model Family

  • โ€”Minimum ~4B active params for multi-step agent tasks (with one exception)
  • โ€”MoE models (Gemma4 4B active) match dense models (Qwen 9B) at lower cost
  • โ€”Liquid Neural Network architecture (LFM2-1.2B-Tool) breaks the 4B rule with specialized training

Axis 2: Censoring

  • โ€”Uncensored models show no advantage for tool-calling agent tasks
  • โ€”Quality improvements are entirely from quantization level, not censoring

Axis 3: Quantization

  • โ€”MoE models: Q5 is the sweet spot (speed > precision)
  • โ€”Dense models: Q6 is the sweet spot (precision > speed)
  • โ€”Never go below Q4 or above Q8 for agent tasks

Axis 4: Backend

  • โ€”llama.cpp GGUF is the universal winner โ€” native tool calling, no proxy
  • โ€”MLX is faster but needs a 7-fix proxy for LlmTornado compatibility
  • โ€”Ollama has API format issues with Gemma4

Axis 5: Vision

  • โ€”mmproj + Falcon Perception together score 5.0/6 (best)
  • โ€”Either alone scores 4.5/6
  • โ€”Falcon Perception (0.6B): 2s/detection, pixel-accurate coordinates

Hardware

  • โ€”Mac Mini M4 16GB (Apple Silicon)
  • โ€”macOS Darwin 24.3.0
  • โ€”llama.cpp b8640 (homebrew)
  • โ€”Falcon Perception v2 (MLX backend)
  • โ€”GUA_Blazor .NET 10 agent framework

Architecture

User Task โ†’ GUA_Blazor (agent loop, 25 turns)
  โ†’ LLM (llama.cpp, port 8081) โ€” reasoning + tool calling
  โ†’ Falcon Perception (MLX, port 8090) โ€” vision detection
  โ†’ Playwright Chromium โ€” browser automation

Run It Yourself

Prerequisites

bash
# macOS with Apple Silicon
brew install llama.cpp
pip install falcon-perception  # or clone github.com/tiiuae/falcon-perception

Quick Speed Test

bash
# Download a model
huggingface-cli download HauhauCS/Gemma-4-E4B-Uncensored-HauhauCS-Aggressive \
  Gemma-4-E4B-Uncensored-HauhauCS-Aggressive-Q5_K_P.gguf --local-dir ./models

# Start server
llama-server -m ./models/Gemma-4-E4B-Uncensored-HauhauCS-Aggressive-Q5_K_P.gguf \
  --port 8081 -ngl 99 -c 16384

# Test tool calling
curl -s http://localhost:8081/v1/chat/completions -H 'Content-Type: application/json' -d '{
  "model": "test",
  "stream": false,
  "messages": [{"role": "user", "content": "Navigate to google.com"}],
  "tools": [{"type": "function", "function": {"name": "browser_use", "description": "Browser", "parameters": {"type": "object", "properties": {"action": {"type": "string"}, "url": {"type": "string"}}, "required": ["action"]}}}]
}'

Run Benchmark

bash
python bench/run_benchmark.py --model ./models/your-model.gguf --mmproj ./models/mmproj.gguf

Models Tested

ModelHuggingFaceBackendmmproj?
Gemma4 E4B UncensoredHauhauCS/Gemma-4-E4B-Uncensored-HauhauCS-Aggressivellama.cppYes (in repo)
Qwen3.5-9B UncensoredHauhauCS/Qwen3.5-9B-Uncensored-HauhauCS-Aggressivellama.cppYes (in repo)
Qwen3.5-9B Baseunsloth/Qwen3.5-9B-GGUFllama.cppYes
LFM2-1.2B-ToolLiquidAI/LFM2-1.2B-Tool-GGUFllama.cppNo (text only)
Bonsai-8Bprism-ml/Bonsai-8B-ggufPrismML forkNo
Gemma4 E4B Base (MLX)mlx-community/gemma-4-e4b-it-4bitmlx_vlmNative
LFM2-8B-A1BLiquidAI/LFM2-8B-A1B-GGUFllama.cppNo
FunctionGemma 270Munsloth/functiongemma-270m-it-GGUFllama.cppNo

Key Files

bench/
  run_benchmark.py       โ€” Main benchmark runner
  tasks.json             โ€” 6 test task definitions
  results/               โ€” Raw results from all runs
reports/
  FINAL_Report.md        โ€” Complete 5-axis analysis
  Multi_Axis_Analysis.md โ€” Detailed breakdown per axis
  Model_Comparison.md    โ€” Side-by-side tables
proxies/
  gemma4_proxy.py        โ€” Gemma4 MLX โ†’ LlmTornado proxy (7 fixes)
  lfm2_proxy.py          โ€” LFM2 pythonic tool-call proxy
vision/
  falcon_vision_server.py โ€” Falcon Perception 3-layer adaptive pipeline

Citation

If you use this benchmark, please cite:

@misc{small-llm-agent-bench-2026,
  title={Small LLM Agent Benchmark: Real-World Browser Agent Tasks on 16GB Apple Silicon},
  author={Xavier},
  year={2026},
  url={https://huggingface.co/Manojb/CUA_benchmark_local_small_models}
}

License

MIT