一天一个开源项目(第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 KeyDoubao、Claude 等项目背景项目简介UI-TARS-Desktop 是一个多模态 AI 代理栈核心能力是用视觉语言模型Vision-Language Model看懂屏幕上的 UI 元素理解自然语言指令然后模拟真实用户的鼠标和键盘操作来完成任务。这与传统的 RPARobotic Process Automation工具有本质区别RPA基于像素坐标或元素 ID 硬编码操作路径界面稍有变化就会失效UI-TARS理解 UI 的语义——它知道保存按钮是什么、搜索框应该在哪里即使界面改变也能适应作者/团队介绍开发团队字节跳动ByteDanceAI 研究团队背景字节跳动在视觉语言模型领域有深厚积累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一行启动# 无需安装直接用 npx 运行npx agent-tars/clilatest# 指定模型提供商默认 Doubao也支持 Claudenpx agent-tars/clilatest--modelclaude-opus-4-6# 启动 Web UI 模式可视化界面npx agent-tars/clilatest--ui# 带具体任务启动npx agent-tars/clilatest-p帮我搜索今天的 AI 新闻并整理成摘要UI-TARS Desktop桌面应用# 克隆仓库monorepo 结构gitclone https://github.com/bytedance/UI-TARS-desktop.gitcdUI-TARS-desktop# 安装依赖pnpminstall# 启动 UI-TARS Desktoppnpmrun dev:desktop# 或直接下载预构建的安装包Releases 页面# - macOS: UI-TARS-Desktop-x.x.x.dmg# - Windows: UI-TARS-Desktop-Setup-x.x.x.exe配置模型以 Claude 为例# 通过环境变量配置exportANTHROPIC_API_KEYsk-ant-... npx agent-tars/clilatest# 或通过配置文件cat~/.agent-tars/config.jsonEOF { model: { provider: anthropic, id: claude-opus-4-6, apiKey: sk-ant-... } } EOF核心特性视觉语言理解Vision-Language UnderstandingUI-TARS 不是简单的截图 OCR而是用专门针对 GUI 理解训练的视觉语言模型语义理解不只识别文字理解按钮的功能、表单的结构、页面的布局逻辑空间推理知道点击搜索框右侧的按钮意味着什么状态感知能区分加载中的按钮和可点击的按钮混合浏览器代理策略Hybrid Browser Agent这是 Agent TARS 最有技术深度的设计——三种浏览器操控策略可以动态切换策略原理适用场景GUI Agent 模式纯视觉感知模拟鼠标点击任意网站无需 DOM 访问DOM 模式直接操作页面 DOM 结构结构化网页速度更快混合模式视觉定位 DOM 操作结合复杂动态页面混合模式的优势遇到 Canvas 渲染或动态生成内容时切换视觉模式遇到标准 HTML 元素时切换 DOM 模式——兼顾鲁棒性和效率。事件流驱动架构Event Stream Protocol传统代理用消息历史传递上下文UI-TARS 用事件流[截图事件] → [用户指令] → [思考过程] → [工具调用] → [操作结果] → [新截图] → ...每个 UI 状态变化都作为事件被记录让代理精确追踪每一步操作的前后状态在操作失败时准确定位问题所在支持操作回放和调试Event Stream ViewerMCPModel Context Protocol集成Agent TARS 原生支持 MCP可以连接任意 MCP 服务器将 GUI 操控能力与结构化工具结合# 启动时加载 MCP 工具npx agent-tars/clilatest\--mcp-server filesystem\--mcp-server github\--mcp-server postgresql这意味着代理既可以看着屏幕操作也可以直接调用 API——视情况选择最高效的方式。跨平台计算机操控UI-TARS Desktop 提供三种操控目标本地计算机操控当前机器的桌面和应用远程计算机通过 VNC/RDP 连接远程机器v0.2.0 免费开放浏览器专门针对 Web 浏览器的优化操控模式项目优势对比项UI-TARS-Desktop传统 RPAUiPath/AAPlaywright/Selenium适应界面变化强语义理解弱坐标/ID 硬编码中Selector 维护无 API 软件支持✅ 任意 GUI 软件✅❌ 需要 Web 或 API自然语言指令✅❌ 需要编程❌ 需要编程桌面浏览器统一✅✅❌ 仅浏览器本地运行✅ 隐私保护依产品而定✅开源免费✅ Apache-2.0❌ 商业授权✅项目详细剖析1. 双子项目Agent TARS vs UI-TARS Desktop这个仓库包含两个定位不同但互补的子项目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输入示例 截图: [包含一个登录表单的网页截图] 指令: 用 adminexample.com 登录 输出示例 { action: click, coordinate: [412, 286], // 用户名输入框的坐标 reason: 点击用户名输入框 } { action: type, text: adminexample.com } { action: click, coordinate: [412, 342], // 密码输入框 } ...3. 事件流查看器Event Stream Viewerv0.3.0 版本新增的 Event Stream Viewer 是调试 GUI 代理任务的利器任务: 在淘宝搜索 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: https://github.com/bytedance/UI-TARS-desktopAgent TARS CLI: agent-tars/cli on npmUI-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直接像人一样看着屏幕、动手操作这是通往通用计算机代理的一条最务实的路径。欢迎来我的个人主页找到更多有用的知识和有趣的产品