Workshop

UI-TARS Desktop:ByteDance 开源桌面自动化 AI Agent 实战指南

5 min read ·

为什么桌面自动化需要 AI Agent?

传统的桌面自动化工具(如 AutoHotkey、PyAutoGUI)依赖硬编码的坐标和像素匹配,UI 稍有变化就会失效。而 RPA 平台(如 UiPath、Automation Anywhere)虽然功能强大,但配置复杂、许可费用高昂,且对非标准界面的适应性有限。

AI Agent 的出现改变了这个局面。通过视觉理解 + 自然语言指令,Agent 可以像人类一样”看到”屏幕内容,理解界面布局,然后执行鼠标点击、键盘输入等操作。你只需要告诉它”打开 Excel,把 A 列的数据求和填到 B1”,它就能自己完成。

ByteDance 开源的 UI-TARS Desktop 正是这一方向的代表作。截至 2026 年 5 月,GitHub 星标已超过 12,000,是桌面自动化领域最活跃的开源项目之一。

UI-TARS 架构解析

UI-TARS 的技术栈分为三层:

感知层:截图 + OCR + UI 元素识别

截图捕获 → 视觉编码器(ViT) → UI 元素检测 → 结构化场景描述

Agent 每一步都会截取当前屏幕,通过视觉模型解析 UI 元素的位置、类型和文本内容。这个过程不依赖 DOM 或 Accessibility API,纯视觉驱动,因此可以操作任意应用。

决策层:多模态 LLM 推理

感知层的输出(结构化 UI 描述 + 截图)与用户指令一起送入多模态 LLM。模型需要:

  1. 理解当前界面状态
  2. 规划下一步操作
  3. 输出具体的动作指令(点击坐标、输入文本、快捷键等)

UI-TARS 支持多种后端模型:

模型特点适用场景
UI-TARS-7B(本地)轻量、离线运行简单表单填写、重复操作
UI-TARS-72B(本地)高精度、需要强 GPU复杂多步任务
GPT-4o(API)强视觉理解通用桌面操作
Claude Sonnet(API)精确指令跟随文档处理、代码操作

执行层:系统级操控

决策层输出的动作通过系统 API 执行:

interface Action {
  type: 'click' | 'doubleClick' | 'rightClick' | 'type' | 'hotkey' | 'scroll' | 'drag';
  coordinates?: { x: number; y: number };
  text?: string;
  keys?: string[];
}

macOS 使用 CoreGraphics API,Windows 使用 Win32 API,确保操作精确可靠。

本地部署实战

前置条件

Step 1:克隆并安装

git clone https://github.com/bytedance/UI-TARS-desktop.git
cd UI-TARS-desktop

# 安装依赖
npm install

# 构建桌面客户端
npm run build

Step 2:配置模型后端

config/settings.json 中选择模型:

{
  "model": {
    "provider": "openai",
    "apiKey": "sk-your-api-key",
    "model": "gpt-4o",
    "baseUrl": "https://api.openai.com/v1"
  },
  "safety": {
    "confirmBeforeExecute": true,
    "allowedApps": ["*"],
    "blockedActions": ["shutdown", "format"]
  }
}

如果使用本地模型,配置 Ollama 后端:

{
  "model": {
    "provider": "ollama",
    "model": "ui-tars:7b",
    "baseUrl": "http://localhost:11434"
  }
}

Step 3:启动并授权

npm run start

首次启动时,macOS 会要求授予”辅助功能”权限(System Settings → Privacy & Security → Accessibility),Windows 需要以管理员模式运行。

Step 4:执行第一个任务

在 UI-TARS 的输入框中输入自然语言指令:

打开系统计算器,计算 1024 * 768,然后截图保存到桌面

Agent 会依次执行:

  1. 通过 Spotlight/开始菜单打开计算器
  2. 逐步点击数字和运算符
  3. 截图并保存

整个过程你可以在 UI-TARS 的操作日志中实时查看每一步的截图和决策。

高级用法:多步工作流

场景 1:批量数据录入

打开 Excel 文件 /Users/demo/data.xlsx,
从第 2 行开始,把 A 列的公司名逐个粘贴到浏览器的 CRM 搜索框中,
搜索后把搜索结果页面中的联系人姓名和电话复制回 Excel 的 C 列和 D 列

这个任务涉及跨应用操作(Excel ↔ 浏览器),传统 RPA 需要分别配置两个应用的自动化脚本,UI-TARS 只需一段自然语言描述。

场景 2:自动化测试

