引言
"See the screen, understand the task, take the action."
这是"一天一个开源项目"系列的第98篇文章。今天带你了解的项目是 UI-TARS-Desktop。
过去几篇我们看到的 AI 代理项目------无论是 OpenHarness、Symphony 还是 Agent Skills------操作的都是"代码世界":文件、API、终端命令。而今天的 UI-TARS-Desktop 要做的是完全不同的事:让 AI 直接操控真实的桌面 GUI------不通过代码,不调用 API,就像一个真实用户一样点击按钮、填写表单、拖拽窗口。
这是字节跳动开源的多模态 AI 代理栈,32.3k Stars 的背后,是业界对"通用计算机操控代理"这一方向的高度期待。它包含两个互补的子项目:面向开发者的 Agent TARS (一个把视觉能力带进终端的通用代理)和面向普通用户的 UI-TARS Desktop(一个直接操控桌面的本地应用)。
你将学到什么
- 什么是"多模态 GUI 代理",它与传统 RPA 工具的根本差异
- Agent TARS 和 UI-TARS Desktop 的定位差异,以及各自适合的使用场景
- 混合浏览器代理策略(GUI + DOM + 混合)的技术原理
- 事件流(Event Stream)驱动架构如何实现精确的 UI 反馈
- 如何用一行命令在本地运行一个能"看懂屏幕"的 AI 代理
前置知识
- 了解 AI 代理的基本概念(知道 LLM 可以调用工具即可)
- 有 Node.js 环境(v22+)
- 有多模态模型的 API Key(Doubao、Claude 等)
项目背景
项目简介
UI-TARS-Desktop 是一个多模态 AI 代理栈,核心能力是:用视觉语言模型(Vision-Language Model)"看懂"屏幕上的 UI 元素,理解自然语言指令,然后模拟真实用户的鼠标和键盘操作来完成任务。
这与传统的 RPA(Robotic Process Automation)工具有本质区别:
- RPA:基于像素坐标或元素 ID 硬编码操作路径,界面稍有变化就会失效
- UI-TARS:理解 UI 的"语义"------它知道"保存按钮"是什么、"搜索框"应该在哪里,即使界面改变也能适应
作者/团队介绍
- 开发团队:字节跳动(ByteDance)AI 研究团队
- 背景:字节跳动在视觉语言模型领域有深厚积累,UI-TARS 系列模型(基于 Seed 系列视觉语言模型)是专门针对 GUI 理解与操控任务训练的
- 学术支撑:项目背后有对应的学术论文支撑,UI-TARS 模型在多个 GUI 代理基准测试上达到 SOTA 水平
项目数据
- ⭐ GitHub Stars: 32,300+
- 🍴 Forks: 3,200+
- 🏢 开发者: 字节跳动 AI 团队
- 📄 License: Apache-2.0
- 🌐 仓库: bytedance/UI-TARS-desktop
主要功能
核心作用
UI-TARS-Desktop 解决的核心问题是:如何让 AI 代理与任意软件交互,而不依赖该软件提供 API 或插件支持。
想象这个场景:你有一个老旧的企业内部系统,没有 API、没有自动化接口,但你需要每天手动录入数据。传统方案是雇人或者写脆弱的 RPA 脚本。而 UI-TARS 的方案是:让 AI 像新员工一样,"看着屏幕学会用这个系统",然后自动完成任务。
使用场景
-
跨软件自动化工作流
- 在不同桌面软件间传递数据(如从 Excel 读取数据,填入企业系统表单),无需任何 API 集成。
-
智能浏览器操控
- 自动化复杂的 Web 操作:多步骤表单填写、动态内容交互、需要登录的网站数据采集。
-
GUI 软件测试
- 用自然语言描述测试用例,AI 自动在真实界面上执行并验证结果,无需维护脆弱的 XPath 或坐标定位脚本。
-
个人效率助理
- 用语音或文字描述任务,AI 帮你在电脑上完成------整理文件、批量修改、搜索汇总。
-
无障碍辅助
- 为运动障碍用户提供语音控制计算机的能力,超越传统无障碍工具的局限。
快速开始
Agent TARS(一行启动):
bash
# 无需安装,直接用 npx 运行
npx @agent-tars/cli@latest
# 指定模型提供商(默认 Doubao,也支持 Claude)
npx @agent-tars/cli@latest --model claude-opus-4-6
# 启动 Web UI 模式(可视化界面)
npx @agent-tars/cli@latest --ui
# 带具体任务启动
npx @agent-tars/cli@latest -p "帮我搜索今天的 AI 新闻并整理成摘要"
UI-TARS Desktop(桌面应用):
bash
# 克隆仓库(monorepo 结构)
git clone https://github.com/bytedance/UI-TARS-desktop.git
cd UI-TARS-desktop
# 安装依赖
pnpm install
# 启动 UI-TARS Desktop
pnpm run dev:desktop
# 或直接下载预构建的安装包(Releases 页面)
# - macOS: UI-TARS-Desktop-x.x.x.dmg
# - Windows: UI-TARS-Desktop-Setup-x.x.x.exe
配置模型(以 Claude 为例):
bash
# 通过环境变量配置
export ANTHROPIC_API_KEY=sk-ant-...
npx @agent-tars/cli@latest
# 或通过配置文件
cat > ~/.agent-tars/config.json << EOF
{
"model": {
"provider": "anthropic",
"id": "claude-opus-4-6",
"apiKey": "sk-ant-..."
}
}
EOF
核心特性
-
视觉语言理解(Vision-Language Understanding)
UI-TARS 不是简单的"截图 + OCR",而是用专门针对 GUI 理解训练的视觉语言模型:
- 语义理解:不只识别文字,理解按钮的功能、表单的结构、页面的布局逻辑
- 空间推理:知道"点击搜索框右侧的按钮"意味着什么
- 状态感知:能区分"加载中的按钮"和"可点击的按钮"
-
混合浏览器代理策略(Hybrid Browser Agent)
这是 Agent TARS 最有技术深度的设计------三种浏览器操控策略可以动态切换:
策略 原理 适用场景 GUI Agent 模式 纯视觉感知,模拟鼠标点击 任意网站,无需 DOM 访问 DOM 模式 直接操作页面 DOM 结构 结构化网页,速度更快 混合模式 视觉定位 + DOM 操作结合 复杂动态页面 混合模式的优势:遇到 Canvas 渲染或动态生成内容时切换视觉模式,遇到标准 HTML 元素时切换 DOM 模式------兼顾鲁棒性和效率。
-
事件流驱动架构(Event Stream Protocol)
传统代理用"消息历史"传递上下文,UI-TARS 用事件流:
css[截图事件] → [用户指令] → [思考过程] → [工具调用] → [操作结果] → [新截图] → ...每个 UI 状态变化都作为事件被记录,让代理:
- 精确追踪每一步操作的前后状态
- 在操作失败时准确定位问题所在
- 支持操作回放和调试(Event Stream Viewer)
-
MCP(Model Context Protocol)集成
Agent TARS 原生支持 MCP,可以连接任意 MCP 服务器,将 GUI 操控能力与结构化工具结合:
bash# 启动时加载 MCP 工具 npx @agent-tars/cli@latest \ --mcp-server filesystem \ --mcp-server github \ --mcp-server postgresql这意味着代理既可以"看着屏幕操作",也可以"直接调用 API"------视情况选择最高效的方式。
-
跨平台计算机操控
UI-TARS Desktop 提供三种操控目标:
- 本地计算机:操控当前机器的桌面和应用
- 远程计算机:通过 VNC/RDP 连接远程机器(v0.2.0+ 免费开放)
- 浏览器:专门针对 Web 浏览器的优化操控模式
项目优势
| 对比项 | UI-TARS-Desktop | 传统 RPA(UiPath/AA) | Playwright/Selenium |
|---|---|---|---|
| 适应界面变化 | 强(语义理解) | 弱(坐标/ID 硬编码) | 中(Selector 维护) |
| 无 API 软件支持 | ✅ 任意 GUI 软件 | ✅ | ❌ 需要 Web 或 API |
| 自然语言指令 | ✅ | ❌ 需要编程 | ❌ 需要编程 |
| 桌面+浏览器统一 | ✅ | ✅ | ❌ 仅浏览器 |
| 本地运行 | ✅ 隐私保护 | 依产品而定 | ✅ |
| 开源免费 | ✅ Apache-2.0 | ❌ 商业授权 | ✅ |
项目详细剖析
1. 双子项目:Agent TARS vs UI-TARS Desktop
这个仓库包含两个定位不同但互补的子项目:
less
UI-TARS-Desktop (Monorepo)
├── apps/
│ ├── agent-tars/ ← Agent TARS:面向开发者的通用代理
│ │ ├── cli/ ← 命令行入口 (npx @agent-tars/cli)
│ │ └── web/ ← Web UI 界面
│ └── ui-tars-desktop/ ← UI-TARS Desktop:面向用户的桌面应用
├── packages/
│ ├── agent-core/ ← 代理核心逻辑(共享)
│ ├── model-provider/ ← 模型提供商抽象层
│ ├── browser-use/ ← 浏览器操控引擎
│ └── computer-use/ ← 计算机操控引擎
└── scripts/ ← 构建和发布脚本
Agent TARS 是给开发者用的:
- 一行
npx命令启动 - 支持 CLI 脚本化、CI/CD 集成
- 通过 MCP 扩展工具生态
- 适合构建自动化流水线
UI-TARS Desktop 是给普通用户用的:
- 可视化桌面应用,点击即用
- 内置 UI-TARS 视觉模型(专为桌面 GUI 优化)
- 远程计算机操控(v0.2.0 免费开放)
- 适合个人效率提升
2. UI-TARS 模型:专门为 GUI 任务训练的视觉语言模型
普通的多模态大模型(如 Claude Vision、GPT-4V)虽然能"看图",但并非针对 GUI 操控优化。UI-TARS 模型的特殊之处:
- 训练数据:大量真实的 GUI 操控轨迹数据,涵盖 Windows、macOS、Web 等多种环境
- 任务形式:输入 = 屏幕截图 + 自然语言指令,输出 = 具体操作(点击坐标、键盘输入、滚动等)
- 模型规格:基于字节跳动 Seed 系列视觉语言模型,有多个参数规格版本
- 评测表现:在 ScreenSpot、Mind2Web、OSWorld 等主流 GUI 代理基准测试上达到 SOTA
perl
输入示例:
截图: [包含一个登录表单的网页截图]
指令: "用 admin@example.com 登录"
输出示例:
{
"action": "click",
"coordinate": [412, 286], // 用户名输入框的坐标
"reason": "点击用户名输入框"
}
{
"action": "type",
"text": "admin@example.com"
}
{
"action": "click",
"coordinate": [412, 342], // 密码输入框
}
...
3. 事件流查看器(Event Stream Viewer)
v0.3.0 版本新增的 Event Stream Viewer 是调试 GUI 代理任务的利器:
less
任务: "在淘宝搜索 MacBook,找到最便宜的选项并截图"
事件流:
┌─ [Screenshot] 初始桌面状态
├─ [Think] 需要打开浏览器并导航到淘宝
├─ [Action] click(browser_icon) → 打开浏览器
├─ [Screenshot] 浏览器已打开
├─ [Action] type("taobao.com") → 输入网址
├─ [Screenshot] 淘宝首页加载完成
├─ [Think] 找到搜索框,需要输入关键词
├─ [Action] click(search_box) → 点击搜索框
├─ [Action] type("MacBook") → 输入搜索词
├─ [Screenshot] 搜索结果页面
├─ [Think] 需要按价格排序找最便宜的
├─ [Action] click(price_sort_button) → 点击价格排序
├─ [Screenshot] 已按价格排序
└─ [Action] screenshot() → 截图保存
这种可视化的操作轨迹不仅方便调试,还为理解"AI 是如何思考 GUI 操控问题的"提供了难得的透明窗口。
项目地址与资源
官方资源
- 🌟 GitHub : github.com/bytedance/U...
- 📦 Agent TARS CLI : @agent-tars/cli on npm
- 📄 UI-TARS 论文: 仓库内附有对应学术论文链接
- 🏷️ Releases : GitHub Releases 页面(含预构建安装包)
适用人群
- 开发者/自动化工程师:需要自动化无 API 的遗留系统或复杂 Web 流程
- AI 研究者:研究多模态代理、GUI 理解、Computer Use 方向
- 效率工具爱好者:希望用自然语言指挥电脑完成繁琐任务
- 测试工程师:探索基于视觉的 GUI 测试新范式
总结与展望
核心要点回顾
- 字节跳动出品,32.3k Stars,多模态 GUI 代理栈的代表性开源项目
- 双子项目设计:Agent TARS(开发者工具)+ UI-TARS Desktop(普通用户桌面应用)
- 三种浏览器策略(GUI / DOM / 混合),动态选择最优操控方式
- 事件流架构让每一步 GUI 操控都可追踪、可回放、可调试
- UI-TARS 专用模型在 GUI 任务基准测试上达到 SOTA,不是通用模型的简单套用
一句话评价
UI-TARS-Desktop 让 AI 真正拥有了"眼睛和手"------不再需要 API,直接像人一样看着屏幕、动手操作,这是通往通用计算机代理的一条最务实的路径。
欢迎来我的个人主页找到更多有用的知识和有趣的产品