一天一个开源项目(第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,直接像人一样看着屏幕、动手操作,这是通往通用计算机代理的一条最务实的路径。


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

相关推荐
青岛前景互联信息技术有限公司1 小时前
OpenClaw 重构智慧消防:AI时代的平台融合实践
大数据·人工智能
一直会游泳的小猫1 小时前
DocuSeal - 开源电子签名平台
开源·电子签·免费开源·自托管
梦梦代码精1 小时前
BuildingAI 上部署自定义工作流智能体:5 个实用技巧
大数据·人工智能·算法·开源软件
极客老王说Agent2 小时前
2026智造前瞻:实在Agent生产排期智能助理核心功能与使用方法详解
大数据·人工智能·ai·chatgpt
Mr_pyx2 小时前
Spring AI 入门教程:Java开发者的AI应用捷径
java·人工智能·spring
扬帆破浪2 小时前
开源免费的WPS AI 软件 察元AI文档助手:链路 053:AIAssistantDialog 选区翻译的 streamChatCompletion
开源·wps
巫山老妖2 小时前
鹅厂十年:三段式技术成长复盘
android·人工智能·程序员
aircrushin2 小时前
英伟达份额从95%跌到0,DeepSeek V4选择国产芯片
人工智能