A hero title card for 'UI-Venus-2-9B vs Microsoft Mage-VL' with the subtitle 'The screenshot agent vs the codec-stream watcher', showing a blue '9B · SCREENSHOT AGENT' badge with an 'acts' pill and a cyan '4B · STREAM WATCHER' badge with a 'describes' pill, and the OrcaRouter logo in the bottom-right corner.
Guides & Insights

UI-Venus-2-9B vs Microsoft Mage-VL: The Screenshot Agent vs the Codec-Stream Watcher

Author

Alistair Wren

Date Published

Latest models · 20View all models
Benchmarks: Artificial Analysis · updated daily
Back to all posts

UI-Venus-2-9B and Microsoft Mage-VL both shipped quietly within a month of each other — Mage-VL's repo appeared on July 26, 2026, UI-Venus-2-9B on August 26, 2026 — both are Apache-2.0 open weights, and both build on Qwen-family backbones. That is roughly where the similarities end, and the difference is not a matter of degree but of which side of the screen each model lives on. Microsoft Mage-VL is a codec-native streaming perception model: it watches compressed video, stays quiet through routine footage, and emits text when an event completes. UI-Venus-2-9B is a GUI agent: it consumes a still screenshot, reasons about the state, and emits a structured action. One watches the screen and describes it; the other watches the screen and operates it. Choosing between them is not a benchmark decision, because they do not share a single benchmark — it is a decision about whether your automation ends in an answer or in an action.

What each model actually is

Microsoft Mage-VL, released under the microsoft/Mage-VL repo with no announcement, is a roughly 4B-parameter multimodal model built from a Qwen3-4B-Instruct-2507 language decoder, a from-scratch visual encoder called Mage-ViT, and a separate ~0.5B streaming gate. Its design is video-codec-native: instead of uniformly sampling frames, it keeps anchor (I) frames in full and retains only motion-salient patches of predicted (P) frames, which Microsoft reports cuts visual token consumption by over 75% and yields up to 3.5× wall-clock inference speedup over uniform sampling. A two-process design — System 1 cognition gate watches each rolling codec window, System 2 VLM engages only when an event is worth responding to — makes it an always-on video watcher that is cheap precisely because it is mostly silent.