# 使用 Python SDK 编写自动化测试脚本
from uitars import Agent

agent = Agent(model="gpt-4o")

# 定义测试步骤
agent.execute("""
1. 打开 Chrome 并访问 http://localhost:3000
2. 在登录页面输入用户名 admin 和密码 test123
3. 点击登录按钮
4. 验证页面标题包含 "Dashboard"
5. 截图保存测试结果
""")

# 检查执行结果
assert agent.last_screenshot_contains("Dashboard")

场景 3:定时巡检

结合 cron 定时任务,实现无人值守的系统巡检:

# crontab -e
0 9 * * * cd /path/to/ui-tars && node scripts/run-task.js "检查 Grafana 仪表板是否有红色告警,如果有则截图并通过飞书发送给运维群"

与同类工具的对比

维度UI-TARS DesktopClaude Computer UseOpenAI Operator
开源是(Apache 2.0)
运行方式本地客户端云端 + 远程桌面云端沙盒
操作范围完整桌面完整桌面仅浏览器
离线运行支持(本地模型)不支持不支持
数据隐私数据不出本地截图上传到 API截图上传到 API
自定义模型支持任意模型仅 Claude仅 GPT-4o
社区生态活跃,插件系统

UI-TARS 最大的优势是本地优先 + 开源,适合对数据隐私有要求的企业场景。

常见坑与解决方案

1. 高 DPI 显示器坐标偏移

Retina 屏幕的逻辑坐标和物理坐标不一致,导致点击位置偏移:

{
  "display": {
    "scaleFactor": 2,
    "useLogicalCoordinates": true
  }
}

2. 弹窗干扰

系统通知或应用弹窗会打断任务执行。建议:

3. 操作速度过快

有些应用需要等待加载,Agent 操作过快会导致界面还没渲染就执行下一步:

{
  "execution": {
    "stepDelay": 500,
    "waitForIdle": true,
    "idleTimeout": 3000
  }
}

4. 截图模糊导致识别失败

确保截图分辨率足够。如果使用虚拟桌面或远程连接,建议设置至少 1920x1080 分辨率:

{
  "capture": {
    "quality": "high",
    "format": "png"
  }
}

安全最佳实践

桌面自动化涉及系统级权限,安全不容忽视:

  1. 最小权限原则:在 allowedApps 中只列出需要操作的应用
  2. 操作审计:启用 "logAllActions": true,记录每一步操作的截图和决策
  3. 沙盒隔离:对于不信任的任务,在虚拟机中运行
  4. API Key 管理:使用环境变量而非硬编码存储密钥
  5. 网络隔离:如果使用本地模型,可以完全断开网络运行

小结

UI-TARS Desktop 让桌面自动化从”编写脚本”进化到”描述任务”。它的核心价值在于:

对于需要大量重复性桌面操作的团队(测试、数据录入、运维巡检),UI-TARS 是值得尝试的工具。建议从简单任务开始,逐步验证稳定性后再用于生产环境。

项目地址:https://github.com/bytedance/UI-TARS-desktop

Frequently asked questions

UI-TARS Desktop 与 Browser Use 等浏览器自动化工具有什么区别?
UI-TARS Desktop 操作范围覆盖整个桌面系统,不限于浏览器。它通过截图理解 UI 元素,可以操控任意桌面应用(如 Excel、Photoshop、终端),而 Browser Use 仅限于网页操作。
UI-TARS 支持哪些操作系统?
UI-TARS Desktop 目前支持 macOS 和 Windows,基于 Electron 构建桌面客户端。Linux 支持在社区贡献中推进,但官方尚未完全适配。
运行 UI-TARS Desktop 需要什么硬件配置?
推荐至少 16GB 内存和支持 CUDA 的 NVIDIA GPU(如 RTX 3060 及以上)。如果使用云端 API(如 GPT-4o 或 Claude),则对本地 GPU 无硬性要求,但需要稳定的网络连接。
UI-TARS 如何保证操作安全性,不会误删文件或执行危险操作?
UI-TARS 内置了操作确认机制,关键操作(如删除文件、发送消息)会在执行前弹出确认对话框。此外,用户可以配置操作白名单,限制 Agent 只能操作指定的应用程序。
UI-TARS Desktop 可以用于企业级 RPA 场景吗?
可以,但需要注意安全合规。UI-TARS 适合内部工具自动化、数据录入、报表生成等场景。相比传统 RPA 工具,它不需要预定义流程,能通过自然语言描述任务即可执行。