Image-Text-to-Text
Transformers
Safetensors
qwen3_5
computer-use-agent
gui-agent
multimodal
vision-language
desktop-agent
pyautogui
osworld
windowsagentarena
conversational
Instructions to use tencent/UI-Mate-27B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use tencent/UI-Mate-27B with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="tencent/UI-Mate-27B") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] pipe(text=messages)# Load model directly from transformers import AutoProcessor, AutoModelForMultimodalLM processor = AutoProcessor.from_pretrained("tencent/UI-Mate-27B") model = AutoModelForMultimodalLM.from_pretrained("tencent/UI-Mate-27B", device_map="auto") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] inputs = processor.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=40) print(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use tencent/UI-Mate-27B with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "tencent/UI-Mate-27B" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "tencent/UI-Mate-27B", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker
docker model run hf.co/tencent/UI-Mate-27B
- SGLang
How to use tencent/UI-Mate-27B with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "tencent/UI-Mate-27B" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "tencent/UI-Mate-27B", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "tencent/UI-Mate-27B" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "tencent/UI-Mate-27B", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }' - Docker Model Runner
How to use tencent/UI-Mate-27B with Docker Model Runner:
docker model run hf.co/tencent/UI-Mate-27B
README for UI-Mate-27B
Browse files
README.md
ADDED
|
@@ -0,0 +1,211 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
````markdown
|
| 2 |
+
---
|
| 3 |
+
base_model: Qwen/Qwen3.6-27B
|
| 4 |
+
library_name: transformers
|
| 5 |
+
license: apache-2.0
|
| 6 |
+
pipeline_tag: image-text-to-text
|
| 7 |
+
tags:
|
| 8 |
+
- computer-use-agent
|
| 9 |
+
- gui-agent
|
| 10 |
+
- multimodal
|
| 11 |
+
- vision-language
|
| 12 |
+
- desktop-agent
|
| 13 |
+
- pyautogui
|
| 14 |
+
- osworld
|
| 15 |
+
- windowsagentarena
|
| 16 |
+
---
|
| 17 |
+
|
| 18 |
+
<div align="center">
|
| 19 |
+
|
| 20 |
+
# UI-Mate-27B
|
| 21 |
+
|
| 22 |
+
### Advancing Open-Weight Foundation GUI Agents with In-Context Demonstrations
|
| 23 |
+
|
| 24 |
+
**Show the workflow once. Let the agent adapt it to the task at hand.**
|
| 25 |
+
|
| 26 |
+
Tencent HY Frontier 路 Multimodal Agent Team
|
| 27 |
+
|
| 28 |
+
[Project Page](https://ui-mate.github.io/) 路
|
| 29 |
+
[GitHub](https://github.com/Tencent/UI-Mate)
|
| 30 |
+
|
| 31 |
+
</div>
|
| 32 |
+
|
| 33 |
+
## Overview
|
| 34 |
+
|
| 35 |
+
**UI-Mate-27B** is an open-weight foundation GUI agent for long-horizon work across applications and operating systems. It observes live screenshots, reasons over the visible state, and produces structured keyboard and mouse actions for native desktop interaction.
|
| 36 |
+
|
| 37 |
+
UI-Mate supports two complementary modes:
|
| 38 |
+
|
| 39 |
+
- **General computer use:** execute tasks from natural-language instructions and live screenshots.
|
| 40 |
+
- **Demonstration-guided computer use:** adapt a reusable workflow extracted from one successful demonstration to a new task.
|
| 41 |
+
|
| 42 |
+
A demonstration is treated as guidance rather than a fixed action script. The model continues to re-plan from the live interface when the content, layout, or application state differs.
|
| 43 |
+
|
| 44 |
+
## Model Details
|
| 45 |
+
|
| 46 |
+
- **Parameters:** 27B
|
| 47 |
+
- **Base model:** [Qwen3.6-27B](https://huggingface.co/Qwen/Qwen3.6-27B)
|
| 48 |
+
- **Input:** task instruction, screenshots, interaction history, and optional demonstration context
|
| 49 |
+
- **Output:** reasoning, a concise action description, and structured computer-use tool calls
|
| 50 |
+
- **Action space:** mouse, keyboard, scrolling, waiting, user interaction, and task completion
|
| 51 |
+
- **Training:** supervised fine-tuning followed by online reinforcement learning in executable GUI environments
|
| 52 |
+
- **License:** Apache-2.0
|
| 53 |
+
|
| 54 |
+
UI-Mate is an agent checkpoint rather than a standalone visual-chat model. We recommend using the official prompt, response parser, and interaction harness from the [UI-Mate repository](https://github.com/Tencent/UI-Mate).
|
| 55 |
+
|
| 56 |
+
## Highlights
|
| 57 |
+
|
| 58 |
+
- Strong general computer-use performance across Ubuntu and Windows benchmarks.
|
| 59 |
+
- Long-horizon execution across multiple applications.
|
| 60 |
+
- One-shot procedural learning from demonstrations.
|
| 61 |
+
- Live-screen grounding instead of coordinate replay.
|
| 62 |
+
- Structured actions compatible with `pyautogui`.
|
| 63 |
+
- OpenAI-compatible serving and client interface.
|
| 64 |
+
|
| 65 |
+
## Evaluation
|
| 66 |
+
|
| 67 |
+
### Instruction-only execution
|
| 68 |
+
|
| 69 |
+
| Benchmark | UI-Mate-27B |
|
| 70 |
+
| --- | ---: |
|
| 71 |
+
| OSWorld-Verified 路 average score | **77.0** |
|
| 72 |
+
| WindowsAgentArena 路 average score | **66.2** |
|
| 73 |
+
| OSWorkerBench 路 strict success | **41.00** |
|
| 74 |
+
| OSWorkerBench 路 progress | **76.86** |
|
| 75 |
+
|
| 76 |
+
### Demonstration-guided execution
|
| 77 |
+
|
| 78 |
+
| Evaluation set 路 metric | Instruction only | + one demonstration | Change |
|
| 79 |
+
| --- | ---: | ---: | ---: |
|
| 80 |
+
| OSWorkerBench-Subset (33) 路 strict success | 17.17 | **35.35** | +18.18 pp |
|
| 81 |
+
| OSWorkerBench-Subset (33) 路 progress | 67.85 | **81.14** | +13.29 pp |
|
| 82 |
+
| OSWorld-Subset (30) 路 progress | 40.27 | **65.75** | +25.48 pp |
|
| 83 |
+
| GameDev (10) 路 average score | 76.76 | **81.15** | +4.39 pp |
|
| 84 |
+
|
| 85 |
+
On GameDev, demonstration guidance also reduces the average trajectory length from 303.6 to 253.1 steps.
|
| 86 |
+
|
| 87 |
+
Results are averaged over three runs per target on OSWorkerBench-Subset and five runs elsewhere. See the [project page](https://ui-mate.github.io/) for evaluation details and updates.
|
| 88 |
+
|
| 89 |
+
## Quick Start
|
| 90 |
+
|
| 91 |
+
### 1. Serve the model with vLLM
|
| 92 |
+
|
| 93 |
+
vLLM automatically downloads the checkpoint from Hugging Face Hub on first launch.
|
| 94 |
+
|
| 95 |
+
```bash
|
| 96 |
+
pip install -U vllm openai pillow
|
| 97 |
+
|
| 98 |
+
vllm serve tencent/UI-Mate-27B \
|
| 99 |
+
--trust-remote-code \
|
| 100 |
+
--served-model-name UI_Mate \
|
| 101 |
+
--port 8000 \
|
| 102 |
+
--tensor-parallel-size 2 \
|
| 103 |
+
--gpu-memory-utilization 0.85 \
|
| 104 |
+
--mm-encoder-tp-mode data \
|
| 105 |
+
--chat-template-content-format openai \
|
| 106 |
+
--limit-mm-per-prompt '{"image":6,"video":0}'
|
| 107 |
+
```
|
| 108 |
+
|
| 109 |
+
The default agent retains five screenshots in context. The server must therefore admit at least six images because the newest screenshot arrives before the oldest one is collapsed.
|
| 110 |
+
|
| 111 |
+
Confirm that the endpoint exposes the expected model name:
|
| 112 |
+
|
| 113 |
+
```bash
|
| 114 |
+
curl -s http://127.0.0.1:8000/v1/models
|
| 115 |
+
```
|
| 116 |
+
|
| 117 |
+
### 2. Run the reference examples
|
| 118 |
+
|
| 119 |
+
```bash
|
| 120 |
+
git clone https://github.com/Tencent/UI-Mate.git
|
| 121 |
+
cd UI-Mate
|
| 122 |
+
|
| 123 |
+
python examples/run_agent.py \
|
| 124 |
+
--base-url http://127.0.0.1:8000/v1
|
| 125 |
+
```
|
| 126 |
+
|
| 127 |
+
Run a complete recorded trajectory:
|
| 128 |
+
|
| 129 |
+
```bash
|
| 130 |
+
python examples/run_agent.py \
|
| 131 |
+
--replay \
|
| 132 |
+
--base-url http://127.0.0.1:8000/v1
|
| 133 |
+
```
|
| 134 |
+
|
| 135 |
+
Or provide your own screenshot:
|
| 136 |
+
|
| 137 |
+
```bash
|
| 138 |
+
python examples/run_agent.py \
|
| 139 |
+
--image /path/to/screen.png \
|
| 140 |
+
--instruction "Export this spreadsheet as HTML and open it in Chrome"
|
| 141 |
+
```
|
| 142 |
+
|
| 143 |
+
### 3. Use the Python agent
|
| 144 |
+
|
| 145 |
+
```python
|
| 146 |
+
from agents.ui_mate_agent import UIMateAgent
|
| 147 |
+
|
| 148 |
+
agent = UIMateAgent(
|
| 149 |
+
base_url="http://127.0.0.1:8000/v1",
|
| 150 |
+
model="UI_Mate",
|
| 151 |
+
)
|
| 152 |
+
|
| 153 |
+
with open("screen.png", "rb") as f:
|
| 154 |
+
response, actions = agent.predict(
|
| 155 |
+
"Install the autoDocstring extension in VS Code.",
|
| 156 |
+
{"screenshot": f.read()},
|
| 157 |
+
)
|
| 158 |
+
|
| 159 |
+
print(response)
|
| 160 |
+
print(actions)
|
| 161 |
+
|
| 162 |
+
# Reset the interaction history before starting a new task.
|
| 163 |
+
agent.reset()
|
| 164 |
+
```
|
| 165 |
+
|
| 166 |
+
The model reasons in a normalized `1000 脳 1000` coordinate space. The reference agent automatically rescales predicted coordinates to the original screenshot resolution.
|
| 167 |
+
|
| 168 |
+
## Demonstration-Guided Execution
|
| 169 |
+
|
| 170 |
+
A UI-Mate demonstration records screenshots immediately before and after each keyboard or pointer action. The trace is then:
|
| 171 |
+
|
| 172 |
+
1. normalized into a consistent action-and-frame representation;
|
| 173 |
+
2. annotated with observations, intent, actions, and verification evidence;
|
| 174 |
+
3. segmented into named subtasks with completion criteria; and
|
| 175 |
+
4. injected at inference time as a compact workflow for the active subtask.
|
| 176 |
+
|
| 177 |
+
The live screenshot remains authoritative throughout execution. For demonstration recording and management, see the [UI-Mate project page](https://ui-mate.github.io/).
|
| 178 |
+
|
| 179 |
+
## Intended Use and Limitations
|
| 180 |
+
|
| 181 |
+
UI-Mate-27B is intended for research and development of screenshot-based GUI agents in controlled desktop environments.
|
| 182 |
+
|
| 183 |
+
Its behavior can be affected by application versions, screen layouts, display scaling, latency, and unexpected UI state. Benchmark performance does not guarantee reliable execution in arbitrary environments, and the model requires an external runtime to execute its predicted actions.
|
| 184 |
+
|
| 185 |
+
## Safety
|
| 186 |
+
|
| 187 |
+
Computer-use agents can make mistakes, encounter prompt injection, or trigger consequential actions.
|
| 188 |
+
|
| 189 |
+
- Prefer isolated or disposable environments.
|
| 190 |
+
- Avoid unattended, high-stakes, or destructive workflows.
|
| 191 |
+
- Require human confirmation before sensitive operations.
|
| 192 |
+
- Monitor the interaction trajectory and verify the resulting application state.
|
| 193 |
+
- Do not treat a model-reported success as proof that the intended outcome was achieved.
|
| 194 |
+
|
| 195 |
+
## License
|
| 196 |
+
|
| 197 |
+
UI-Mate is released under the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0). Third-party components remain subject to their respective licenses. See the repository [LICENSE](https://github.com/Tencent/UI-Mate/blob/main/LICENSE) for details.
|
| 198 |
+
|
| 199 |
+
## Citation
|
| 200 |
+
|
| 201 |
+
Citation details will be updated when the technical report is publicly released.
|
| 202 |
+
|
| 203 |
+
```bibtex
|
| 204 |
+
@article{uimate2026,
|
| 205 |
+
title = {UI-Mate: Advancing Open-Weight Foundation GUI Agents with In-Context Demonstrations},
|
| 206 |
+
author = {{Tencent HY Frontier Multimodal Agent Team}},
|
| 207 |
+
journal = {arXiv preprint},
|
| 208 |
+
year = {2026}
|
| 209 |
+
}
|
| 210 |
+
```
|
| 211 |
+
````
|