UI-TARS 桌面应用部署指南:如何让 AI 用自然语言接管你的鼠标键盘
【免费下载链接】UI-TARS-desktopThe Open-Source Multimodal AI Agent Stack: Connecting Cutting-Edge AI Models and Agent Infra项目地址: https://gitcode.com/GitHub_Trending/ui/UI-TARS-desktop
你给电脑一句"打开 VS Code,把自动保存延迟改成 500 毫秒",然后它真的动手去点、去输、去设置,做完还给你一份带截图的报告——这就是 UI-TARS Desktop 日常工作的样子。它是一款基于 UI-TARS 视觉语言模型(VLM)的开源桌面应用:看懂屏幕、定位元素、模拟你的鼠标和键盘,把"说"直接变成"做",全程不需要写一行脚本,也不需要精确坐标。
这篇文章带你走完最短路径:装好应用、配好模型、跑通三个真实任务,最后再讲清楚它内部是怎么运转的,以及怎么按自己的场景调优。
它和传统自动化到底差在哪
UI-TARS Desktop 的定位一句话讲清:一个跑在本地电脑上的 GUI Agent(图形界面智能体),用视觉理解代替坐标硬编码。
| 对比维度 | 传统 RPA / 自动化脚本 | UI-TARS Desktop |
|---|---|---|
| 定位元素靠什么 | 固定坐标、XPath、控件树 | 视觉语言模型直接"看懂"截图 |
| 界面改版后 | 脚本大概率失效,要重新维护 | 重新识别元素,通常继续可用 |
| 上手成本 | 学脚本语言 + 录制器 | 输入一句自然语言指令 |
| 能覆盖的平台 | 单一系统、单一应用 | 本地桌面 + 浏览器,Windows / macOS |
| 执行过程 | 黑盒跑完看结果 | 实时反馈每一步动作与截图 |
它自带两类操作器(Operator):本地操作器控制你自己这台电脑和浏览器,远程操作器可以云端接管另一台机器,两者都不额外收费(远程服务以官方当前政策为准)。
三步跑起来:环境检查到应用启动
先确认三件事,1 分钟搞定:
- 系统:macOS 12+ 或 Windows 10/11;单显示器环境最稳,多屏可能导致部分任务失败;
- 浏览器:用浏览器任务前,装好 Chrome、Edge 或 Firefox 之一;
- 模型:准备一个 OpenAI 兼容的 VLM 服务(后文会给最省事的路子)。
macOS 用户可以直接用 Homebrew 安装:
# 一键安装 UI-TARS Desktop(需已装 Homebrew) brew install --cask ui-tarsWindows 用户从发布页下载对应安装包即可。如果习惯从源码入手,仓库里也提供了完整的 pnpm 工程:
# 克隆仓库并安装依赖 git clone https://gitcode.com/GitHub_Trending/ui/UI-TARS-desktop cd UI-TARS-desktop pnpm install安装后把应用拖进 Applications,双击打开。macOS 用户必须手动放行两个系统权限,这是后面"能看懂屏幕、能动鼠标"的前提:
- 系统设置 → 隐私与安全性 →辅助功能(Accessibility):允许模拟键鼠
- 系统设置 → 隐私与安全性 →屏幕录制(Screen Recording):允许截取当前画面
Windows 侧启动后界面如下,首次打开会有一个用户协议页,确认后进入主界面:
动手做三个真实任务
模型配好之前先别急,这里先看"输入 → 执行 → 结果"的完整链路长什么样,配置部分下一节细讲。
任务一:让 AI 改 VS Code 设置
在输入框里写一句完整的自然语言指令:
"Please help me open the autosave feature of VS Code and delay AutoSave operations for 500 milliseconds in the VS Code setting."
提交后界面进入执行模式:左侧滚动展示每一步的截图与模型决策,右侧实时操作你的屏幕。
执行过程中你可以随时接管:
跑完之后,它给出完成状态并生成一份带时间线和截图的 HTML 报告,可以导出留档或分享给同事。
任务二:浏览器里查项目动态
"Could you help me check the latest open issue of the UI-TARS-Desktop project on GitHub?"
浏览器操作器会自己打开已安装的 Chrome/Edge/Firefox,导航、搜索、点开页面、定位"最新 open issue",全程你不用碰鼠标。
任务三:执行到一半想叫停
长任务跑到一半觉得方向不对,直接点停止即可,不会留下半截操作:
三个任务背后是同一套机制:截图 → 模型推理出下一步动作 → 操作器执行 → 再截图验证,循环直到任务完成或达到步数上限。
最快配置方法:5 个字段接通模型
桌面应用本身不带大模型,它调用一个 OpenAI 兼容的 VLM 接口。打开应用右上角的设置,核心就是 5 个字段:
路线 A:Hugging Face 部署 UI-TARS-1.5(海外网络友好)。在 Hugging Face 端点页面点 Deploy,选UI-TARS-1.5-7B:
部署完成后从端点详情页拿到 Base URL、API Key 和模型名,回填到设置里:
# Hugging Face 部署示例(Base URL 必须以 /v1 结尾) Language: en VLM Provider: Hugging Face for UI-TARS-1.5 VLM Base URL: https://xxx-endpoint.huggingface.cloud/v1 VLM API KEY: hf_xxx VLM Model Name: tgi路线 B:火山引擎 Doubao-1.5-UI-TARS(国内网络友好)。在控制台点"立即体验"开通,切到 OpenAI SDK 标签页复制 Base URL 和模型名:
# 火山引擎示例 Language: cn VLM Provider: VolcEngine Ark for Doubao-1.5-UI-TARS VLM Base URL: https://ark.cn-beijing.volces.com/api/v3 VLM API KEY: ARK_API_KEY VLM Model Name: doubao-1.5-ui-tars-250328两个容易踩的坑,提前记住:
- Provider 必须和模型匹配。用 HF 的 UI-TARS-1.5 就选
Hugging Face for UI-TARS-1.5,选错会导致动作解析失败——这不是网络问题,是解析协议对不上。 - Base URL 结尾格式要看清,HF 端点要求以
/v1结尾。
填完后点Check Model Availability,绿灯亮起再接着玩。其余常用参数都在设置页:
| 参数 | 作用 | 默认值 | 建议 |
|---|---|---|---|
| Language | 控制 VLM 输出语言(en/zh) | en | 与指令语言一致即可 |
| Max Loop | 单轮任务最大步数,25–200 | 100 | 长流程调大,别无限开 |
| Loop Wait Time | 每步截图前的等待毫秒数,0–3000 | 1000 | 页面加载慢就调大 |
| 浏览器搜索引擎 | 浏览器任务的起始搜索页 | 按网络环境选 |
多人共用一台机器、或想让团队配置保持一致时,可以把这套参数存成 YAML 预设,从文件或 URL 导入,URL 方式每次启动应用自动拉取更新:
# 预设文件示例,存成 .yaml 后在设置页导入 name: team-ui-tars language: cn vlmProvider: VolcEngine Ark for Doubao-1.5-UI-TARS vlmBaseUrl: https://ark.cn-beijing.volces.com/api/v3 vlmApiKey: ARK_API_KEY vlmModelName: doubao-1.5-ui-tars-250328预设机制的细节(本地文件 vs 远程 URL 的差异)见 docs/preset.md。
拆开看:一条指令在应用里怎么走
配好之后别当黑盒用,花两分钟理解内部机制,排查问题会快很多。
一条指令的完整旅程是:应用截图并连同指令发给 VLM → VLM 返回结构化动作(如click(start_box='(27,496)'))→ 操作器在屏幕上执行 → 再截图进入下一轮,直到模型判断任务结束。这就是 UTIO(UI-TARS Insights and Observation)事件流贯穿的部分,同时承担执行过程的数据采集与报告生成:
源码层面,Electron 主进程的结构相当清晰(apps/ui-tars/src/main/):
apps/ui-tars/src/main/ ├── agent/ # GUI Agent 核心:操作器调度与提示词 ├── ipcRoutes/ # 渲染进程通信:截屏、浏览器、权限、设置 ├── remote/ # 远程操作器:鉴权、订阅、代理客户端 ├── services/ # 后台服务:任务运行、窗口管理、事件上报 ├── store/ # 本地设置存储与参数校验 └── utils/ # 系统权限、截屏、图像处理真正"动手"的能力被抽成了独立的操作器包(packages/ui-tars/operators/):nut-js(桌面键鼠)、browser-operator(浏览器)、adb(安卓)、browserbase(云端浏览器)。桌面应用只是把"模型 + 操作器"打包好的开箱形态——这一点直接决定了它好扩展,下一部分就讲扩展。
按场景调优:参数怎么搭配才舒服
不用追求"最优配置",按使用场景套下面这张表就行:
| 你的场景 | 模型选择 | Max Loop | Loop Wait Time | 调整思路 |
|---|---|---|---|---|
| 日常办公:开关软件、简单表单 | Doubao-1.5-UI-TARS 或 UI-TARS-1.5-7B | 50–100 | 1000ms | 保持默认,够用 |
| 复杂多步:跨应用流程、多标签页浏览器操作 | 同上,建议稳定端点 | 100–150 | 2000ms+ | 步数留够余量,慢加载页面靠等待时间救 |
| 云端模型延迟高、token 消耗大 | 支持 Responses API 的端点 | 默认 | 默认 | 设置里打开 "Use Responses API",官方明确说能降 token 消耗、提速 |
| 团队共用配置 | 任意,固化成预设 | 统一 | 统一 | 用 YAML/URL 预设分发,避免每人各改各的 |
| 需要复盘与分享结果 | 任意 | 默认 | 默认 | 设置报告存储 Base URL 后,导出即得可访问链接 |
两条经验值:任务频繁在中途"停手",先查是不是 Max Loop 太小;任务动作总是点空或点旧页面上残留的元素,把 Loop Wait Time 加到 2000ms 再试。
出问题先查这四处
1. 点 Check Model Availability 不通过
- 核对 Base URL 是否以
/v1结尾(HF 端点硬性要求); - Provider 是否选成了匹配项(HF-1.5 模型 ≠ HF-1.0 Provider);
- API Key 是否复制完整、有没有多余空格;
- 国内网络直连 HF 失败的话,换火山引擎路线。
2. AI 能看不能动(只截图、不执行)
macOS 十有八九是权限没给全:辅助功能和屏幕录制都要打开,并且要重启应用才生效。给完权限后退出应用再打开一次。
3. 浏览器任务起不来
浏览器操作器依赖系统里真实安装的 Chrome/Edge/Firefox,光有应用图标不够。装好后重启 UI-TARS,再发起浏览器任务。
4. 任务中途"卡住"或反复截图同一画面
- 页面加载慢:调大 Loop Wait Time;
- 弹了模态框挡住操作:手动关掉弹窗后任务通常自己恢复;
- 确实跑偏了:直接点终止,重写一句更明确的指令,指令里写清"在哪个应用、改哪个具体项"比"帮我优化一下设置"成功率高得多。
5. 多显示器用户偶发失败
官方明确提示目前对单屏环境支持最好。重要任务前,临时切到单屏输出最稳妥。
从用户到开发者:扩展与进阶
想换控制方式?桌面应用之外,同一个模型服务可以驱动 CLI:
# 终端里直接控制电脑,输入模型配置后按自然语言操作 npx @ui-tars/cli start想嵌进自己的产品?@ui-tars/sdk把"模型 + 操作器"拆成了可组装的两块,Node 和浏览器里都能跑:
import { GUIAgent } from '@ui-tars/sdk'; import { NutJSOperator } from '@ui-tars/operator-nut-js'; const guiAgent = new GUIAgent({ model: { baseURL, apiKey, model }, // 任意 OpenAI 兼容 VLM operator: new NutJSOperator(), // 换成 WebOperator 即可控制浏览器 onData: ({ data }) => console.log(data), }); await guiAgent.run('open Chrome and search UI-TARS');操作器是一个接口(screenshot()+execute()),官方已提供 nut-js、browser、adb、browserbase 四种实现,自己实现同一接口就能接入新的受控端。完整参数(signal中断、onData状态机、自定义 systemPrompt)都在 docs/sdk.md。
学习路径,按顺序啃不会绕路:
- docs/quick-start.md——从下载到第一次任务;
- docs/setting.md——每个配置项的类型、取值范围和默认值;
- docs/preset.md——预设分发,团队场景必备;
- docs/sdk.md——自建 Agent 与自定义操作器;
- docs/deployment.md——模型部署入口(1.5 版本已切换到官方部署指南,1.0 旧方案归档在 docs/archive-1.0/)。
贡献代码前先看根目录的 CONTRIBUTING.md;遇到 bug 和应用行为不一致,先对照 README 的更新日志确认自己用的是不是最新版。
写在最后
- 🎯说人话就能操作电脑:视觉语言模型驱动,不写脚本、不记坐标
- 🖥️桌面 + 浏览器双操作器:本地操作、远程操作都能跑
- 📦开源且可组装:
@ui-tars/sdk+ 可插拔操作器,能塞进你自己的产品 - 📊每步可回放:执行过程带截图,结果生成可分享的 HTML 报告
- 🔧配置有兜底:Check Model Availability、预设导入、参数范围校验都内置了
现在就去把 VLM 五件套填进设置页,用一句"打开计算器并算 123 × 456"验证全链路——跑通那一刻,你就有了一个真正动手的 AI 助手。
【免费下载链接】UI-TARS-desktopThe Open-Source Multimodal AI Agent Stack: Connecting Cutting-Edge AI Models and Agent Infra项目地址: https://gitcode.com/GitHub_Trending/ui/UI-TARS-desktop
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考