UI-TARS-desktop:字节跳动开源的多模态AI智能体,一站式GUI智能任务自动化桌面工具

原创 发布日期:
70

一、UI-TARS-desktop是什么

UI-TARS-desktop是字节跳动面向开发者和企业级用户开源的多模态AI智能体桌面应用项目,核心围绕“GUI智能体”这一核心方向,结合UI-TARS模型的视觉理解、GUI交互解析能力,以及Agent TARS通用多模态AI智能体栈的工具集成能力,打造覆盖终端、计算机、浏览器等多场景的智能任务处理体系。

简单来说,UI-TARS-desktop本质是“AI驱动的GUI自动化工具”——它能像人类一样理解计算机桌面、浏览器页面的视觉元素,执行点击、输入、拖拽、窗口切换等操作,同时融合自然语言理解、多工具调用能力,实现端到端的智能任务完成。与传统的RPA(机器人流程自动化)工具不同,UI-TARS-desktop基于大模型的多模态能力,无需手动配置固定流程,可通过自然语言指令动态完成复杂任务,是AI Agent技术在桌面端的落地实现。

该项目采用Apache-2.0开源协议,支持商用和二次开发,整体架构为monorepo(单仓库多包)模式,兼顾易用性(开箱即用的桌面应用)和扩展性(可自定义的算子、SDK),是字节跳动在多模态AI智能体领域的核心开源成果。

二、功能特色

UI-TARS-desktop的核心优势在于“多模态融合+跨场景适配+工程化完善”,具体功能特色可分为以下几类:

2.1 核心能力:多模态GUI智能操作

能力模块 具体功能 应用场景示例
计算机算子 本地/远程控制计算机GUI,支持窗口识别、鼠标点击/拖拽、键盘输入、文件操作、系统指令执行 自动整理桌面文件、批量修改文档内容、远程协助完成系统配置
浏览器算子 本地/远程控制浏览器,支持页面元素识别、标签页管理、表单填写、按钮点击、数据爬取 自动登录网页填写表单、批量下载网页图片、智能浏览并提取信息
多模态理解 融合视觉识别、自然语言理解,支持图片/截图解析、界面元素语义理解 解析截图中的表格数据、理解“点击红色按钮旁边的输入框”等模糊指令

2.2 交互形式:多端适配,灵活易用

  • 桌面应用(UI-TARS Desktop):基于Electron开发的原生GUI界面,支持Windows/macOS等系统,可视化配置算子、发送自然语言指令,适合非技术用户快速使用;

  • CLI命令行工具:提供命令行交互方式,支持多工具流式调用、运行时统计、数据流追踪调试,适合开发者集成到脚本或自动化流程中;

  • Web UI:网页端交互界面,无需安装客户端,通过浏览器即可调用智能体能力,支持多人协作和远程访问。

2.3 安全与可靠性:隔离与可控

  • Sandbox沙箱环境:Agent TARS内置AIO agent Sandbox隔离式工具执行环境,所有算子操作在沙箱内完成,避免误操作影响主机系统,支持操作权限精细化控制;

  • 运行时监控:实时统计算子执行状态、资源占用、指令执行进度,支持断点续传、操作回滚,降低任务执行风险;

  • 权限管理:针对远程算子,提供身份认证、访问密钥管理,确保远程计算机/浏览器操作的安全性。

2.4 扩展性:灵活的生态扩展能力

  • 自定义算子开发:提供算子开发SDK,支持开发者基于业务需求新增自定义算子(如办公软件算子、专业软件算子);

  • MCP多工具集成协议:兼容多工具集成协议,可无缝对接Shell、Python脚本、数据库、第三方API等工具,实现“AI指令→工具调用→结果返回”的端到端流程;

  • 存储适配:支持内存、本地文件、SQLite、MongoDB等多种存储方式,适配不同数据规模和隐私要求的场景(如私有化部署可选择本地存储)。

2.5 工程化:开箱即用的开发体系

  • 完善的工程化配置:内置ESLint/Prettier/Commitlint代码规范、Husky Git钩子,确保代码质量;

  • 自动化CI/CD:GitHub工作流集成密钥扫描、自动化构建、版本发布,降低开发和部署成本;

  • 版本管理:基于Changesets实现monorepo多包版本管理,清晰记录版本迭代(已发布v0.1.0/v0.2.0/v0.3.0等版本),便于维护和升级。

