TuriX-CUA 是一个 Computer-Use Agent(电脑使用智能体)框架,目标是让 AI 大模型不只在聊天框里回答问题,而是像用户一样观察桌面、理解当前界面,并通过鼠标和键盘执行操作。
它解决的是一个很常见的自动化难题:很多桌面软件没有开放 API(Application Programming Interface,应用程序编程接口),或者开放的接口并不能覆盖真实工作流。比如,一个任务可能同时涉及浏览器、文档、聊天软件、表格软件和系统设置,用传统接口串起来会很麻烦,有些应用甚至根本串不起来。
TuriX-CUA 的思路更接近“人怎么操作,智能体就怎么操作”:
flowchart LR
A[自然语言任务] --> B[任务规划]
B --> C[观察桌面画面]
C --> D[决定下一步动作]
D --> E[点击 / 输入 / 拖拽 / 切换窗口]
E --> F[桌面应用状态变化]
F --> C
只要目标软件能被用户在图形界面上操作,TuriX-CUA 就有机会接管这段流程。它不要求目标应用一定提供 API,也不局限在浏览器网页里操作 DOM(Document Object Model,文档对象模型)。
项目地址:
https://github.com/TurixAI/TuriX-CUA
它和传统自动化方案有什么区别
桌面自动化并不是新概念,RPA(Robotic Process Automation,机器人流程自动化)、浏览器自动化、脚本工具都能做一部分工作。TuriX-CUA 的差异在于,它把大语言模型的理解和规划能力放进了桌面操作循环里。
| 方案 | 主要操作对象 | 优点 | 局限 |
|---|---|---|---|
| API 集成 | 后端接口、服务接口 | 稳定、可控、适合生产系统 | 依赖目标系统开放接口,跨桌面应用很困难 |
| 传统 RPA | 固定按钮、坐标、窗口控件 | 适合固定流程、重复任务 | UI 变化后容易失效,理解复杂任务能力弱 |
| 浏览器 Agent | 网页、DOM、浏览器标签页 | 适合网页搜索、表单填写、网页数据提取 | 很难操作本地 App、系统设置、桌面文件 |
| TuriX-CUA | 整个桌面 GUI(Graphical User Interface,图形用户界面) | 能跨应用执行任务,不强依赖 API | 需要屏幕权限和辅助功能权限,执行过程要控制风险 |
更直观地说,如果任务只是在数据库里更新一条记录,API 仍然更合适;如果任务需要打开聊天软件下载文件、在表格里生成图表、插入到演示文稿,再回到聊天软件回复对方,Computer-Use Agent 的优势就会明显很多。
能完成哪些桌面任务
TuriX-CUA 面向的是完整桌面环境,而不是单一网页。macOS 上可以操作浏览器、Pages、Numbers、PowerPoint、邮件、聊天工具,也可以处理系统设置;Windows 分支侧重 GUI 自动化和浏览器操作。
典型任务可以分成几类:
| 场景 | 示例任务 | 涉及能力 |
|---|---|---|
| 浏览器与本地应用协作 | 查询 iPhone 价格,整理到 Pages 文档并发送给联系人 | 浏览器搜索、文档编辑、联系人发送 |
| 办公软件联动 | 从 Discord 收到 Numbers 文件,生成柱状图,插入 PowerPoint 的指定位置,再回复对方 | 聊天软件、表格、图表、演示文稿联动 |
| 在线内容操作 | 在 YouTube 搜索指定视频并点赞 | 浏览器操作、页面理解、点击行为 |
| 研究与写作 | Claude 搜索 AI 新闻,通过 MCP 调用 TuriX-CUA,把结果写入 Pages 文档并发送 | 大模型研究、MCP 调用、桌面执行 |
这里的关键不是某一个 App 被“适配”得多好,而是 TuriX-CUA 尝试把桌面本身当成可操作环境。任务描述由自然语言给出,智能体负责拆解步骤、观察当前界面、执行动作,并根据反馈继续调整。
核心架构:把一个桌面智能体拆成四个模型角色
TuriX-CUA 的架构不是把所有事情都交给一个模型,而是把职责拆成多个 LLM(Large Language Model,大语言模型)角色。每个角色可以配置不同的模型,方便在成本、速度和效果之间做取舍。
这张架构图展示了 TuriX-CUA 的多角色设计:同一个桌面任务会被分给不同模型模块处理,高层策略、步骤规划、界面动作和记忆管理相互配合。这样做的好处是,每个模块只专注一类问题,调试和替换也更容易。
四个核心角色如下:
| 配置项 | 职责 | 适合的模型选择 |
|---|---|---|
brain_llm | 大脑,负责高层决策和整体策略 | 更强的模型,保证任务理解和决策质量 |
planner_llm | 规划者,把自然语言任务拆成可执行步骤 | 擅长分解任务、生成计划的模型 |
actor_llm | 执行者,根据当前界面决定点击哪里、输入什么 | 擅长视觉理解和动作生成的模型 |
memory_llm | 记忆管理,读取、整理长程记忆,帮助恢复状态 | 可用成本较低的小模型处理摘要和记忆 |
整体执行过程可以理解成一个循环:
flowchart TD
A[用户给出任务] --> B[planner_llm 拆解任务]
B --> C[brain_llm 制定当前策略]
C --> D[actor_llm 观察界面并生成动作]
D --> E[操作系统执行鼠标键盘动作]
E --> F[桌面状态变化]
F --> G[memory_llm 记录关键状态]
G --> C
这种拆分带来两个实际价值。
第一,可以按角色替换模型。例如只替换 planner_llm,就能比较不同模型在任务拆解上的效果,而不必重写整个 Agent。
第二,可以控制成本。并不是所有模块都必须用最贵、最强的模型。brain_llm 可以用能力更强的模型保证复杂决策质量,memory_llm 则可以用较小模型处理状态摘要和历史信息。
与 OpenClaw、Claude 的集成方式
TuriX-CUA 可以作为桌面执行层,被 OpenClaw 或 Claude 这类工具调用。对于上层智能体来说,TuriX-CUA 负责真正操作电脑;对于 TuriX-CUA 来说,上层工具负责发起任务、组织上下文或完成研究。
OpenClaw 可以通过 ClawHub Skill 接入 TuriX-CUA:
https://clawhub.ai/Tongyu-Yan/turix-cua
这个 Skill 的作用是把 OpenClaw 的任务请求连接到 TuriX-CUA,让 OpenClaw 获得桌面操作能力。配置完成后,用户可以在 OpenClaw 中描述任务,由 Skill 调用 TuriX-CUA 去完成实际的 GUI 操作。
Claude 也可以通过 MCP(Model Context Protocol,模型上下文协议)和 TuriX-CUA 打通。一个典型流程是:Claude 先负责搜索和整理信息,再通过 MCP 调用 TuriX-CUA,把研究结果写入本地文档并发送给指定联系人。
sequenceDiagram
participant U as 用户
participant C as Claude / OpenClaw
participant M as MCP / Skill
participant T as TuriX-CUA
participant D as 桌面应用
U->>C: 描述任务
C->>C: 理解任务并组织上下文
C->>M: 请求桌面执行
M->>T: 调用 TuriX-CUA
T->>D: 点击、输入、切换应用
D-->>T: 返回界面状态
T-->>M: 返回执行结果
M-->>C: 汇总状态
C-->>U: 返回完成情况
适合什么场景,不适合什么场景
Computer-Use Agent 很强,但不代表所有自动化都应该交给它。判断是否适合使用 TuriX-CUA,可以看任务是否依赖真实桌面界面。
| 任务类型 | 是否适合 | 原因 |
|---|---|---|
| 跨多个桌面应用的办公流程 | 适合 | 很多步骤没有统一 API,只能通过 GUI 操作串起来 |
| 目标软件没有 API,但人可以手动完成 | 适合 | TuriX-CUA 可以基于屏幕观察和鼠标键盘操作执行 |
| 需要大模型理解上下文并动态调整步骤 | 适合 | 比固定脚本更适合处理非完全确定的流程 |
| 后端批处理、数据库更新、文件批量转换 | 不太适合 | API、脚本或命令行工具通常更稳定、更快 |
| 金融转账、删除大量文件、不可逆操作 | 需要谨慎 | 必须加入人工确认、权限隔离和操作日志 |
| 对执行稳定性要求极高的生产链路 | 不宜直接替代 API | GUI 自动化受窗口状态、权限、网络和模型判断影响 |
比较稳妥的使用方式,是先让它处理低风险、可回滚、容易检查结果的任务,例如资料整理、网页检索、文档生成、跨应用搬运信息。涉及支付、删除、发送敏感信息时,应当要求人工确认。
快速上手:使用官网应用或本地部署
TuriX-CUA 有两种使用方式:直接下载应用,或者从源码部署。想快速体验,可以访问官网:
https://turix.ai/
如果要研究项目结构、调试模型配置,或者把它接到自己的 Agent 系统里,源码部署更合适。
macOS 源码部署
安装环境:
git clone https://github.com/TurixAI/TuriX-CUA.git
cd TuriX-CUA
conda create -n turix_env python=3.12 -y
conda activate turix_env
pip install -r requirements.txt
macOS 上最容易卡住的是权限。TuriX-CUA 要控制鼠标、键盘和浏览器,所以需要给运行环境授权。
在系统设置中打开:
隐私与安全性 -> 辅助功能(Accessibility)
把实际运行 TuriX-CUA 的程序勾选上,例如 Terminal、VS Code。必要时也要把 Python 解释器加入授权列表,例如 /usr/bin/python3 或 Conda 环境里的 Python。
如果任务需要控制 Safari,还要开启 Safari 自动化权限:
Safari -> 设置 -> 高级 -> 显示开发者菜单
然后在 Safari 的“开发者”菜单里启用:
Allow Remote Automation
Allow JavaScript from Apple Events
可以用 osascript 触发一次权限弹窗:
osascript -e 'tell application "Safari" to do JavaScript "alert(\"Triggering accessibility request\")" in document 1'
如果当前 Safari 没有打开页面,先打开一个普通网页,再执行这条命令。
配置任务和模型
TuriX-CUA 通过 config.json 配置任务和模型。需要重点配置两类信息:
agent.task:要让智能体完成的自然语言任务brain_llm、actor_llm、planner_llm、memory_llm:不同角色使用的模型服务、模型名称和 API Key
配置结构可以按这种思路组织:
{
"agent": {
"task": "查询 iPhone 价格,创建 Pages 文档,并发送给指定联系人"
},
"brain_llm": {
"provider": "your-provider",
"model_name": "your-model",
"api_key": "your-api-key"
},
"actor_llm": {
"provider": "your-provider",
"model_name": "your-model",
"api_key": "your-api-key"
},
"planner_llm": {
"provider": "your-provider",
"model_name": "your-model",
"api_key": "your-api-key"
},
"memory_llm": {
"provider": "your-provider",
"model_name": "your-model",
"api_key": "your-api-key"
}
}
配置完成后启动示例:
python examples/main.py
使用时要注意的坑
1. macOS 权限必须给到实际运行进程
很多问题不是模型配置错了,而是权限给错了。比如在 Terminal 里运行时只给 VS Code 授权,或者在 Conda 环境里运行时系统没有给对应 Python 授权,都会导致点击、输入、浏览器自动化失败。
排查时要确认三点:
1. 当前是从哪个程序启动 TuriX-CUA
2. 这个程序是否在 Accessibility 里被允许
3. 浏览器自动化权限是否单独开启
2. 桌面状态会影响执行结果
TuriX-CUA 是通过屏幕观察和 GUI 操作工作,窗口是否被遮挡、当前是否登录、应用是否已经打开、弹窗是否出现,都会影响执行路径。正式运行前,应尽量让桌面处于干净状态,关闭不必要的窗口和弹窗。
3. 高风险操作要加人工确认
桌面智能体可以真实点击按钮,也可能点错按钮。发送消息、提交表单、删除文件、支付、修改系统设置这类操作,应当设置人工确认步骤,而不是完全放任自动执行。
4. 不要把它当成 API 的替代品
如果目标系统有稳定 API,而且任务可以完全通过接口完成,API 通常更可靠。TuriX-CUA 更适合处理那些“只能在人机界面里完成”的任务,尤其是跨应用、跨窗口、步骤不固定的工作流。
小结
TuriX-CUA 的核心价值是把大模型从“回答问题”推进到“操作电脑”。它通过观察屏幕、规划步骤、执行鼠标键盘动作,让 AI 能处理浏览器、文档、聊天软件、表格和演示文稿之间的跨应用任务。
它的多角色架构把大脑、规划、执行和记忆拆开,既方便替换不同模型,也适合作为多 Agent 协作实验的基础。通过 OpenClaw Skill 或 MCP 接入 Claude 后,TuriX-CUA 可以承担桌面执行层,让上层智能体真正把任务落到本地电脑上。

