一天一个开源项目(第98篇):UI-TARS-Desktop - 字节跳动开源的多模态 GUI 代理栈

引言

"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 像新员工一样,"看着屏幕学会用这个系统",然后自动完成任务。

使用场景

  1. 跨软件自动化工作流

    • 在不同桌面软件间传递数据(如从 Excel 读取数据,填入企业系统表单),无需任何 API 集成。
  2. 智能浏览器操控

    • 自动化复杂的 Web 操作:多步骤表单填写、动态内容交互、需要登录的网站数据采集。
  3. GUI 软件测试

    • 用自然语言描述测试用例,AI 自动在真实界面上执行并验证结果,无需维护脆弱的 XPath 或坐标定位脚本。
  4. 个人效率助理

    • 用语音或文字描述任务,AI 帮你在电脑上完成------整理文件、批量修改、搜索汇总。
  5. 无障碍辅助

    • 为运动障碍用户提供语音控制计算机的能力,超越传统无障碍工具的局限。

快速开始

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

核心特性

  1. 视觉语言理解(Vision-Language Understanding)

    UI-TARS 不是简单的"截图 + OCR",而是用专门针对 GUI 理解训练的视觉语言模型:

    • 语义理解:不只识别文字,理解按钮的功能、表单的结构、页面的布局逻辑
    • 空间推理:知道"点击搜索框右侧的按钮"意味着什么
    • 状态感知:能区分"加载中的按钮"和"可点击的按钮"
  2. 混合浏览器代理策略(Hybrid Browser Agent)

    这是 Agent TARS 最有技术深度的设计------三种浏览器操控策略可以动态切换:

    策略 原理 适用场景
    GUI Agent 模式 纯视觉感知,模拟鼠标点击 任意网站,无需 DOM 访问
    DOM 模式 直接操作页面 DOM 结构 结构化网页,速度更快
    混合模式 视觉定位 + DOM 操作结合 复杂动态页面

    混合模式的优势:遇到 Canvas 渲染或动态生成内容时切换视觉模式,遇到标准 HTML 元素时切换 DOM 模式------兼顾鲁棒性和效率。

  3. 事件流驱动架构(Event Stream Protocol)

    传统代理用"消息历史"传递上下文,UI-TARS 用事件流

    css 复制代码
    [截图事件] → [用户指令] → [思考过程] → [工具调用] → [操作结果] → [新截图] → ...

    每个 UI 状态变化都作为事件被记录,让代理:

    • 精确追踪每一步操作的前后状态
    • 在操作失败时准确定位问题所在
    • 支持操作回放和调试(Event Stream Viewer)
  4. 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"------视情况选择最高效的方式。

  5. 跨平台计算机操控

    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 操控问题的"提供了难得的透明窗口。


项目地址与资源

官方资源

适用人群

  • 开发者/自动化工程师:需要自动化无 API 的遗留系统或复杂 Web 流程
  • AI 研究者:研究多模态代理、GUI 理解、Computer Use 方向
  • 效率工具爱好者:希望用自然语言指挥电脑完成繁琐任务
  • 测试工程师:探索基于视觉的 GUI 测试新范式

总结与展望

核心要点回顾

  1. 字节跳动出品,32.3k Stars,多模态 GUI 代理栈的代表性开源项目
  2. 双子项目设计:Agent TARS(开发者工具)+ UI-TARS Desktop(普通用户桌面应用)
  3. 三种浏览器策略(GUI / DOM / 混合),动态选择最优操控方式
  4. 事件流架构让每一步 GUI 操控都可追踪、可回放、可调试
  5. UI-TARS 专用模型在 GUI 任务基准测试上达到 SOTA,不是通用模型的简单套用

一句话评价

UI-TARS-Desktop 让 AI 真正拥有了"眼睛和手"------不再需要 API,直接像人一样看着屏幕、动手操作,这是通往通用计算机代理的一条最务实的路径。


欢迎来我的个人主页找到更多有用的知识和有趣的产品

相关推荐
yyywxk2 小时前
ICML 2026 目标检测(object detection)方向上接收论文总结
人工智能·目标检测·计算机视觉
vibecoding778 小时前
一文搞懂企业级 API 网关选型:12 个维度、4 类企业、7 步落地
人工智能·大模型·ai编程
Rocktech_ruixun8 小时前
机器人本地跑LLM大模型对主板硬件有什么要求?瑞迅科技RK3588/3568方案选型解析
人工智能·科技·嵌入式硬件·机器人·边缘计算
yxlalm8 小时前
Spring AI+RAG 01-项目背景与技术选型
java·人工智能·spring
tedcloud1238 小时前
Wand-Enhancer 怎么搭建?开源 Wand 客户端增强与远程控制工具介绍
大数据·服务器·人工智能·开源·音视频
科技苑8 小时前
如何用Python编程实现一个简单的Web爬虫?
人工智能·python
迅利科技9 小时前
新能源汽车零部件研发,SIMULIA一站式仿真解决方案如何缩短研发周期
人工智能·汽车
嘉琪coder9 小时前
我做了一个 Chrome 扩展,把 YouTube 播放列表批量变成 AI 可读的本地 Markdown
chrome·开源·浏览器
Databuff9 小时前
AI SSH工具,集齐SSH、SFTP、知识库RAG、AI助手
网络·人工智能·ssh
Blockchina9 小时前
从一篇文章到一条完整视频:用 Codex 搭建可复用的 AI 视频生产线
人工智能