UI-TARS-desktopTARS 多模态 AI Agent 技术栈全解——Agent TARS 与桌面 GUI Agent 双项目实战【免费下载链接】UI-TARS-desktopThe Open-Source Multimodal AI Agent Stack: Connecting Cutting-Edge AI Models and Agent Infra项目地址: https://gitcode.com/GitHub_Trending/ui/UI-TARS-desktopTARS 是一个开源多模态 AI Agent 技术栈同时提供两个产品面向终端/浏览器的通用多模态 Agent「Agent TARS」以及基于 UI-TARS 视觉-语言模型的桌面应用「UI-TARS Desktop」。本文以仓库根 README 为主线结合 Agent TARS CLI 源码、AgentTARS 核心实现 与 快速上手文档完整讲清两个项目的架构分工、核心能力、安装配置与模型接入方式。读完本文你可以独立完成 Agent TARS CLI 的启动与浏览器控制模式配置以及 UI-TARS Desktop 从模型部署到本地 GUI 任务执行的完整落地流程。项目总览一个仓库两条产品线仓库 README 将 TARS 定义为「Multimodal AI Agent stack」多模态 AI Agent 技术栈当前交付两个项目二者定位互补而非重叠维度Agent TARSUI-TARS Desktop定位通用多模态 AI Agent 技术栈基于 UI-TARS 模型的原生 GUI Agent 桌面应用使用入口CLI 与 Web UIElectron 桌面应用Windows / MacOS能力范围终端、电脑、浏览器、产品集成支持挂载 MCP 工具本地电脑 / 远程电脑 / 浏览器 Operator模型要求任意多模态 LLM按 provider 配置UI-TARS / UI-TARS-1.5 / Seed-VL 系列视觉-语言模型从仓库目录结构看这一划分在代码层面得到了严格对应multimodal/agent-tars/ 是 Agent TARS 产品线包含cli、core、interface三个子包apps/ui-tars/ 是 UI-TARS Desktop 桌面应用Electron React Vitepackages/ui-tars/ 沉淀了桌面应用依赖的原子能力包action-parser模型动作解析、operatorsadb / browser / nut-js / browserbase 四类 Operator、sdk、electron-ipc、utio、sharedmultimodal/tarko/ 则是支撑上层 Agent 的通用框架层agent、agent-server、mcp-agent、model-provider 等Agent TARS 的AgentTARS类即构建在其 MCPAgent 内核之上。整个仓库采用 pnpm workspace Turborepo 组织根 package.json 声明了pnpm9.10.0与 Node20.x的运行环境并通过turbo run ui-tars-desktop#dev等脚本串联多包构建。Agent TARS把 GUI Agent 与视觉能力带进终端README 对 Agent TARS 的定义是一个通用多模态 AI Agent 技术栈「把 GUI Agent 和视觉能力带进你的终端、电脑、浏览器和产品」通过前沿多模态 LLM 与真实世界 MCP 工具的无缝集成提供更接近人类式任务完成的 Workflow。官方展示了典型任务一句话在 Priceline 上预订 9 月 1 日圣何塞往返纽约的最早/最晚航班或在预算内预订酒店并整理交通指南——这类跨浏览器、跨页面的长链路操作正是其目标场景。核心能力README 列出了四项核心特性它们在源码中都有明确落点One-Click Out-of-the-box CLI支持有界面headfulWeb UI与无界面headlessserver 执行两种形态一条命令即可启动。Hybrid Browser Agent混合浏览器代理可以三种策略控制浏览器——GUI Agentvisual-grounding基于截图的视觉定位、DOM基于可访问性树/DOM 结构或二者的混合策略。这一点在 CLI 参数上有直接对应见下文。Event Stream事件流协议驱动的事件流是整个系统的「脊柱」驱动上下文工程Context Engineering与 Agent UI 的构建——上层应用可以只消费事件流来渲染界面而不需要理解 Agent 内部状态机。MCP Integration内核基于 MCP 构建同时支持挂载外部 MCP Server 接入真实世界工具如天气、绘图等扩展能力。源码级解析CLI 扩展点与 Agent 内核CLI 层。multimodal/agent-tars/cli/src/index.ts 中的AgentTARSCLI类继承自 Tarko 框架的AgentCLI在configureAgentCommand中注入了 Agent TARS 特有的命令行选项可以逐条验证 README 宣称的能力.option(--browser browser, browser config) .option(--browser.control [mode], Browser control mode (hybrid, dom, visual-grounding)) .option(--browser.cdpEndpoint endpoint, CDP endpoint to connect to, for example http://127.0.0.1:9222/json/version) .option(--planner planner, Planner config) .option(--planner.enable, Enable planning functionality for complex tasks) .option(--search.provider [provider], Search provider (browser_search, tavily, bing_search)) .option(--search.count [count], Search result count, { default: 10 })--browser.control的三个取值hybrid / dom / visual-grounding正是 README 中「混合浏览器代理」能力的参数化入口--browser.cdpEndpoint允许连接已有 Chrome 的 CDP 端口默认示例为 9222便于复用本地浏览器会话--planner.enable为复杂任务开启规划能力--search.*系列则挂载了 browser_search / tavily / bing_search 三种搜索提供方默认返回 10 条结果。此外CLI 还保留了--browser-control与--browser-cdp-endpoint两个废弃选项并在configureCLIOptionsEnhancerindex.ts#L99-L125中做了向新命名的平滑迁移——这说明该 CLI 仍在快速迭代中参数命名以最新形式为准。内核层。multimodal/agent-tars/core/src/agent-tars.ts 中AgentTARS类继承tarko/mcp-agent的MCPAgent其构造过程可以印证 README 的架构描述构造时先applyDefaultOptions补齐默认配置并通过validateBrowserControlMode结合模型 provider 校验浏览器控制模式按aioSandbox选项选择AgentTARSAIOEnvironment或AgentTARSLocalEnvironment由环境对象统一产出 MCP Server 注册表environment.getMCPServerRegistry()传给父类——即「MCP 为内核」浏览器、文件系统、搜索等能力全部以 MCP 工具形式注册onBeforeToolCall/onAfterToolCall/onEachAgentLoopStart等钩子全部委托给环境实现setupEventHandlers中还订阅了事件流在browser_navigate工具结果上附加浏览器状态——这正是事件流驱动 UI 的底层机制。运行环境约束。CLI 的 package.json 声明engines.node 22.15.0与 README Quick Start 中「Install globally, required Node.js 22」的说明一致包名agent-tars/clibin 为agent-tars。快速上手README 给出的官方启动命令如下继承自 multimodal/agent-tars/core/README.md# 使用 npx 直接启动无需安装 npx agent-tars/clilatest # 全局安装要求 Node.js 22 npm install agent-tars/clilatest -g # 使用你偏好的模型 provider 运行 agent-tars --provider volcengine --model doubao-1-5-thinking-vision-pro-250428 --apiKey your-api-key agent-tars --provider anthropic --model claude-3-7-sonnet-latest --apiKey your-api-key命令中--provider / --model / --apiKey用于指定多模态 LLM 服务启动后可结合--browser.control选择浏览器控制策略、--planner.enable开启规划。程序化集成的入口是agent-tars/core导出的AgentTARS类详见 multimodal/agent-tars/core/README.md 的 Programmatic Usage 章节。UI-TARS Desktop本地电脑的原生 GUI AgentREADME 将 UI-TARS Desktop 描述为「由 UI-TARS 与 Seed-1.5-VL/1.6 系列模型驱动的本地电脑原生 GUI Agent」。其特性列表为视觉-语言模型驱动的自然语言控制截图与视觉识别支持精准的鼠标与键盘控制跨平台支持Windows / MacOS / Browser实时反馈与状态展示私有安全——完全本地处理。官方演示展示了典型指令例如「帮我打开 VS Code 的自动保存功能并把 AutoSave 延迟 500 毫秒」和「查看 UI-TARS-Desktop 项目在 GitHub 上最新的 open issue」分别对比了 Local Operator本地电脑与 Remote Operator远程电脑两种执行形态。环境要求与下载安装操作步骤以 docs/quick-start.md 为准前置条件Browser Operator 场景需安装 Chromestable/beta/dev/canary、Edge 或 Firefoxstable/beta/dev/nightly之一UI-TARS-desktop 目前仅支持单显示器环境多显示器配置可能导致部分任务失败。下载从 releases 页面下载最新版本macOS 用户若装有 Homebrew可直接执行brew install --cask ui-tars安装macOS 三步将 UI TARS 应用拖入 Applications 文件夹在 macOS 系统设置中授予权限——这是桌面自动化能生效的关键缺一不可System Settings → Privacy Security →Accessibility辅助功能负责鼠标/键盘注入System Settings → Privacy Security →Screen Recording屏幕录制负责截图打开应用即可看到主界面。Windows 端双击运行安装包即可无需额外系统权限配置。从桌面应用的 package.json 可以看到其技术底座Electron 34 electron-vite electron-forge并依赖两个原生权限/采集能力包computer-use/node-mac-permissions与computer-use/mac-screen-capture-permissions——这正是上述 macOS 权限步骤在代码层的对应实现。获取模型并运行本地 Operator桌面应用本身不含模型需要通过 OpenAI 兼容接口接入 VLM。README 与 快速上手文档 给出两条官方推荐路径。路径一Hugging Face 部署 UI-TARS-1.5在 Hugging Face Endpoints 页面点击右上角Deploy from Hugging Face选择模型UI-TARS-1.5-7B参考 UI-TARS 上游仓库的 README_deploy.md 完成部署取得Base URL、API Key、Model Name打开应用 Settings按下述方式配置Language: en VLM Provider: Hugging Face for UI-TARS-1.5 VLM Base URL: https:xxx VLM API KEY: your_api_key VLM Model Name: xxx两个易错点原文档 NOTE 强调VLM Provider 必须选择Hugging Face for UI-TARS-1.5否则模型输出的 Action 无法被正确解析Base URL 必须以/v1/结尾具体值可在 Hugging Face endpoint 页面查到。路径二火山引擎VolcEngine接入 Doubao-1.5-UI-TARS访问火山引擎 Doubao-1.5-UI-TARS 模型页点击右上角Try (立即体验)点击API inference (API 接入)链接在抽屉面板 STEP 1 中获取API KeySTEP 2 中完成用户认证切换到 OpenAI SDK 标签页获取Base Url与Model name打开应用 Settings 配置Language: cn VLM Provider: VolcEngine Ark for Doubao-1.5-UI-TARS VLM Base URL: https://ark.cn-beijing.volces.com/api/v3 VLM API KEY: YOUR_API_KEY VLM Model Name: doubao-1.5-ui-tars-250328同样注意VLM Provider 必须选VolcEngine Ark for Doubao-1.5-UI-TARS以保证 Action 解析正确。启动任务。配置完成后点击新建会话按钮选择使用场景本地电脑 / 远程电脑 / 浏览器使用 Browser Operator 前确保本机装有 Chrome、Edge 或 Firefox输入自然语言指令即开始一轮 GUI 操作任务。关于 Remote Operator 的重要提示快速上手文档 明确说明远程 Operator 免费服务已于 2025 年 8 月 20 日停止试用结束后可自行部署远程 Computer / Browser Agent。使用远程浏览器能力前请以此为前提。桌面应用背后的执行循环UI-TARS Desktop 的任务执行循环可以从 docs/sdk.md 中ui-tars/sdk的时序描述得到最清晰的表达user -- guiAgent: instruction Operator.MANUAL.ACTION_SPACES loop while status ! RUNNING: operator.screenshot() # 返回 base64 截图与屏幕物理尺寸 model.invoke(instruction actionSpaces 最近5张截图) # 返回 prediction如 click(start_box(27,496)) operator.execute(prediction) # 解析坐标并按 scaleFactor/factors 换算后执行这一循环中的两个关键细节值得注意滑动窗口模型每次仅接收最近 5 张截图screenshots.slice(-5)在控制上下文长度的同时保留操作连续性坐标空间换算execute()收到的参数同时包含物理分辨率screenWidth/screenHeight、设备像素比scaleFactor与模型坐标缩放因子factors模型输出的归一化坐标需要在执行前换算为物理像素——这也是 Operator 接口要求screenshot()必须返回scaleFactor的原因。在仓库中该循环的工程实现分散在 packages/ui-tars/ 的各子包operator-nut-js/operator-browser/operator-adb/operator-browserbase分别对应本地电脑、浏览器、Android ADB、BrowserBase 四类执行端action-parser负责把模型输出解析为结构化动作这也解释了为何 Provider 选择错误会导致 Action 解析失败electron-ipc负责 Electron 主进程与渲染进程间的任务状态通信支撑 README 所说的「实时反馈与状态展示」。更多 VLM/Chat 参数说明可继续阅读 设置配置指南云端模型部署方法见 部署文档。开发、许可与引用从源码运行桌面应用开发向需 pnpm 9.10 与 Node 20pnpm i # bootstrap pnpm dev:ui-tars # turbo run ui-tars-desktop#dev启动 Electron 开发模式 pnpm test # vitest桌面应用侧的常用脚本apps/ui-tars/package.json还包括electron-forge make打包、playwright testE2E以及面向 darwin/win32 各架构的publish:*发布脚本。许可与引用。项目基于 Apache License 2.0 开源。若论文与代码对你的研究有帮助README 建议引用article{qin2025ui, title{UI-TARS: Pioneering Automated GUI Interaction with Native Agents}, author{Qin, Yujia and Ye, Yining and Fang, Junjie and Wang, Haoming and Liang, Shihao and Tian, Shizuo and Zhang, Junda and Li, Jiahao and Li, Yunxin and Huang, Shijue and others}, journal{arXiv preprint arXiv:2501.12326}, year{2025} }小结UI-TARS-desktop 仓库实际上是 TARS 技术栈的「双产品 框架底座」三层结构Agent TARSmultimodal/agent-tars/——以 MCP 为内核、事件流为协议的通用多模态 Agent提供 CLI/Web UI 入口与 hybrid/dom/visual-grounding 三种浏览器控制策略要求 Node.js ≥ 22UI-TARS Desktopapps/ui-tars/——Electron 桌面应用通过 Hugging Face 或火山引擎接入 UI-TARS 系列 VLM以「截图 → 模型预测 → Operator 执行」循环驱动本地/远程电脑与浏览器操作Tarko 框架层与原子能力包multimodal/tarko/、packages/ui-tars/——两者共享的 Agent 内核、模型解析与 Operator 抽象也是把 GUI Agent 能力嵌入你自己产品的编程入口ui-tars/sdk。理解这条「模型VLM— 解析action-parser— 执行operator— 反馈事件流/IPC」的主线就能把这个仓库里的任何一个包放回它在 Agent 循环中的位置。【免费下载链接】UI-TARS-desktopThe Open-Source Multimodal AI Agent Stack: Connecting Cutting-Edge AI Models and Agent Infra项目地址: https://gitcode.com/GitHub_Trending/ui/UI-TARS-desktop创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考