UI-TARS-desktop:原生多模态 GUI Agent 开源应用
项目概述
什么是 UI-TARS?
UI-TARS (User Interface - Task Automation through Reasoning and Self-play,用户界面 - 通过推理与自博弈实现任务自动化)是字节跳动(ByteDance)研究团队开发的开源 GUI Agent(图形用户界面智能代理)应用栈。它基于原生多模态大语言模型(Native Multimodal LLM),能够通过自然语言指令自主控制计算机,实现桌面交互自动化。
UI-TARS-desktop 是该项目的桌面应用实现,包含两个核心组件:
| 组件 |
说明 |
| Agent TARS |
通用多模态 AI Agent CLI/Web UI 框架,支持 MCP(Model Context Protocol)集成 |
| UI-TARS Desktop |
基于 UI-TARS 模型的桌面 GUI Agent 应用,支持自然语言控制 |
项目定位
目标用户
| 用户群体 |
应用场景 |
| AI 研究人员 |
GUI Agent 学术研究、模型定制开发 |
| 自动化工程师 |
RPA 工作流开发、企业自动化集成 |
| QA 测试人员 |
应用自动化测试、UI 验证 |
| 企业用户 |
跨应用工作流自动化、数据录入自动化 |
核心架构设计
四大模块统一集成
UI-TARS-desktop 采用 Unified Architecture(统一架构),将感知、推理、动作、记忆四大模块集成到单一原生多模态 LLM 中:
┌─────────────────────────────────────────────────────────┐
│ UI-TARS Native Multimodal LLM │
├─────────────┬─────────────┬─────────────┬───────────────┤
│ Perception │ Reasoning │ Action │ Memory │
│ (感知) │ (推理) │ (动作) │ (记忆) │
└─────────────┴─────────────┴─────────────┴───────────────┘
模块详解
| 模块 |
功能描述 |
技术实现 |
| Perception Module(感知模块) |
处理桌面截图和视觉输入;识别 UI 元素、文本、图标和布局 |
Vision Encoder 直接处理原始截图,无需 OCR 或 Accessibility Tree |
| Reasoning Module(推理模块) |
任务理解与分解;多步骤规划与 Chain-of-Thought(思维链)推理;状态分析与决策 |
System-2 Reasoning 深度推理,支持 Task Decomposition、Reflection Thinking |
| Action Module(动作模块) |
生成鼠标键盘动作;支持 click、type、scroll、hotkey、drag 等操作 |
Unified Action Modeling 跨平台统一动作空间 |
| Memory Module(记忆模块) |
维护对话历史和任务上下文;支持 Long-horizon Task(长周期任务) |
反思与自纠正机制,迭代训练优化 |
核心架构优势
| 特性 |
说明 |
| Native Multimodal LLM |
四大模块集成于一体,无需独立专用模型,端到端训练 |
| No OCR Dependency |
直接处理原始截图,不依赖 OCR 或 Accessibility API,跨应用更稳健 |
| Cross-Platform |
支持 Windows、macOS、Linux 及 Android 移动平台 |
| Iterative Training |
自动收集、过滤、refining 交互轨迹,从错误中学习 |
模型规格
模型变体
| 模型名称 |
参数规模 |
适用场景 |
| UI-TARS-2B-SFT |
2B(20亿) |
轻量级版本,适合 Edge Deployment(边缘部署) |
| UI-TARS-7B-SFT |
7B(70亿) |
标准桌面代理,通用 GUI 任务 |
| UI-TARS-72B-SFT |
72B(720亿) |
最强版本,处理复杂多步骤任务 |
| UI-TARS-1.5-7B |
7B |
当前开源版本,性能优于 72B-DPO |
技术基础
Benchmark 性能表现
基准测试结果
UI-TARS 在 10+ GUI Agent benchmarks 上实现 SOTA(State-of-the-Art)性能:
| Model |
OSWorld (50 steps) |
OSWorld (15 steps) |
AndroidWorld |
| UI-TARS-72B-SFT |
24.6% |
22.7% |
46.6% |
| Claude Computer Use |
22.0% |
14.9% |
- |
| GPT-4o |
9.1% |
- |
34.5% |
| Human Baseline |
~36.7% |
- |
- |
基准说明
| Benchmark |
说明 |
| OSWorld |
评估 GUI Agent 在真实计算机任务上的表现(文件操作、应用使用、多步骤工作流、跨应用任务) |
| AndroidWorld |
评估 Android 平台 GUI 自动化能力 |
| WindowsAgentArena |
Windows 平台 GUI 任务基准 |
注:当前所有模型仍远低于人类基线(~36.7%),GUI Agent 技术处于快速发展阶段。
技术栈与项目结构
技术栈概览
| 类别 |
详情 |
| Primary Language |
TypeScript (87%) |
| Secondary Languages |
MDX、JavaScript、CSS、Less、HTML、Shell |
| Package Manager |
pnpm (Monorepo workspaces) |
| Runtime |
Node.js >= 22 |
| License |
Apache 2.0 |
Monorepo 结构
UI-TARS-desktop/
├── packages/
│ ├── agent-infra/ # Agent 基础设施层
│ ├── common/ # 公共组件与工具
│ └── ui-tars/ # UI-TARS 核心包(Agent 逻辑与模型交互)
├── docs/ # 文档目录
└── applications/ # 桌面应用入口
Agent TARS 核心特性
| 特性 |
说明 |
| Hybrid Browser Agent |
支持 GUI Agent (Visual Grounding)、DOM 或混合策略控制浏览器 |
| Event Stream |
Protocol-driven 机制驱动 Context Engineering 与 Agent UI |
| MCP Integration |
内核基于 MCP 构建,支持挂载 MCP Servers 连接真实工具 |
| One-Click CLI |
支持 headful Web UI 与 headless server execution |
安装与配置
系统要求
| 项目 |
要求 |
| 操作系统 |
macOS / Windows(Linux 支持有限) |
| 显示器 |
单显示器配置(多显示器可能导致任务失败) |
| Node.js(CLI) |
>= 22 |
| GPU(本地模型) |
Nvidia L40S/L4/A100(推荐 48GB 显存) |
安装方式
方式一:下载桌面应用(推荐普通用户)
下载地址 : GitHub Releases
MacOS 安装:
- 将 UI TARS 应用拖入 Applications 文件夹
- 启用系统权限:
系统设置 → 隐私与安全 → 辅助功能
系统设置 → 隐私与安全 → 屏幕录制
Homebrew 安装:
brew install --cask ui-tars
Windows 安装 :
直接运行下载的安装程序。
方式二:Agent TARS CLI(开发者)
# 使用 npx 直接运行
npx @agent-tars/cli@latest
# 或全局安装
npm install @agent-tars/cli@latest -g
# 启动时指定模型
agent-tars --provider volcengine \
--model doubao-1-5-thinking-vision-pro-250428 \
--apiKey your-api-key
agent-tars --provider anthropic \
--model claude-3-7-sonnet-latest \
--apiKey your-api-key
方式三:SDK 编程方式
Python SDK:
pip install ui-tars
TypeScript SDK:
npx @ui-tars/cli start
模型配置
选项 A:HuggingFace Inference Endpoints(开源推荐)
- 访问 HuggingFace Endpoints
- 选择模型
UI-TARS-1.5-7B
- 硬件配置:
GPU L40S 1GPU 48G(推荐 Nvidia L4/A100)
- 容器参数:
Max Input Length: 65536
Max Batch Prefill Tokens: 65536
- 环境变量:
CUDA_GRAPHS=0、PAYLOAD_LIMIT=8000000
配置示例:
Language: en
VLM Provider: Hugging Face for UI-TARS-1.5
VLM Base URL: https://xxx/v1/ # 需以 /v1/ 结尾
VLM API KEY: hf_xxx
VLM Model Name: tgi
选项 B:火山引擎 Doubao-1.5-UI-TARS
- 访问 VolcEngine 控制台
- 获取 API Key 和 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: YOUR_API_KEY
VLM Model Name: doubao-1.5-ui-tars-250328
配置项说明
| 配置项 |
默认值 |
说明 |
| VLM Provider |
必填 |
选择正确 Provider 以确保 Action 解析 |
| VLM Base URL |
必填 |
OpenAI 兼容 API 端点 |
| VLM API Key |
必填 |
API 密钥 |
| VLM Model Name |
必填 |
模型名称 |
| Language |
en |
控制 VLM 输出语言(不影响 App 界面) |
| Max Loop |
100 |
每轮对话最大步数(范围 25-200) |
| Loop Wait Time |
1000 |
每次循环等待时间(范围 0-3000) |
| Browser Search Engine |
Google |
本地浏览器搜索引擎 |
| Use Responses API |
false |
启用后减少 token 消耗、提升响应速度 |
使用示例
桌面应用使用流程
- 完成模型配置后,点击 "Check Model Availability" 验证
- 选择使用场景:Computer Operator 或 Browser Operator
- 输入自然语言指令,例如:
"在 booking.com 上预订洛杉矶的酒店"
Python SDK 示例
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)')"
original_image_width, original_image_height = 1920, 1080
parsed_dict = parse_action_to_structure_output(
response,
factor=1000,
origin_resized_height=original_image_height,
origin_resized_width=original_image_width,
model_type="qwen25vl"
)
parsed_pyautogui_code = parsing_response_to_pyautogui_code(
responses=parsed_dict,
image_height=original_image_height,
image_width=original_image_width
)
TypeScript SDK 示例
import { GUIAgent } from '@ui-tars/sdk';
import { NutJSOperator } from '@ui-tars/operator-nut-js';
const guiAgent = new GUIAgent({
model: {
baseURL: config.baseURL,
apiKey: config.apiKey,
model: config.model,
},
operator: new NutJSOperator(),
onData: ({ data }) => console.log(data),
onError: ({ data, error }) => console.error(error, data),
});
await guiAgent.run('send "hello world" to x.com');
Prompt 模板选择
| 模板 |
适用场景 |
特点 |
| COMPUTER_USE |
Windows/Linux/MacOS 桌面 |
支持鼠标点击、拖拽、键盘快捷键、滚动 |
| MOBILE_USE |
Android 移动设备/模拟器 |
支持 long_press、open_app、press_home、press_back |
| GROUNDING |
轻量级任务/训练评估 |
仅输出 Action,无 Thought 推理 |
与类似项目对比
| 对比维度 |
UI-TARS-desktop |
OpenAI Operator |
Claude Computer Use |
| 开发者 |
ByteDance Research |
OpenAI |
Anthropic |
| 类型 |
开源(Open-source) |
商业/ChatGPT集成 |
API付费访问 |
| 部署方式 |
Native Desktop Application |
Web-based |
API-based |
| 主要优势 |
开源灵活性、跨平台、研究定制 |
消费者友好 |
强推理能力 |
| 适用场景 |
研究项目、自定义集成 |
日常用户Web自动化 |
开发者构建自动化工具 |
UI-TARS 核心优势
| 优势 |
说明 |
| 开源可控 |
模型权重开源,可本地部署,适合研究和定制 |
| Native Vision |
原生视觉处理,不依赖 OCR 或 Accessibility API |
| Cross-Platform |
支持多操作系统和移动平台 |
| Benchmark 领先 |
OSWorld、AndroidWorld 等基准达到 SOTA |
| 隐私安全 |
全本地处理,数据不出域 |
版本演进
关键版本
| 版本 |
发布时间 |
主要特性 |
| Agent TARS CLI v0.3.0 |
2025-11 |
streaming support、Event Stream Viewer、AIO agent Sandbox |
| UI-TARS Desktop v0.2.0 |
2025-06 |
Remote Computer/Browser Operator |
| UI-TARS Desktop v0.1.0 |
2025-04 |
redesigned Agent UI、UI-TARS-1.5 模型支持 |
| UI-TARS-2 |
2025-09 |
GUI、Game、Code、Tool Use 全能模式(暂未开源) |
重要时间节点
- 论文发布 : 2025年1月21日 --- arXiv:2501.12326
- Remote Operator 服务: 2025年8月20日停止,需自建部署或使用火山引擎
参考资源
官方资源
文档与论文
Demo 视频
快速开始推荐
普通用户
- 下载桌面应用 → https://github.com/bytedance/UI-TARS-desktop/releases/latest
- 获取火山引擎 API Key → https://console.volcengine.com/ark
- 配置应用设置,验证模型可用性
- 从简单任务开始测试(如打开应用、搜索网页)
开发者
- 阅读论文 → https://arxiv.org/abs/2501.12326
- Clone 仓库 →
git clone https://github.com/bytedance/UI-TARS-desktop.git
- 使用 CLI 或 SDK 进行深度定制开发
- 在 HuggingFace 部署本地模型(如需完全本地化)