UI-TARS-desktop:字节跳动开源的多模态AI智能体,一站式GUI智能任务自动化桌面工具

三、技术细节

3.1 整体架构

UI-TARS-desktop采用分层架构设计,从底层到上层可分为4层:

graph TD
  A[基础设施层] --> B[核心能力层]
  B --> C[应用层]
  C --> D[交互层]
  
  A[基础设施层] --> A1[存储模块<br/>内存/文件/SQLite/MongoDB]
  A --> A2[工程化工具<br/>PNPM/Turbo/GitHub CI]
  A --> A3[安全模块<br/>沙箱/权限/认证]
  
  B[核心能力层] --> B1[Agent TARS智能体栈<br/>多模态理解/工具调用]
  B --> B2[算子核心<br/>计算机/浏览器算子]
  B --> B3[IPC通信模块<br/>主进程/渲染进程通信]
  
  C[应用层] --> C1[UI-TARS Desktop<br/>Electron桌面应用]
  C --> C2[CLI工具<br/>命令行交互]
  C --> C3[Web UI<br/>网页端应用]
  
  D[交互层] --> D1[自然语言指令]
  D --> D2[可视化配置]
  D --> D3[API调用]

3.2 核心目录结构(monorepo)

项目采用monorepo架构,所有代码和资源集中在一个仓库,核心目录分工清晰,便于维护和扩展:

目录名 核心作用 关键子模块
apps/ 应用层代码 ui-tars:桌面应用主进程/渲染进程代码;web:Web UI代码;cli:命令行工具代码
packages/ 核心包集合 agent-infra:智能体基础设施(浏览器/搜索/日志/MCP客户端);common:通用配置;ui-tars:核心算子/SDK
multimodal/ 多模态相关 GUI智能体模型适配、benchmark(性能测试)、TARKO智能体框架
infra/ 工程化工具 Git/GitHub工具、发布流程、日志系统
docs/ 官方文档 快速开始、预设管理、部署教程、贡献指南
examples/ 示例代码 算子使用示例、浏览器集成示例、搜索示例
.github/ GitHub工作流 密钥扫描、CI/CD脚本、Issue/PR模板

3.3 关键技术栈

UI-TARS-desktop的技术选型兼顾成熟度和前沿性,核心技术栈如下:

技术类别 具体技术/工具 应用场景
前端/桌面开发 Electron、React、TypeScript 桌面应用的主进程/渲染进程开发,Web UI界面开发
包管理/构建 PNPM、Turbo monorepo多包管理,快速构建和热更新
AI能力集成 UI-TARS模型、MCP协议 多模态理解、工具调用、智能体核心逻辑
工程化 ESLint、Prettier、Husky、Changesets 代码规范、提交校验、版本管理
自动化/CI/CD GitHub Actions 自动化构建、测试、发布、密钥扫描
存储 SQLite、MongoDB、本地文件 智能体配置、任务日志、算子执行数据存储
通信 IPC、HTTP/HTTPS 桌面应用进程间通信、远程算子调用

3.4 核心流程:自然语言指令到GUI操作

以“让AI自动打开浏览器,访问百度并搜索‘UI-TARS-desktop’”为例,核心执行流程如下:

  1. 指令解析:自然语言指令经UI-TARS模型解析,转化为结构化的操作步骤(打开浏览器→输入网址→点击搜索框→输入关键词→点击搜索按钮);

  2. 算子匹配:智能体栈匹配“浏览器算子”,确认执行环境(本地/远程);

  3. 沙箱初始化:创建浏览器沙箱环境,加载算子所需依赖;

  4. 操作执行:算子按步骤执行GUI操作,实时返回执行状态;

  5. 结果返回:将操作结果(搜索页面截图、文本内容)整理后返回给用户;

  6. 日志记录:记录整个流程的执行日志、资源占用,便于调试和追溯。

四、应用场景

UI-TARS-desktop的能力覆盖个人、企业、开发者等多类用户,典型应用场景如下:

4.1 个人办公自动化

  • 重复GUI操作自动化:批量整理桌面文件、自动填写网页表单、定时备份浏览器书签;

  • 信息提取与整理:从网页/截图中提取表格数据并导出为Excel、智能浏览文档并总结核心内容;

  • 远程协助:通过远程算子帮助家人/同事完成简单的电脑操作(如安装软件、配置网络)。

