Mage-VL-Cowork: Microsoft's 4B agent routes each turn between GUI clicks and bash — 66.0% on OSWorld-Verified, recipe open-sourced
A 4B open-weights agent that knows when to stop clicking: one policy routes each turn between an 11-action GUI vocabulary and a persistent bash/Python channel, trained via a five-stage curriculum with a cleaned teacher harness.
Microsoft released Mage-VL-Cowork, a 4-billion-parameter open-weights computer-use agent, on October 30 under Apache-2.0, and reports 66.0% on OSWorld-Verified — above 30B-class rivals in its own comparison table. The mechanism matters more than the score: one policy decides, turn by turn, whether the job is a clicking job or a terminal job.
What shipped
Mage-VL-Cowork is a 4B vision-language model on Hugging Face (Apache-2.0, released 2026-10-30 per the HF API metadata), built from an intermediate checkpoint of Microsoft's Mage-VL (a from-scratch Mage-ViT encoder paired with a Qwen3-4B-Instruct-2507 decoder) and trained with a 32,768-token context window. The GitHub repo ships the training recipe, the OSWorld evaluation harness, and a technical report PDF — the method, not just the weights.
The headline number, per the model card: 66.0% on OSWorld-Verified, a two-run average (65.33% and 66.75%) across 361 held-out tasks with Google Drive excluded, under a 50-step budget, run through Microsoft's own MAGEHybridAgent harness at 1920×1080. In the model card's comparison table, that sits above Muse Glimmer-30B (65.9%) and Qwen3.6-27B (63.9%) — models roughly seven times the size — and far above Microsoft's previous 4B-class entrant Fara1.5-4B (13.9%). Microsoft's table also gives a category breakdown — OS 87.5, Office 64.9, Daily 65.0, Professional 66.3, Multi-Application Workflow 62.7 — against a 72.4 human reference. One open model in the table beats it: ScaleCUA-Qwen3.5-9B at 68.7%.

The architecture is where the release departs from the computer-use norm. Most agents assume the model sees the screen and clicks. Mage-VL-Cowork's single policy owns two channels: an 11-action GUI vocabulary — click, double_click, triple_click, move, drag, type, keypress, scroll, wait, screenshot, terminate in normalized [0,999] coordinates — and a persistent bash tool with a Python environment.
The harness source enforces a simple contract: one tool family per response, at most 15 tool calls per turn, with computer_use returning a fresh screenshot and bash returning merged stdout/stderr. There is no external orchestrator deciding which channel to use; the model itself routes each turn. Working memory is an asymmetric sliding window — the three most recent screenshots plus four full responses, with older turns folded into one-line Action: summaries.
Microsoft's demo makes the point concretely: a spreadsheet merge-and-format task in LibreOffice Calc took the GUI-only Qwen3.6-27B 39 steps and 9 minutes 56 seconds; Mage-VL-Cowork opened a Python file edit, touched the GUI once, and finished in 6 steps and 39 seconds (project page, i-scoop). That is not a smarter model; it is a model that stopped pretending the mouse is the only tool.
Why it matters
The parameter count is almost a footnote to how the model was trained. The model card describes a five-stage curriculum: GUI-oriented midtraining (24.6B tokens/epoch), GUI agent SFT (156.7K trajectories), coding-and-terminal SFT (563.7K trajectories), hybrid CUA SFT (318.8K trajectories), then online hybrid RL — asynchronous GRPO with verifiable rewards over 1,988 tasks. Post-training compute is reported at 7.79 ZFLOPs on 32 NVIDIA B200s plus 1,120 CPU sandbox slots.
Two moves stand out. First, the team rebuilt the teacher's environment before distilling from it: pruning redundant tools and pre-installing the Python libraries the tasks actually need (openpyxl, pandas) lifted their GPT-5.4 teacher from 89.6% to 92.0% while cutting its steps 29.2% — and, per the model card, the better demonstrations bought the 4B student a +12.5 point gain (37.6% vs 25.1%). Second, RL shrank the model's behavior: Microsoft reports +10.16 points over the hybrid SFT checkpoint (the 45.56 → 55.84 → 66.0 progression), with 13.0% fewer model calls (21.57 → 18.77) and 25.4% fewer output tokens per task (7,374 → 5,499).
Against GPT-5.4-mini on the same tasks, the card reports the 4B model emitting 5,499 tokens per task versus 12,397 — a 55.6% reduction (explainx.ai). GPT-5.4-mini scores higher on those tasks (69.6%) — the 4B model's win is token efficiency, not accuracy (model card).

The data engine behind the SFT stages, Mage-CUA-Forge, synthesized 293,806 tasks across 6,915 skills (38.24% multi-application) at a reported 82.6% lower recurring cost per task than open-ended generation ($0.906 → $0.158), with token consumption down 93.3%.
The thesis: the ceiling on small agents is set by pipeline quality, not parameter count. A 4B model with a cleaned teacher harness, a task factory, and verifiable RL rewards beats 30B models trained the lazy way — and Microsoft published the whole recipe under Apache-2.0 so other labs can copy it. For engineers building computer-use agents, the directly adoptable idea is the harness contract: force one tool family per turn, give the model a real terminal, and let the policy learn when clicking is the wrong tool.
Caveats
Treat the leaderboard position as a claim, not a result. The 66.0% comes from Microsoft's own MAGEHybridAgent harness on Microsoft's Linux desktops; the model is not on the official OSWorld leaderboard (i-scoop), and no independent lab has reproduced the score (modelfit.io). The comparison table groups rivals under "reported-scale models" with no matched step budgets — only GPT-5.4-mini was re-run by Microsoft, in a single pass. "Beats 30B" is a statement about Microsoft's table, not a controlled bake-off.
Other limits, from the card and repo:
- Web fluency is not the strength. Per the model card, the pre-RL SFT checkpoint scores 58.6% on WebVoyager-Static (377/643 tasks), behind the browser specialist Fara1.5-4B at 68.0% (i-scoop). The generalist trades web breadth for desktop breadth.
- Arbitrary
bashis the attack surface. Microsoft's guidance is that the model is for research purposes only, in controlled research settings with human oversight (GitHub); the card's safety section targets isolated, disposable sandboxes such as Docker containers or snapshot-reverted VMs. Third-party reviewers add the obvious controls — no credentials in the environment, human approval for consequential actions (i-scoop). - Footprint is not laptop-sized. The BF16 weights are 9.48 GB across two shards, with no official quantized build; community GGUF requires an unmerged llama.cpp fork (modelfit.io).
- Scope is narrow. Evidence is Linux-only, the card lists English only, OSWorld 2.0 is untested, and total training compute including pretraining is unpublished.
Sources
- Model card — microsoft/Mage-VL-Cowork (Hugging Face)
- HF API metadata (license, base model, release date)
- GitHub — microsoft/Mage (training recipe, harness, tech report)
- MAGEHybridAgent harness source (11 GUI primitives, tool contract)
- Project page — microsoft.github.io/Mage/cowork
- Singularity.Kiwi coverage
- XenoSpectrum coverage
- i-scoop.eu coverage
- explainx.ai coverage (token efficiency vs GPT-5.4-mini)
- modelfit.io coverage (memory footprint)