UI-TARS 桌面自动化实战:从视觉识别到精准点击
UI-TARS 桌面自动化实战从视觉识别到精准点击【免费下载链接】UI-TARSPioneering Automated GUI Interaction with Native Agents项目地址: https://gitcode.com/GitHub_Trending/ui/UI-TARSUI-TARS 是一套 GUI 桌面自动化管线多模态模型看懂截图并输出 ThoughtAction配套 ui-tars 包将动作指令解析为可执行的 pyautogui 脚本。本文覆盖部署、动作解析与坐标校准面向需要自动化桌面或移动 GUI 操作的开发者。一、项目定位与适用场景仓库由两部分组成模型侧的部署与推理指南HuggingFace Inference Endpoints 部署加首次推理以及 ui-tars 解析包Python ≥3.10无强制第三方依赖。三个典型场景可以帮你判断是否适用桌面任务闭环执行让模型驱动虚拟机或真实桌面完成打开文档 → 输入文字 → 保存这类多步操作对应 OSWorld 一类评测环境。把现成 VLM 输出转成 GUI 动作已有视觉语言模型但输出格式混乱时可复用本仓库的 action_parser 与 prompt 模板 统一动作空间。移动端 / Android 模拟器自动化MOBILE_USE 提示词扩展了 long_press、open_app、press_home、press_back 等动作。与通用 LLM Agent 相比它的差异点在统一动作空间点击 / 快捷键 / 输入 / 滚动 / 拖拽全覆盖和内置 Thought 推理链推理能力经强化学习增强。官方 benchmark引自 README.md 数据表OSWorld100 步UI-TARS-1.5 得 42.5 分OpenAI CUA 36.4Claude 3.7 28GUI 定位 ScreenSpot-V2 94.2、ScreenSpotPro 61.6上代 SOTA 为 91.6 与 43.6。二、核心能力拆解GUI 感知与统一动作空间模型侧负责看懂屏幕从截图中理解元素、组织推理链最后给出标准 Action。动作空间由 prompt.py 里三套模板定义COMPUTER_USE桌面环境Windows / Linux / macOS支持 click、left_double、right_single、drag、hotkey、type、scroll、wait、finishedMOBILE_USE移动端与 Android 模拟器额外支持 long_press、open_app、press_home、press_backGROUNDING只输出 Action 不输出 Thought用于定位能力评测与模型训练动作解析与 pyautogui 脚本生成解析侧入口是 parse_action_to_structure_output把模型原始输出Thought: ...\nAction: click(start_box(100,200))格式解析为含 action_type、action_inputs 等字段的字典支持同一次响应中按)\n\n分隔的多个动作。parsing_response_to_pyautogui_code 再把结构化结果转成 pyautogui 代码几个细节值得注意快捷键与方向键名自动映射arrowleft → left、space → 空格type 默认走剪贴板 CtrlV粘贴避免逐字符按键的慢速输入动作是 finished 时直接输出 DONE作为任务结束标记坐标映射与校准方法点击准不准取决于坐标换算Qwen2.5-VL 系模型输出绝对像素坐标放大后图像中的像素值解析器用 smart_resize对齐因子 28反推回原图分辨率旧版 Qwen2-VL 输出 0–999 相对坐标用 factor1000 处理。README_coordinates.md 给出完整校准流程把解析出的坐标画回截图肉眼确认落点。三、快速上手安装解析包并跑通首个示例环境要求Python ≥3.10见 pyproject.toml若要在本地执行生成的脚本需另装 pyautogui 与 pyperclip。git clone https://gitcode.com/GitHub_Trending/ui/UI-TARS cd UI-TARS pip install ui-tars最小示例以一条点击指令为输入传入截图分辨率输出 pyautogui 代码from ui_tars.action_parser import parse_action_to_structure_output, parsing_response_to_pyautogui_code response Thought: Click the button\nAction: click(start_box(100,200)) width, height 1920, 1080 parsed parse_action_to_structure_output( response, factor1000, origin_resized_widthwidth, origin_resized_heightheight, model_typeqwen25vl, ) code parsing_response_to_pyautogui_code(parsed, image_heightheight, image_widthwidth) print(code)完整部署与推理流程见 README_deploy.md请求 messages 可直接用 data/test_messages.json 作为起点。四、典型工作流演示场景一云端部署 7B 模型并完成首次推理想以 API 形式运行 UI-TARS-1.5-7B 并让它执行第一个 GUI 任务。在 HuggingFace Inference Endpoints 导入 7B 模型硬件选 GPU L40S 48GNvidia L4 / A100 亦可设置 Max Input Length、Max Batch Prefill Tokens 为 65536Max Number of Tokens 为 65537添加环境变量CUDA_GRAPHS0避免部署失败、PAYLOAD_LIMIT8000000防止大图请求失败创建容器后把 Container URI 改为 text-generation-inference:3.2.1 并更新按 README_deploy.md 示例调用OpenAI 兼容接口temperature0.0streamTrue实际效果给定截图与任务指令模型返回推理链和标准动作例如Thought: Preferences 窗口已打开我需要在左侧列表中找到 Color Management 选项。 Action: click(start_box(177,549))场景二桌面任务闭环执行截图 → 动作 → 执行以架构图中打开文档、输入文字、保存的例子走通整个循环。对桌面截图如 1920x1080用 COMPUTER_USE 提示词构造 messages调用端点获得 Thought/Action遇到 wait() 则睡眠 5 秒后重新截图确认状态变化用 parse_action_to_structure_outputmodel_typeqwen25vl把坐标映射回原始分辨率由 parsing_response_to_pyautogui_code 生成 pyautogui 代码并执行或交给模拟器执行执行后把新截图追加进历史循环直到模型输出 finished实际效果多步跨窗口的操作可闭环运行每步都有 Thought 记录可供回溯审计。五、性能与精度调优参数清单model_typeQwen2.5-VL 系模型用 qwen25vl内部走 smart_resize 反推旧版 Qwen2-VL 用相对坐标factor 保持 1000。两者混用会产生系统性点击偏移origin_resized_width / origin_resized_height必须与送入模型的截图实际分辨率一致这是最常见的精度损失来源max_pixels / min_pixels解析器默认 16384×28×28 与 100×28×28若部署时改过模型缩放策略需同步传入推理参数temperature0.0、max_tokens400 为仓库示例采用的配置保证动作格式稳定服务端截图较大时把 PAYLOAD_LIMIT 调到 8000000避免请求被截断失败六、常见坑与排查现象点击位置系统性偏移可能原因model_type 与实际模型不符qwen25vl 输出绝对坐标旧模型输出 0–999 相对坐标映射方式用错会整体错位或 origin_resized 分辨率与实际截图不一致。 解法按 README_coordinates.md 流程把解析坐标画回截图确认落点再逐项核对 model_type 与分辨率参数。现象端点部署失败可能原因CUDA graphs 与模型不兼容。 解法设置环境变量 CUDA_GRAPHS0 后重新部署。现象大图请求失败可能原因截图 payload 超过默认上限。 解法设置 PAYLOAD_LIMIT8000000或发送前压缩截图尺寸。现象解析抛出 Action cant parse可能原因模型输出的 Action 行格式不完整括号未闭合或 type(content...) 内含未转义引号。 解法走 action_parser.py 的 escape_single_quotes 处理引号确认输出包含完整的 Action: 行codes/tests/action_parser_test.py 中有对应用例可对照输入格式。现象smart_resize 抛出 ValueError: absolute aspect ratio must be smaller than 200可能原因截图长宽比极端超长条状窗口。 解法发送前裁剪或补齐截图使最长边与最短边之比小于 200。七、进阶方向与生态两个值得投入的扩展方向一是把生成 pyautogui 代码这一步替换为自己的执行器或接入 OSWorld 一类真实操作系统模拟器README 提到可用 OSWorld 官方推理脚本复现结果二是面向游戏与工具调用场景扩展动作空间官方后续版本 UI-TARS-2 已在该方向整合 GUI、游戏、代码与工具调用能力。仓库内资源入口部署指南、坐标处理指南、单元测试目录、论文 PDF。相关配套项目UI-TARS-desktop运行在本地个人设备上的桌面 Agent与 Midscene浏览器自动化方向与本仓库分别覆盖桌面、本机与浏览器三类场景。UI-TARS 的核心价值在于把模型看懂屏幕与代码执行动作解耦模型侧只负责输出标准 Thought/Action解析、坐标映射与脚本生成交给 ui-tars 包完成。动手前建议先通读 README_deploy.md 与 README_coordinates.md它们分别覆盖部署与校准这两个最容易踩坑的环节。【免费下载链接】UI-TARSPioneering Automated GUI Interaction with Native Agents项目地址: https://gitcode.com/GitHub_Trending/ui/UI-TARS创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Earthworm 个性化学习设置完整指南:快捷键、发音与练习模式一次配好

