UI-TARS 完整教程:一句话任务,多模态 GUI 智能体替你看完屏幕、点完按钮(含部署与坐标处理)
【免费下载链接】UI-TARSPioneering Automated GUI Interaction with Native Agents项目地址: https://gitcode.com/GitHub_Trending/ui/UI-TARS
让视觉模型"点击确认按钮",它多半只回一句"确认按钮在屏幕中间"——给不出像素坐标,自动化链路还得靠你自己写规则。UI-TARS 是字节跳动开源的多模态 GUI 智能体:截图进,Thought + Action 出,坐标可以直接解析成可执行脚本,把"看图说话"变成"看图动手"。
| 项目 | 说明 |
|---|---|
| 是什么 | 开源多模态 GUI 智能体 UI-TARS-1.5 系列 + 配套解析包 ui-tars |
| 给谁用 | 想做桌面/移动端自动化、屏幕元素定位评测的开发者与研究者 |
| 交付物 | OpenAI 兼容推理端点 + 可直接运行的 pyautogui 脚本 |
| 怎么开始 | pip install ui-tars,再按部署文档起一个 7B 端点 |
版本线先记一下:1.5-7B 于 2025 年 4 月开源,2025 年 9 月发布的 UI-TARS-2 把能力面扩到 GUI、Game、Code、Tool Use 四个方向。
🚀 最短路径:先跑通一次解析,再碰推理端点
两条命令,把仓库和解析包都拿下来:
git clone https://gitcode.com/GitHub_Trending/ui/UI-TARS cd UI-TARSpip install ui-tars第一条是项目仓库,里面带着真实对话样例、坐标教程和提示词模板;第二条是独立解析包(v0.1.4,要求 Python ≥3.10)。
README 的 quick start 流程:把一行模型输出(形如Thought: Click the button+Action: click(start_box='(100,200)'))喂给parse_action_to_structure_output,参数照抄示例(factor=1000、原图 1920×1080、model_type="qwen25vl"),得到带 action_type、thought、action_inputs 的结构化字典;再交给parsing_response_to_pyautogui_code,产出按真实图像尺寸缩放好坐标的 pyautogui 代码串。
这一步不需要 GPU,先验证"输出 → 动作"这条链路,比先搭推理服务省心得多。
场景一:起一个能推理的 7B 端点
想让模型看真实截图并回坐标,官方推荐云部署,细节在 README_deploy.md:在 Hugging Face Inference Endpoints 里选UI-TARS 1.5 7B,硬件选 GPU L40S 1GPU 48G(L4、A100 也行)。
容器三个参数:Max Input Length 65536、Max Batch Prefill Tokens 65536、Max Tokens 65537;环境变量必加两个——CUDA_GRAPHS=0(避免部署失败)、PAYLOAD_LIMIT=8000000(防止大图请求挂掉);最后把容器镜像切到 text-generation-inference:3.2.1 再应用。
起好后用 OpenAI SDK 直接调:temperature=0.0、max_tokens=400、流式。预期输出就是两行:Thought 按计划语言(可指定中文)写推理,Action 给一个函数调用。
值得记住的细节:部署文档里每个配置项都挂了对应的 issue 编号,排错时知道先查哪条。
场景二:模型输出如何变成 pyautogui 脚本
你拿到的是文本,需要的是真实鼠标动作。桌面动作空间固定 9 种:click、left_double、right_single、drag、hotkey、type、scroll、wait、finished。不用自己写正则,codes/ui_tars/action_parser.py 的解析器会把 start_point/end_point、<point>等格式变体统一掉,再翻译成 pyautogui 调用。
两个值得知道的默认行为:
- type 默认走剪贴板粘贴(input_swap=True)而不是逐字符敲,中文和长文本更稳
- finished 被转成 DONE,方便你写智能体循环的退出条件
场景三:三种提示词模板怎么选
同一个模型,设备不同,提示词就换一套,三份模板都在 codes/ui_tars/prompt.py:
- COMPUTER_USE:Windows / Linux / macOS 桌面,覆盖单击、双击、右键、拖拽、快捷键、文本输入、滚动,适合浏览器导航和办公软件操作
- MOBILE_USE:给 Android 模拟器/手机,多了 long_press、open_app、press_home、press_back,适合启动应用和填表单
- GROUNDING:只输出 click、只给 Action 不给 Thought,专门做定位能力评测和模型训练
判断标准一句话:你的截图来自什么设备。
场景四:坐标点不准?官方有专门教程
基于 Qwen 2.5-VL 的模型,输出的是相对"缩放后图像"的绝对坐标,必须映射回原图截图。这是集成时最容易踩的坑,README_coordinates.md 讲得很细:
- smart_resize 把宽高对齐到 28 的倍数(IMAGE_FACTOR=28)
- 总像素数卡在 100×28×28 到 16384×28×28 之间,宽高比上限 200
- 输出坐标除以缩放后尺寸归一化,再乘回原图尺寸
仓库里还配了可视化素材:在一张 1920×1080 的截图上,把模型想点的位置标成红点,点没点对一眼就知道。
🎯 UI-TARS 与"VLM + 手写规则"的本质区别
- 端到端,截图进、坐标出:不依赖 DOM 和可访问性树,任何有像素的界面都能操作——这是它能玩游戏的根本原因,14 个 Poki 网页游戏里 13 个拿了 100 分
- 先想后做:强化学习注入了思考链,Minecraft 200 任务平均 0.42(带 Thought)对 0.35(不带),此前 SOTA 是 0.32
- 小模型能打:开源 1.5-7B 在 OSWorld 上 27.5,高于自家 72B-DPO 的 24.6;完整版 1.5 拿 42.5(100 步),此前 SOTA 38.1 要用 200 步
- 定位是招牌:ScreenSpotPro 61.6,OpenAI CUA 只有 23.4,Claude 3.7 是 27.7;ScreenSpot-V2 上 94.2
- 输出可校验:固定函数调用格式,能解析、能回放、能审计
也说句公道话:WebVoyager 84.8,略输 CUA 的 87,浏览器场景不是全线领先。
⚠️ 什么时候别用它
- 纯浏览器场景 → 项目自己推荐去看浏览器自动化项目 Midscene;只想在本地电脑直接跑 → 用 UI-TARS-desktop
- 开源的 7B 没有针对游戏场景优化,游戏能力上完整版 1.5 仍有明显优势
- 会幻觉:在陌生或歧义界面可能误判元素、采取错误动作
- 算力成本:7B 上云端端点也要 48G 级 GPU
- 滥用风险:能绕过验证码,生产环境要谨慎
- 最不适合:要求 100% 确定性、每一步可审计的操作场景
从口头描述到坐标落点
从"问 AI 看屏幕,它只给你口头描述"到"坐标直接落在正确像素上",这是 UI-TARS 带来的变化。
第一步就做这个:克隆仓库、pip install ui-tars,按 README 跑一遍解析示例,确认坐标红点落对位置,再去动推理端点。
【免费下载链接】UI-TARSPioneering Automated GUI Interaction with Native Agents项目地址: https://gitcode.com/GitHub_Trending/ui/UI-TARS
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考