4.2 企业级流程自动化

  • 客服辅助:自动打开CRM系统,根据客户咨询内容填写工单、查询订单信息;

  • 数据采集与分析:批量爬取行业网页数据、自动生成数据报表;

  • 跨系统操作:联动多个桌面软件(如Excel、微信、企业微信),完成“数据录入→消息推送→报表生成”的全流程。

4.3 开发者场景

  • AI Agent原型开发:基于项目提供的SDK、算子,快速开发自定义多模态智能体;

  • 自动化测试:模拟用户操作,对桌面应用、网页进行自动化测试;

  • 脚本集成:将CLI工具集成到Python/Shell脚本中,增强脚本的智能决策能力。

4.4 特殊场景:远程运维与管控

  • 服务器桌面管控:通过远程算子控制服务器桌面,完成可视化配置;

  • 多设备统一管理:集中管控多台计算机/浏览器,批量执行系统更新、软件安装等操作。

UI-TARS-desktop:字节跳动开源的多模态AI智能体,一站式GUI智能任务自动化桌面工具

五、使用方法

5.1 环境准备

前置依赖

  • 操作系统:Windows 10+/macOS 12+;

  • 运行环境:Node.js 18.x+(推荐18.18.0 LTS);

  • 包管理器:PNPM 8.x+(项目推荐的包管理工具);

  • 可选依赖:Git(用于克隆仓库)、Docker(用于沙箱环境部署)。

依赖安装(以macOS为例)

# 安装Node.js(推荐使用nvm)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
nvm install 18.18.0
nvm use 18.18.0

# 安装PNPM
npm install -g pnpm@8.15.0

5.2 快速开始:桌面应用使用

步骤1:克隆仓库

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

步骤2:安装项目依赖

# 安装所有包的依赖
pnpm install

# 构建核心包
pnpm build

步骤3:启动桌面应用

# 进入apps/ui-tars目录
cd apps/ui-tars

# 启动开发版桌面应用
pnpm dev

步骤4:使用桌面应用完成第一个任务

  1. 应用启动后,进入主界面,选择“本地计算机算子”;

  2. 在指令输入框中输入自然语言指令,例如:“打开Chrome浏览器,访问https://www.baidu.com,搜索UI-TARS-desktop并截图保存到桌面”;

  3. 点击“执行”按钮,等待智能体完成操作;

  4. 在“执行日志”面板查看操作进度,执行完成后可在桌面查看截图文件。

5.3 CLI工具使用(开发者场景)

步骤1:安装CLI工具

# 从项目根目录安装CLI
pnpm install -g ./packages/cli

步骤2:执行简单指令

# 查看CLI帮助
ui-tars --help

# 执行浏览器算子指令
ui-tars browser --command "打开百度,搜索AI Agent" --local

步骤3:流式调用与调试

# 开启流式输出,查看实时执行日志
ui-tars computer --command "整理桌面文件,按类型分类到不同文件夹" --stream --debug

5.4 自定义算子开发(进阶)

步骤1:创建算子模板

# 从examples目录复制算子模板
cp -r examples/operator-template packages/agent-infra/src/operators/my-custom-operator

步骤2:编写算子逻辑(以TypeScript为例)

// packages/agent-infra/src/operators/my-custom-operator/index.ts
import { BaseOperator } from '../base';

export class MyCustomOperator extends BaseOperator {
 // 算子名称
 name = 'my-custom-operator';
 // 算子描述
 description = '自定义算子:批量修改Word文档名称';

 // 核心执行方法
 async execute(params: { folderPath: string; prefix: string }) {
  const { folderPath, prefix } = params;
  // 1. 读取指定文件夹下的Word文档
  // 2. 批量修改文件名(添加前缀)
  // 3. 返回修改结果
  return {
   success: true,
   modifiedFiles: ['文件1.docx', '文件2.docx'],
   message: '批量重命名完成'
  };
 }
}

步骤3:注册并使用自定义算子

// 在应用中注册算子
import { MyCustomOperator } from './operators/my-custom-operator';
import { AgentInfra } from '@ui-tars/agent-infra';