Earthworm 个性化学习设置完整指南:快捷键、发音与练习模式一次配好

Earthworm 个性化学习设置完整指南:快捷键、发音与练习模式一次配好 【免费下载链接】earthworm Learning English through the method of constructing sentences with conjunctions 项目地址: https://gitcode.com/GitHub_Trending/ea/earthworm Earthworm…

2026/10/25 23:32:30 阅读更多 →
FSTSP复现实战:卡车-无人机协同配送路径优化与Gurobi求解

FSTSP复现实战:卡车-无人机协同配送路径优化与Gurobi求解

去年在复现 The Flying Sidekick Traveling Salesman Problem(FSTSP)这篇经典论文时,我把整个求解链路从建模到 Gurobi 调参完整走了一遍。这个问题的核心一句话就能讲清楚:一辆卡车带着一架无人机从仓库出发,一起去给…

2026/11/13 23:30:40 阅读更多 →
Loop:免费 Mac 窗口管理,一个键摆好屏幕

Loop:免费 Mac 窗口管理,一个键摆好屏幕

Loop:免费 Mac 窗口管理,一个键摆好屏幕 【免费下载链接】Loop Window management made elegant. 项目地址: https://gitcode.com/GitHub_Trending/lo/Loop 光标贴在窗口右下角,你已经第 N 次去够那条 1 像素的边——拖快了&#xff0…

2026/10/25 3:33:57 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/13 5:13:25 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/13 5:13:25 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/13 5:13:25 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/13 22:08:41 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/12 18:22:25 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/13 5:13:25 阅读更多 →

日新闻

周新闻

月新闻