UI-TARS 快速指南:把 GUI 模型的输出跑成自动化动作
【免费下载链接】UI-TARSPioneering Automated GUI Interaction with Native Agents项目地址: https://gitcode.com/GitHub_Trending/ui/UI-TARS
你让视觉模型看一张截图,它回你一行字:Thought: 点一下发送键 Action: click(start_box='(100,200)')。可这行字还只是"打算做什么",不是"做完了"。坐标是模型自己的坐标系,离真正在屏幕上落下鼠标还差一步。
UI-TARS 的解析库就补这一步:它把模型的 Thought/Action 输出解析成结构化动作,换算坐标后生成可直接执行的 pyautogui 脚本,是 GUI 自动化里"模型输出 → 真机操作"的桥梁。
UI-TARS 安装步骤:5 分钟跑通第一段代码
先装库:
pip install ui-tars然后喂给解析器一段模型输出,两步拿到可执行的自动化代码:
from ui_tars.action_parser import ( parse_action_to_structure_output, parsing_response_to_pyautogui_code, ) response = "Thought: 点一下发送键\nAction: click(start_box='(100,200)')" parsed = parse_action_to_structure_output( response, factor=1000, origin_resized_height=1080, origin_resized_width=1920, model_type="doubao", ) print(parsing_response_to_pyautogui_code(parsed, 1080, 1920))四个参数逐个说:
origin_resized_width / height:你传给模型的截图原始分辨率(例子里是 1920×1080);factor:坐标缩放因子,doubao 体系下模型把坐标归一到 0~1000;model_type:声明模型走哪套坐标体系,doubao 和 qwen25vl 各一套。
第一个函数把文本拆成action_type、action_inputs等字段的结构化数据;第二个函数再把数据翻译成 pyautogui 脚本字符串。中间那步坐标换算,就是下面要讲的重点。
看懂模型输出:一个 Thought 加一个 Action
模型每次输出固定是两段。Thought是它先想一想再动手,Action才是要执行的动作。解析时这两段都会被保留:thought字段留作排查,action_type决定生成哪种 pyautogui 调用(点击、输入、拖拽、快捷键等)。
调试时盯着action_inputs里的start_box看:它是不是你想点的那个位置?不是的话,问题多半出在下一节说的分辨率换算上。
UI-TARS 坐标对齐:不同分辨率为什么还能点准
模型看到的不是原图,而是被 smart_resize 等比缩放过的一版。它输出的坐标是"缩小图坐标系"里的值,直接拿去动鼠标必然点偏。
UI-TARS 解析函数内置了这套换算:按 smart_resize 的缩放比例把坐标映射回原图。doubao 体系把坐标归一在 0~1000,Qwen2.5-VL 体系则直接输出绝对像素坐标,两套都靠"对齐缩放 → 反算原图"落地。
点的位置总差一点时,用仓库自带脚本把坐标画回截图:
from PIL import Image, ImageDraw img = Image.open("data/coordinate_process_image.png") start_box = parsed[0]["action_inputs"]["start_box"] x, y = eval(start_box) draw = ImageDraw.Draw(img) draw.ellipse((x - 5, y - 5, x + 5, y + 5), fill="red") img.show()红点落在按钮上就说明对齐正确。仓库的 README_coordinates.md 里有完整推导,示例图见下:
UI-TARS 提示词选择:桌面、手机、只定位
三套提示词模板都放在 codes/ui_tars/prompt.py,区别在动作空间:
| 模板 | 适用平台 | 提供的动作 |
|---|---|---|
| COMPUTER_USE | Windows / Linux / macOS 桌面 | 单击、双击、右键、拖拽、滚动、快捷键、文本输入 |
| MOBILE_USE | 手机或安卓模拟器 | 额外提供 long_press、open_app、press_home、press_back |
| GROUNDING | 模型训练与评估 | 只输出 Action,不带 Thought |
选模板就是选设备:操作电脑用第一套,做手机端自动化选第二套(长按、启动应用这类手机专属动作只在它里面),只想测"模型找得准不准"用第三套。
UI-TARS 1.5 基准成功率与局限
先看三个有代表性的数字:
| 评测集 | 任务 | UI-TARS-1.5 |
|---|---|---|
| OSWorld | 桌面任务成功率(100 步) | 42.5 |
| ScreenSpot-V2 | 界面元素定位准确率 | 94.2 |
| AndroidWorld | 手机任务成功率 | 64.2 |
系统整体由感知、动作、推理、学习四块组成,其中"先想后做"的推理模块是 Thought 机制的来源,也直接贡献了上面的分数:
说清楚边界,免得期望错位:开源的 7B 版本侧重通用电脑操作,游戏场景与完整版 1.5 还有差距;长任务下计算开销不小;模型偶尔会认错元素、点偏位置。所以自动化流程里建议保留人工确认或校验步骤。
三步开始动手
- 装解析库,跑通上面两段代码,确认能从模型输出拿到 pyautogui 脚本;
- 用坐标可视化脚本核对截图上的红点,确认分辨率换算无误;
- 按目标平台选提示词模板,桌面选 COMPUTER_USE,手机选 MOBILE_USE。
细节都写在 README_deploy.md 里,部署模型和调用 API 的步骤也在那一篇。
【免费下载链接】UI-TARSPioneering Automated GUI Interaction with Native Agents项目地址: https://gitcode.com/GitHub_Trending/ui/UI-TARS
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考