const agent = new AgentInfra();
agent.registerOperator(new MyCustomOperator());

// 执行自定义算子
const result = await agent.executeOperator('my-custom-operator', {
 folderPath: '/Users/xxx/Desktop/docs',
 prefix: '2024-'
});
console.log(result);

5.5 私有化部署(企业场景)

项目支持私有化部署,核心步骤为:

  1. 部署UI-TARS模型(参考docs/model-deployment.md);

  2. 配置本地存储(如MongoDB),关闭远程调用;

  3. 构建桌面应用安装包:

    cd apps/ui-tars
    pnpm build:production # 构建生产版安装包
  4. 分发安装包到企业内部设备,配置沙箱权限和算子白名单。

UI-TARS-desktop:字节跳动开源的多模态AI智能体,一站式GUI智能任务自动化桌面工具

六、常见问题解答(FAQ)

Q1:UI-TARS-desktop与传统RPA工具的区别是什么?

A1:传统RPA工具需要手动配置固定的操作流程(如“点击坐标X,Y→输入文本→点击按钮Z”),适配性差,无法处理界面变化;而UI-TARS-desktop基于多模态大模型,能理解界面的语义和视觉元素,通过自然语言指令动态生成操作流程,即使界面元素位置变化,也能识别并执行操作,灵活性和智能性远高于传统RPA。此外,UI-TARS-desktop集成了AI的决策能力,可处理“模糊指令”(如“找到页面上的红色按钮并点击”),而RPA无法处理此类指令。

Q2:远程算子如何保证安全性?

A2:远程算子的安全性主要通过三层机制保障:

  1. 身份认证:远程调用需配置访问密钥(API Key),仅授权设备可连接;

  2. 沙箱隔离:远程操作在独立的沙箱环境中执行,无法访问主机的敏感目录/权限;

  3. 操作审计:所有远程操作都会生成详细日志,包括操作人、操作时间、执行内容,可追溯可审计。同时,项目支持配置操作白名单,仅允许执行指定类型的操作(如仅允许浏览器浏览,不允许文件修改)。

Q3:项目支持哪些操作系统?是否有移动端版本?

A3:当前UI-TARS-desktop的核心版本为桌面端,支持Windows 10及以上、macOS 12及以上系统;Linux系统可通过CLI工具和Web UI使用核心能力,但暂不支持原生桌面应用。项目目前暂无移动端(iOS/Android)版本,不过可通过移动端浏览器访问Web UI,调用远程算子完成操作。

Q4:运行时提示“算子加载失败”怎么办?

A4:算子加载失败的常见原因及解决方法:

  1. 依赖缺失:执行pnpm install重新安装所有依赖,确保packages/agent-infra包构建成功;

  2. 权限不足:以管理员/root权限运行应用,或检查算子所需的系统权限(如文件访问权限);

  3. 版本不兼容:确认Node.js版本为18.x+,PNPM版本为8.x+,可通过node -vpnpm -v检查;

  4. 端口占用:部分算子(如远程浏览器)需要占用特定端口,可通过lsof -i :端口号检查并释放端口。

Q5:是否可以离线使用UI-TARS-desktop?

A5:可以。项目支持离线模式:

  1. 提前下载并部署UI-TARS模型到本地;

  2. 配置算子为“本地模式”,关闭远程调用;

  3. 所有依赖包提前安装,无需联网即可执行本地GUI操作。但离线模式下,部分依赖网络的功能(如网页访问、在线工具调用)无法使用。

七、相关链接

八、总结

UI-TARS-desktop是字节跳动开源的多模态AI智能体桌面应用,以UI-TARS模型为核心,集成Agent TARS通用智能体栈,提供本地/远程计算机、浏览器的GUI智能操作能力,支持桌面应用、CLI、Web UI等多交互形式,具备沙箱隔离、多工具集成、工程化完善、可扩展等特性。该项目区别于传统RPA工具,基于多模态大模型实现了自然语言驱动的动态GUI操作,适配个人办公自动化、企业流程管控、开发者AI Agent开发等多场景,采用Apache-2.0协议开源,既适合非技术用户开箱即用,也支持开发者自定义算子和二次开发,是AI Agent技术在桌面端落地的优质开源方案。

打赏
THE END
作者头像
AI工具箱
一个喜欢收集AI工具的小萌新