Qwen3-0.6B (400 MB) on a Samsung Note 8 (2017) phone drives a real desktop Chrome
Up front: I'm one of the people building the page-perception layer used here. We started by testing small local models. The result turned out to be more interesting than the original test. 12 small models, 3 verifiable tasks, logs, and offline replay. Setup: Galaxy Note 8 (2017, Android 9, 6 GB), llama.cpp in Termux, Qwen3-0.6B Q4_K_M. A laptop with Chrome open, not headless. The phone drives the browser through our relay. What the model does: it gets a structured representation of the page (here, about 10 named links or fields, roughly 200 tokens), picks one by name, and at the end copies the facts it was given into JSON. Everything else (capturing the page as structure, candidate selection, the click, reading the facts, verifying the result) is done by the stack around it. The model never sees HTML, a screenshot, or a URL. Tasks: 1) sandbox, books.toscrape.com - category, book, price/rating/stock; 2) live Wikipedia - from an unrelated site to the Galaxy Note series page, pick "Note 8" among "Note 8.0", "Samsung Galaxy Note 8.0", "Galaxy Note 8.0", "Note FE" and other similar names on a page with roughly 760 interactive nodes, return the release date from the infobox; 3) five fields, including the UPC from a table. Each task: 10 runs, checked against a fixed expected value. Results for 12 models on task 1 (same script, same prompt): Model Params Task 1 Note Qwen3-0.6B 0.6B 10/10 Qwen2.5-1.5B 1.5B 10/10 GLM-Edge-1.5B 1.5B 10/10 rating as digit Gemma-2-2B 2.6B 10/10 Llama-3.2-3B 3B 10/10 MiniCPM5-2B 2B 9/10 "£" -> "$" once Qwen2.5-0.5B 0.5B 6/10 LFM2.5-1.2B 1.2B 0/10 placeholder Llama-3.2-1B 1B 0/10 pseudo-code Gemma-3-1B 1B 0/10 placeholder LFM2-350M 0.35B 0/10 random click Gemma-3-270M 0.27B 0/10 placeholder Qwen3-0.6B on Wikipedia: 10/10; on the five-field task: 10/10 Control: Everything the same, but raw HTML instead of structured browser perception: on the sandbox it gets there 4 times out of 5, at 12k tokens and 22 minutes per task instead of about 500 tokens and 80 seconds; on Wikipedia the page HTML is 467k characters, 9% of it fits into a 16k context, and the model does not find the link in that 9% - 0/3. Important limits: the tasks are name matching and copying. Where judgement about the page is needed, 1.5B breaks - it can't pick "next" among topical decoys. Pagination was not tested. BTW on the account question: 'replay.py' (see github repo) rebuilds the prompts from the logs and runs them through any OpenAI-compatible local server. Whether your model picks "Note 8" among the decoys takes ten minutes to check, without us. This is a measurement on three fixed tasks, not a benchmark. Repo: github.com/e2llm/edge-browser-agent - scripts, every JSONL as is (including early runs with harness bugs), model hashes, environment. replay.py re-runs the model side offline from the recorded candidates on any local server - no relay, no account. NB: This isn't a new idea. AgentOccam showed the same general effect for the GPT-4 class, WebLINX and MindAct for small fine-tuned models. Here it is tested at the extreme: no fine-tuning, below 1B, on a 2017 phone.