UI-Venus-2-9B, released by inclusionAI (the Venus Team's Ant Group lab), is a 9B general-purpose GUI agent initialized from Qwen3.5-9B. It observes an interface, reasons about the task state, executes an action, and incorporates feedback — a closed observe–reason–act–feedback loop — and its card claims training coverage over mobile apps, web platforms, and desktop operating systems in one checkpoint. On its own model card it reports AndroidWorld 80.2, OSWorld-Verified 70.8, WebVoyager 90.8, and ScreenSpot-Pro 73.0, all vendor-reported and none independently reproduced.

The input gap: pixels you grab vs a stream you keep

The most instructive difference is what each model eats. UI-Venus-2-9B is a screenshot agent: its input is the current screen, one frame at a time, and its 256K-token context window is how it keeps a history of those frames across a long task. Mage-VL is a stream agent: its input is compressed video, and its efficiency comes from treating the motion between frames as data — motion vectors and residual energy for traditional codecs, learned rate maps for neural ones. This is the difference between a model that sees moments and a model that sees a continuous timeline. A screenshot agent is structurally blind to the 100 milliseconds between captures — the spinner, the loading transition, the hover state that only exists on screen briefly. A stream watcher lives inside that gap. That is not a flaw in either design; it is why a GUI agent that needs to act on a live screen and a perception model that needs to summarize a feed are different products with different input contracts.

A generated two-column scoreboard for 'UI-Venus-2-9B vs Microsoft Mage-VL': left column UI-Venus-2-9B — Job GUI agent acts on screens, Input still screenshots, Output structured actions, Size 9B, Serving vLLM OpenAI-compatible, Context 256K; right column Microsoft Mage-VL — Job stream watcher describes screens, Input compressed video codec streams, Output event-gated text, Size ~4B + 0.5B gate, Serving trust_remote_code custom, Context rolling codec window; footer 'Both vendor-reported; no shared benchmark.'

The output gap: actions vs commentary

The output side is where the two stop being comparable. UI-Venus-2-9B's output is a structured action in a defined action space — mouse, keyboard, scroll, navigation — which it emits after Qwen3-style reasoning tokens, and its training is built around grounding and CAPTCHA tasks that reward precise element localization under visual clutter. Mage-VL's output is text: event-gated commentary about what it sees. It has no action space, no function calling, and no agent loop. Read the two model cards side by side and you are looking at opposite sides of the perception–action line — Mage-VL ends in a description, UI-Venus-2-9B ends in a click.

Job — UI-Venus-2-9B: GUI agent, operates the interface. Microsoft Mage-VL: streaming perception, describes the interface.

Input — UI-Venus-2-9B: still screenshots, 256K-token history. Microsoft Mage-VL: compressed video codec streams, motion-salient token sparsity.

Output — UI-Venus-2-9B: structured mouse/keyboard/navigation actions. Microsoft Mage-VL: event-gated text commentary.

Size — UI-Venus-2-9B: 9B. Microsoft Mage-VL: ~4B + ~0.5B streaming gate.

Backbone — UI-Venus-2-9B: Qwen3.5-9B. Microsoft Mage-VL: Qwen3-4B-Instruct-2507 plus from-scratch Mage-ViT.

License — both Apache-2.0 (Mage-VL's card notes research-purposes-only in its repo).

The serving gap

Here the newer, bigger model is the easier one to run. UI-Venus-2-9B documents a single vLLM command with a 256K context window and a stock OpenAI-compatible API. Mage-VL requires trust_remote_code to execute Microsoft's custom Python, plus FFmpeg, a neural-codec path for video, and dependencies like mamba-ssm, and it has no vLLM or SGLang serving stack yet — no paged attention, no production serving path. Microsoft reports about 10.6 GB of BF16 parameters total, meaning a 16 GB GPU is a realistic floor for image work and 24 GB+ for long video. For a team that wants to put something in production today, UI-Venus-2-9B has the cleaner on-ramp; for a team building an always-on monitoring or summarization pipeline, Mage-VL's serving stack is the thing you are signing up for either way, custom Python and all.

A scoreboard that doesn't exist

There is no shared benchmark between these two models, and inventing one would be dishonest. UI-Venus-2-9B's numbers live on GUI-grounding, mobile, web, and computer-use boards (ScreenSpot-Pro 73.0, AndroidWorld 80.2, WebVoyager 90.8, OSWorld-Verified 70.8, all vendor-reported). Mage-VL's numbers live on video-understanding and spatial boards (Video-MME 64.0, NExT-QA 83.1, OVO-Bench 64.0, VSI-Bench +11.0 over Qwen3-VL-4B, all vendor-reported). The correct way to read the matchup is as a fork in the road: if the task is "understand what is happening on this screen over time," Mage-VL is the relevant tool and UI-Venus-2-9B is not built for it; if the task is "make this screen do something," the reverse is true.

Where the two compose

The interesting version of this comparison is not either/or. A GUI agent operating a live application has a genuine blind spot — the time between screenshots, and any state change that never settles into a static frame — and a codec-native stream watcher is precisely the kind of model that could act as a perception layer in that gap, detecting that a page finished loading or that a modal finished animating before the agent's next grounding pass. Microsoft did not build Mage-VL for that job, and Ant Group did not build UI-Venus-2-9B to be steered by a second model, but the fit is real. For the parts of such a stack that are already production-grade — the planner LLM that decomposes a task, the vision model that verifies a screen state, the transcription model that logs an agent's session — one API with pass-through pricing and automatic failover is what makes the experiment cheap, and that is what a router is for. Neither UI-Venus-2-9B nor Microsoft Mage-VL is served through OrcaRouter today; both are open-weights self-host projects, and both would appear at provider list price if they ever reached a routed provider.

A screenshot of the Hugging Face model page for inclusionAI/UI-Venus-2-9B (captured August 27 2026) showing the model header with one like, the tags image-text-to-text, Transformers, Safetensors, qwen3_5, multimodal, gui, and the opening of the UI-Venus-2 model card.A screenshot of the Hugging Face model page for microsoft/Mage-VL (captured August 27 2026) showing the model header, the tags image-text-to-text, Transformers, Safetensors, mage_vl, multimodal, vision-language-model, and the opening of the Mage-VL model card.

Who should pick which

Pick Microsoft Mage-VL when your problem is continuous perception — a camera feed, a screen recording, a stream you need summarized or monitored in real time, cheaply enough to keep running. Pick UI-Venus-2-9B when your problem is control — a task that ends in a completed action, a filled form, a navigated flow, an operated application. And if your automation genuinely needs both — perceive the stream, then act on the still — run them as a pair and treat the stream watcher as the event detector feeding a screenshot agent the moments worth acting on. They are two halves of the same screen, not competitors for the same job.