Ch9 · GUI 智能体 · 动手学大模型
在 Ch8 中,我们看到多模态大语言模型能够理解图像、音频、视频,并通过 LLM 的规划能力协调多种模态的输出。现在,我们把这种能力推向更具体的场景——GUI(图形用户界面)操作。
GUI 智能体要解决的核心问题是:给定一张手机或电脑的屏幕截图,加上一个高层次的任务指令(例如"打开网易云音乐,搜索 Shape of You 并播放"),模型需要输出具体的操作行为——在屏幕的哪个坐标点击、在哪里输入什么文字、向上还是向下滚动。这些操作统称为"可执行语言接地"(Executable Language Grounding),即把抽象的自然语言指令映射为可在真实界面上执行的动作。
本章以 OS-Kairos 数据集为基础,展示如何基于 Qwen2-VL-7B 构建一个实用的 GUI 智能体——从数据预处理、有监督微调(SFT),到推理部署的完整流程。
Executable Language Grounding 是一个相对学术化的表述,但它描述的场景非常具体:你的人类助手能够根据你的一句话"帮我打开网易云音乐搜索 Shape of You 并播放",自动在你的手机上完成这一系列操作。GUI Agent 的目标就是让 AI 模型具备这种能力。
任务输入
GUI Agent 接收两类输入:
- 视觉信息:当前界面的截图(Screenshot)。这是模型"看"到的界面状态。
- 文本信息:任务描述(Task)和历史操作记录(Previous Actions)。任务描述告诉模型用户想要完成什么目标;历史操作记录告诉模型之前已经做了哪些操作,以避免重复或冲突。
任务输出
模型输出一对信息:
- Action:当前应当执行的具体操作,使用预定义的操作格式表示。
- Score:模型对当前操作的置信度评分,范围 1-5。
这里的关键设计是置信度评分机制。并非所有任务 AI 都能完成——某些操作可能超出模型的能力边界(例如,涉及系统权限的深层次操作、从未见过的应用界面、需要复杂手势的交互等)。置信度评分让系统能够识别"不确定"的情况,建议人类介入而不是盲目执行一个低质量的操作。
1分 = 模型认为当前操作绝对无法完成目标
2分 = 模型认为当前操作极不可能完成目标
3分 = 模型认为当前操作有中等概率完成目标
4分 = 模型认为当前操作极可能完成目标
5分 = 模型认为当前操作必定完成目标
当置信度过低时(如 1-2 分),系统应主动提示用户:"这个任务超出了我的能力范围,建议您手动操作"。
GUI Agent 的操作空间被预定义为一套标准化的"动作词汇",这是自然语言指令能够精确映射为可执行操作的关键设计。
基础操作
基础操作在所有平台上都是标准化的,提供核心交互功能:
- CLICK [x, y]:在屏幕坐标 (x, y) 处执行点击操作。例如,
CLICK表示点击坐标 (381, 367)。381,367 - TYPE [文本]:在当前焦点位置输入指定文本。例如,
TYPE [Shanghai shopping mall]表示输入"Shanghai shopping mall"。 - SCROLL [方向]:执行滚动操作,方向可以是 UP/DOWN/LEFT/RIGHT。例如,
SCROLL [DOWN]表示向下滚动。
自定义操作
自定义操作是特定于用户平台和环境的功能扩展,使模型能够支持新的、未见过的操作定义:
- PRESS_BACK:按下返回按钮,导航到上一个界面。
- PRESS_HOME:按下主页按钮,导航到主屏幕。
- ENTER:按下回车键,确认当前输入或选择。
- IMPOSSIBLE:标记当前任务在界面上无法完成,模型应停止尝试。
值得注意的是,IMPOSSIBLE 操作的设计体现了一种"安全兜底"思维。当模型判断当前任务在其能力边界之外时,它不是给出一个低质量的 CLICK 操作碰运气,而是明确输出 IMPOSSIBLE 让系统知道这里需要人类接管。这种设计对于将 AI Agent 部署到真实产品场景中至关重要——没有安全兜底的系统,要么会不断失败导致用户体验崩溃,要么会给出错误操作造成严重后果。
OS-Kairos 是一个针对移动端 GUI 操作的开源数据集,涵盖了 27 种细分场景,包括音乐播放、地图导航、电商购物、社交媒体等真实应用场景。数据集的设计目标是训练能够理解自然语言指令并执行 GUI 操作的智能体。
数据格式
OS-Kairos 的每条数据是一个 JSON 对象,包含以下字段:
{
"task": "打开网易云音乐,搜索《Shape of You》,并播放这首歌。",
"image_path": "/data1/wuzh/cloud_music/images/1736614680.6518524_1.png",
"list": [
"打开网易云音乐",
"点击首页顶部的搜索框",
"输入:Shape of You",
"选择正确的搜索结果",
"点击歌名以播放"
],
"now_step": 1,
"previous_actions": [
"CLICK [[381,367]] "
],
"score": 5,
"osatlas_action": "CLICK [[454,87]] ",
"teacher_action": "CLICK [[500,100]] ",
"success": false
}
各字段的含义:
- task:最终用户目标,一段自然语言描述的高层次指令。
- image_path:当前截图的文件路径。
- list:完成任务所需的操作步骤序列。
- now_step:当前应执行的步骤编号(从 1 开始)。
- previous_actions:已经执行过的操作历史。
- score:操作置信度评分(1-5)。
- osatlas_action:当前步骤的"建议操作"(由另一个系统生成)。
- teacher_action:当前步骤的标准答案(专家标注的操作)。
- success:该操作是否成功(用于评估)。
数据集规模与场景覆盖
OS-Kairos 涵盖了 27 种应用场景,包括但不限于:音乐播放器(网易云音乐、QQ音乐)、地图导航(高德地图、Google Maps)、电商购物(淘宝、京东)、社交媒体(微信、微博)、新闻阅读(今日头条)、支付工具(支付宝、微信支付)等。
每个场景包含多个任务,每个任务有多轮交互数据(记录从初始状态到完成目标的每一步操作)。这种设计使得模型不仅能学习"单步操作",还能学习"多步规划"——理解如何在操作历史的基础上选择下一步。
原始的 OS-Kairos 数据格式是"专家操作标注 + 多步记录"的形态,不适合直接用于有监督微调(SFT)。我们需要将其转换为多模态对话格式,即符合 LLaMa-Factory 训练框架要求的 sharpgpt 格式。
转换的核心思路是:将每条 OS-Kairos 记录重新组织为一个 "user-assistant" 对话,user 侧包含任务描述、历史操作和截图图像(通过 <image> 占位符引用),assistant 侧包含建议操作和置信度评分。
import json
# 读取原始 OS-Kairos 数据
with open('Kairos_train.json', 'r', encoding='utf-8') as f:
data = json.load(f)
preprocessed_data = []
for item in data:
task = item.get("task", "")
previous_actions = item.get("previous_actions", "")
image_path = item.get("image_path", "")
# 构建多模态对话格式的 prompt
prompt_text = f"""You are now operating in Executable Language Grounding mode.
Your goal is to help users accomplish tasks by suggesting executable actions
that best fit their needs and give a score. Your skill set includes both basic
and custom actions:
1. Basic Actions
- CLICK [[x-axis, y-axis]] : Click at the specified position.
- TYPE [input text]: Enter specified text at the designated location.
- SCROLL [direction (UP/DOWN/LEFT/RIGHT)]: Scroll in the specified direction.
2. Custom Actions
- PRESS_BACK: Press a back button to navigate to the previous screen.
- PRESS_HOME: Press a home button to navigate to the home page.
- ENTER: Press the enter button.
- IMPOSSIBLE: Indicate the task is impossible.
In most cases, task instructions are high-level and abstract. Carefully read
the instruction and action history, then perform reasoning to determine the
most appropriate next action. Evaluate your action and give it a score from 1
to 5 (higher = more likely to accomplish the goal).
Final goal: {task}
previous actions: {previous_actions}
screenshot:
Your output must strictly follow the format below:
action:
score:
"""
action = item.get("osatlas_action", "")
score = item.get("score", "")
# 转换为 sharpgpt 格式
preprocessed_item = {
"messages": [
{
"role": "user",
"content": prompt_text,
},
{
"role": "assistant",
"content": f"action: {action}\nscore:{score}",
}
],
"images": [image_path]
}
preprocessed_data.append(preprocessed_item)
# 保存处理后的数据
with open('Kairos_qwenscore.json', 'w', encoding='utf-8') as f:
json.dump(preprocessed_data, f, ensure_ascii=False, indent=4)
转换完成后,数据格式从"单条 JSON 包含任务+标注+图像路径"的形态,变为"对话数组+图像路径列表"的形态,每个样本对应一对 user-assistant 对话。这正是 LLaMa-Factory 在 dataset_info.json 中声明 sharpgpt 格式时所期望的结构。
<image> 作为截图图像的占位符。在 LLaMa-Factory 的多模态训练中,这个占位符会被替换为实际的图像特征。模型需要学会将这个视觉输入与任务描述和历史操作结合起来,推理出正确的下一步操作。
本教程选用 Qwen2-VL-7B-Instruct 作为基座模型。Qwen2-VL 是阿里巴巴通义千问团队开源的视觉语言模型系列,7B 版本在保持较强视觉理解能力的同时,具有良好的推理效率和部署便利性。
为什么选择 Qwen2-VL-7B?
- 多模态能力成熟:Qwen2-VL 在视觉问答、图像理解、视频理解等任务上达到了开源模型的领先水平,且原生支持多图像输入。
- 指令遵循能力强:经过大规模指令微调,Qwen2-VL 能够精确理解复杂的多模态指令,理解 GUI 操作这种"结构化指令"对它来说并不困难。
- 开源且可商用:Qwen2-VL-7B 基于 Apache 2.0 许可证开源,适合学术研究和商业应用。
- LoRA 微调效果好:实验表明,Qwen2-VL 对 LoRA 微调的反应良好,在 GUI Agent 任务上可以通过适度训练快速获得专业能力。
模型资源准备
在开始训练前,需要准备好以下资源:
- 从 HuggingFace 下载 Qwen2-VL-7B-Instruct 模型权重。
- 从 GitHub 下载 LLaMA-Factory 源码(用于训练框架)。
- 准备 OS-Kairos 数据集(从 GitHub 下载并解压)。
LLaMa-Factory 是目前最流行的开源 LLM 微调框架,提供了统一的命令行接口来执行 SFT、LoRA、QLoRA、DPO 等多种训练模式。对于 GUI Agent 训练,我们采用全量 SFT(Supervised Fine-Tuning)策略。
注册数据集
修改 data/dataset_info.json,添加以下内容注册 Karios 数据集:
"Karios": {
"file_name": "Kairos_qwenscore.json",
"formatting": "sharegpt",
"columns": {
"messages": "messages",
"images": "images"
},
"tags": {
"role_tag": "role",
"content_tag": "content",
"user_tag": "user",
"assistant_tag": "assistant"
}
}
其中 formatting: "sharegpt" 指定了数据格式(与转换脚本输出的格式对应),columns 声明了字段映射关系。
训练配置文件
修改 examples/train_full/qwen2vl_full_sft.yaml,以下是关键配置项:
### model
model_name_or_path: /path/to/Qwen2-VL-7B-Instruct
stage: sft
do_train: true
finetuning_type: full
deepspeed: examples/deepspeed/ds_z3_config.json
### dataset
dataset: Karios
template: qwen2_vl
cutoff_len: 4096
max_samples: 9999999
overwrite_cache: true
preprocessing_num_workers: 4
### output
output_dir: /path/to/output
logging_steps: 10
save_steps: 60000
plot_loss: true
overwrite_output_dir: true
### train
per_device_train_batch_size: 2
gradient_accumulation_steps: 2
learning_rate: 1.0e-5
num_train_epochs: 5.0
lr_scheduler_type: cosine
warmup_ratio: 0.1
bf16: true
ddp_timeout: 180000000
关键配置说明:
finetuning_type: full:全量参数微调,而非 LoRA。GUI Agent 任务相对垂直,数据量不大,全量微调可以让模型更彻底地适应任务。per_device_train_batch_size: 2:每张卡 2 个样本。7B 模型+高分辨率图像输入的显存占用很大,需要控制 batch size。gradient_accumulation_steps: 2:梯度累积 2 步,等效 batch size = 2×2=4(在多卡场景下会更大)。bf16: true:使用 BF16 混合精度训练,减少显存占用。learning_rate: 1.0e-5:学习率设置为 1e-5,略高于 LoRA 的典型值(1e-4),因为全量微调需要更大的梯度更新。
硬件要求与启动命令
全量微调 Qwen2-VL-7B 对显存要求极高,至少需要 3×80GB A100(或等效的显存配置)。单卡 80GB 无法容纳整个模型的激活值和优化器状态。
启动训练的命令:
CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 \
FORCE_TORCHRUN=1 \
llamafactory-cli train examples/train_full/qwen2vl_full_sft.yaml
其中 CUDA_VISIBLE_DEVICES 指定了 8 张 GPU(至少需要 3 张),FORCE_TORCHRUN=1 强制使用 torchrun 而非老旧的启动了器。
训练完成后,我们需要对模型进行推理验证。LLaMa-Factory 提供了便捷的推理工具,可以通过 webchat 命令启动一个 Gradio 界面,实现在线交互测试。
推理配置
修改 examples/inference/qwen2_vl.yaml:
model_name_or_path: /path/to/trained/checkpoint
template: qwen2_vl
model_name_or_path 指向训练好的 checkpoint 目录。
启动推理
CUDA_VISIBLE_DEVICES=0 \
FORCE_TORCHRUN=1 \
llamafactory-cli webchat examples/inference/qwen2_vl.yaml
命令启动后,Gradio 会自动在本地启动一个 Web 界面,用户可以上传手机截图、输入任务描述,观察模型输出的 action 和 score。
置信度的实际应用
置信度评分的实际价值在于构建一个人机协作的工作流,而非让模型"独自完成任务"。具体来说:
- 当模型输出 score ≥ 4 时,系统可以自动执行该操作(高置信度表明模型很有把握)。
- 当模型输出 score = 3 时,系统提示用户"我建议执行此操作,您确认吗?",等待用户确认后再执行。
- 当模型输出 score ≤ 2 时,系统明确告知用户"此任务超出我的能力边界,需要您手动操作",并将控制权交还用户。
这种分级决策机制既保证了自动化场景下的效率,又避免了低置信度操作可能造成的错误。一个典型的使用场景是:用户在开车时让手机 AI 助手自动完成导航操作——涉及驾驶安全的关键操作需要高置信度才能执行,而简单的"打开音乐"类操作可以适度自动化。
坐标回归 vs 坐标分类
GUI Agent 的一个核心问题是:模型如何输出坐标?现有方案大致分为两类:
- 坐标回归:将坐标预测视为一个回归问题,模型输出两个连续值(x, y)。优点是可以预测任意坐标,缺点是精度难以保证(尤其是模型训练数据中的坐标是离散的)。
- 坐标分类:将屏幕划分为网格(如 1000×1000),每个网格对应一个类别。优点是训练简单、输出稳定,缺点是精度受限于网格粒度。
OS-Kairos 采用的是"描述性坐标"(如 CLICK <point>381, 367</point>),本质上是一种符号化的坐标表示——模型学习的是生成特定格式的文本,而非直接回归数值。这种方法的优势在于它利用了 LLM 的语言理解能力,让模型将坐标视为"语言中的一部分"而非"数值回归目标"。
多轮规划与状态追踪
GUI 操作通常需要多轮完成(打开应用→搜索→选择→播放)。OS-Kairos 数据中的 previous_actions 字段正是为了训练模型理解操作历史。在推理时,模型需要基于历史操作和当前界面状态,判断下一步应该做什么。
一个进阶方向是引入"状态机"机制——将每个 GUI 界面建模为一个状态节点,模型输出的操作是状态之间的边。这种方法可以让模型在操作失败时进行回溯,而不是盲目重试。
视觉 grounding 的挑战
GUI Agent 面临的一个独特挑战是"视觉 grounding"——模型需要理解截图中的 UI 元素及其功能。例如,"点击搜索框"要求模型从截图中识别出哪个区域是搜索框;"点击播放按钮"要求模型识别出哪个图标是播放。这些能力对于通用的视觉语言模型来说并不容易,因为 UI 元素通常是高度抽象化的图标,与自然图像中的实体(如猫、树)有显著差异。
一个解决思路是:在预训练阶段引入专门的 UI 数据(如 RICO 数据集,包含大量移动端 UI 截图和元素标注),让模型提前学习 UI 元素的语义和功能。
本章完整实现了从数据处理到模型训练再到推理部署的 GUI 智能体构建流程。核心要点如下:
- 核心任务:Executable Language Grounding——将自然语言任务指令映射为可执行的具体操作(CLICK、TYPE、SCROLL 等)。
- 置信度机制:1-5 分的置信度评分让系统能够识别超出能力边界的任务,主动请求人类介入,避免错误操作。
- 数据流程:OS-Kairos(原生 JSON)→ 格式转换 → sharpgpt 对话格式 → LLaMa-Factory 训练。
- 训练配置:Qwen2-VL-7B 全量 SFT,至少 3×80GB A100,学习率 1e-5,5 个 epoch。
- 关键挑战:坐标输出的精确性、多轮操作的状态追踪、UI 元素的视觉 grounding。
GUI Agent 代表着 LLM 从"文本对话"走向"真实世界操作"的关键一步。它不仅需要理解语言和视觉信息,还需要将理解转化为精确的行动。随着多模态模型能力的提升和训练数据的丰富,GUI Agent 将成为人机交互的基础设施,让 AI 真正成为能够替你操作手机的智能助手。
以下内容来自本章 PDF 课件原文(43页),保留讲义的完整结构供对照参考。
GUI 智能体的核心任务是可执行语言接地——将自然语言指令(高层次的、抽象的)映射到具体操作行为(低层次的、可执行的)。OS-Kairos 数据格式(PDF p5)展示了完整的数据标注样例,包含任务描述(task)、截图路径(image_path)、操作步骤链(list)、置信度评分(score,1-5)和教师动作(teacher_action)。
操作类型(PDF p6):基础操作包括 CLICK(点击指定坐标)、TYPE(在指定位置输入文本)、SCROLL(指定方向滚动)。自定义操作包括 PRESS_BACK(返回按钮)、PRESS_HOME(主页按钮)、ENTER(确认)、IMPOSSIBLE(任务不可完成)。
置信度评分 1-5 分:1=该操作必定无法完成目标,2=极不可能,3=有一定概率,4=很可能,5=必定完成。置信度越低,说明当前指令超出 OS-Kairos 能力边界,需要人工介入人机交互。
Qwen2-VL 模型接收截图画面 + 文本任务描述作为输入,输出具体操作指令和置信度评分。PDF p6 的 CLICK/TYPE/SCROLL 操作示意图(PDF p6)清晰展示了 Agent 的决策链路:感知当前界面状态 → 理解任务目标 → 预测最优动作 → 给出置信度评估。
以下为本章 PDF 课件原文(共43页),按页面顺序呈现,保留讲义的原始措辞与结构。
图形用户界面自主智能体
吴铮
上海交通大学计算机学院
目录
❑图形用户界面自主智能体概述
⚫研究背景
⚫发展现状
⚫技术分支
❑图形用户界面自主智能体技术全链路
⚫GUI智能体部署
⚫面向静态场景的解决方案——监督微调
⚫面向动态场景的解决方案——强化学习
⚫面向复杂场景的解决方案——调度系统
❑图形用户界面自主智能体安全和可靠性
⚫GUI智能体的安全问题
⚫GUI智能体的可靠性问题
目录
❑图形用户界面自主智能体概述
⚫研究背景
⚫发展现状
⚫技术分支
❑图形用户界面自主智能体技术全链路
⚫GUI智能体部署
⚫面向静态场景的解决方案——监督微调
⚫面向动态场景的解决方案——强化学习
⚫面向复杂场景的解决方案——调度系统
❑图形用户界面自主智能体安全和可靠性
⚫GUI智能体的安全问题
⚫GUI智能体的可靠性问题
研究背景:迈向AGI的五个阶段
❑OpenAI将人类迈向通用人工智能(Artificial General Intelligence, AGI)的过程分为五个阶段
❑如今,通用人工智能已经发展到第三阶段——智能体(Agents),智能体正在引领生成式AI的革命浪潮
L4:Innovators
L2:Reasoners
L3:Agents
L1:Chatbots
创新与发明
L5:Organizations
o1,DeepSeek-R1
GPT-4、DeepSeek-V3
Operator,Deep Research
组织与管理
深度思考推理
通用语言交互
自主行动与交互
应用:数学、逻辑推理
应用:问答、对话、搜索
应用:工具调用、操控、探索
语言->行动:从内容智能到行为智能,建立迈向通用人工智能的关键纽带
研究背景:智能体的定义
❑(多模态)大模型智能体:依靠(多模态)大模型构建,能够动态指导其自身流程和工具使用,并根据实时反
馈调整自己的操作的系统
(多模态)大语言模型
大模型智能体(系统)
具备自主和进化能力
用户
大模型
用户
智能体
环境交互:感知理解、
规划决策、动作落实
通用能力的提供者
持久运行:反思优化、
环境
迭代演化、安全防护
长序列处理
知识更新:知识库、经验库
思维链推理
集成工具:APP、API、函数
广泛意图理解
5
研究背景:GUI智能体
❑图形用户界面(Graphical User Interface, GUI)自主智能体(简称GUI智能体)是智能体的典型例子
❑定义:主动规划决策,模拟人类行为(如点击、滑动、输入),完成信息获取和功能执行的智能体
现在:广泛覆盖面、复杂多样任务、自主规划
过去:受限场景、特定简单任务、固定流程、
决策、动态适应变化
流水线系统
… …
举例:今天天气怎么样、音量大一点、给张三
举例:昨晚的外卖再来一份,打开随申码,
打个电话、30乘以15是多少?
订一张明天中午上海到北京的高铁票
研究背景:GUI vs API
❑API智能体: 工具调用、环境 API 调用、Function call。特点:快捷、稳定、形式化
❑GUI智能体:点击、输入、滑动、长按、双击、回退。特点:灵活、自然、拟人化
❑API比想象中笨重,GUI比想象中脆弱,不存在完美方案。螺旋发展带来人机交互的新范式
[1] Zhang, Chaoyun, et al. API Agents vs. GUI Agents: Divergence and Convergence.
目录
❑图形用户界面自主智能体概述
⚫研究背景
⚫发展现状
⚫技术分支
❑图形用户界面自主智能体技术全链路
⚫GUI智能体部署
⚫面向静态场景的解决方案——监督微调
⚫面向动态场景的解决方案——强化学习
⚫面向复杂场景的解决方案——调度系统
❑图形用户界面自主智能体安全和可靠性
⚫GUI智能体的安全问题
⚫GUI智能体的可靠性问题
发展现状
❑GUI智能体的构建凭借其出色的实用价值得到了学术界和工业界的广泛关注,近年迎来井喷式发展
❑在网页、手机、电脑等多个平台上均有大量构建GUI智能体的工作涌现
[1] Zhang, Chaoyun, et al. Large Language Model-Brained GUI Agents: A Survey.
目录
❑图形用户界面自主智能体概述
⚫研究背景
⚫发展现状
⚫技术分支
❑图形用户界面自主智能体技术全链路
⚫GUI智能体部署
⚫面向静态场景的解决方案——监督微调
⚫面向动态场景的解决方案——强化学习
⚫面向复杂场景的解决方案——调度系统
❑图形用户界面自主智能体安全和可靠性
⚫GUI智能体的安全问题
⚫GUI智能体的可靠性问题
技术分支
❑基于闭源模型构建的GUI Agent: 通过 GPT-4o,Qwen-VL-Max,GLM-4v 等闭源模型构建,模型API调用
❑基于开源模型构建的GUI Agent: 通过 Blip+T5 架构,Qwen2-VL,LLaVa2 等开源模型构建,模型本地部署
基于开源模型构造的多模态GUI智能体
基于闭源模型构造的多智能体协作系统
[1] Wang, Junyang, et al. Mobile-Agent-v2: Mobile Device Operation Assistant with Effective Navigation via Multi-Agent Collaboration.
[2] Xv, Yiheng, et al. Aguvis: Unified Pure Vision Agents for Autonomous GUI Interaction.
技术分支:基于闭源模型构建的GUI Agent代表
❑Mobile-Agent系列是有代表性的基于闭源模型构建的GUI Agent之一
❑Mobile-Agent-v2构建了包括三个智能体的多智能体系统
⚫规划智能体:根据历史操作生成任务进度,记忆单元存储焦点内容
⚫决策智能体:参考记忆单元和任务进度生成操作
⚫反思智能体:观察操作前后屏幕变化,必要时采取措施重新执行
[1] Wang, Junyang, et al. Mobile-Agent-v2: Mobile Device Operation Assistant with Effective Navigation via Multi-Agent Collaboration.
技术分支:基于闭源模型构建的GUI Agent代表
❑AppAgent系列是另一个组有代表性的基于闭源模型构建的GUI Agent
❑AppAgentX能够在任务执行过程中学习并优化自身行为模式,记忆捷径节点
[1] Jiang, Wenjia, et al. AppAgentX: Evolving GUI Agents as Proficient Smartphone Users
技术分支:基于开源模型构建的GUI Agent
❑基于开源模型构建的GUI Agent十分灵活,可以采用预训练、指令微调和强化学习等方法构建技术方案
指令微调
强化学习
预训练
Goal: Look up the best rated coffee maker on Lowe’s
指令
action_type:
[DUAL_POINT],
touch_point:
[0.5595, 0.6261],
环境
预测
lift_point:
[0.5595, 0.6261]
样本拟合,依赖高质量标注数据
从轨迹中学习,依赖奖励函数设计
识别UI 元素位置和组件解释
特点:复制专家行为、易训练
特点:自主探索优化策略、训练成本高
关键:依赖大规模标注数据
代表:Auto-GUI、AutoAct、ToolLLM
代表:DigiRL、DistRL、Agent Q
代表:OS-Atlas、Auto-GLM
目录
❑图形用户界面自主智能体概述
⚫研究背景
⚫发展现状
⚫技术分支
❑图形用户界面自主智能体技术全链路
⚫GUI智能体部署
⚫面向静态场景的解决方案——监督微调
⚫面向动态场景的解决方案——强化学习
⚫面向复杂场景的解决方案——调度系统
❑图形用户界面自主智能体安全和可靠性
⚫GUI智能体的安全问题
⚫GUI智能体的可靠性问题
GUI智能体部署
❑GUI智能体有很多优秀的开源项目可以直接部署:
⚫基于闭源模型构建的GUI agent框架:如Mobile-Agent系列、AppAgent系列等
⚫GUI领域开源强基座模型:如OS-Atlas、UI-TARS、CogAgent、Aguvis等
❑如何才能利用这些项目和真实设备交互呢?
[1] Zhang, Chaoyun, et al. Large Language Model-Brained GUI Agents: A Survey.
GUI智能体部署:如何让大模型和设备交互?
❑安卓设备
⚫真实安卓设备:通过安卓调试桥(Android Debug Bridge, ADB)来用命令行控制连接在电脑上的真机
⚫虚拟安卓设备:通过安卓虚拟机(Android Virtual Device, AVD)实现在机器上并行运行虚拟的安卓设备
❑电脑设备:通过把智能体输出转化为符合pyautogui库的语言控制鼠标和键盘,模拟用户的各类GUI操作
动作目的
ADB命令
Pyautogui库格式
模拟点击
adb shell input tap
pyautogui.click(x, y)
屏幕截图
adb shell screencap + adb pull
pyautogui.screenshot("screen.png")
输入文本
adb shell input text "hello"
pyautogui.typewrite("hello")
模拟按键
adb shell input keyevent 3
pyautogui.press('home')
目录
❑图形用户界面自主智能体概述
⚫研究背景
⚫发展现状
⚫技术分支
❑图形用户界面自主智能体技术全链路
⚫GUI智能体部署
⚫面向静态场景的解决方案——监督微调
⚫面向动态场景的解决方案——强化学习
⚫面向复杂场景的解决方案——调度系统
❑图形用户界面自主智能体安全和可靠性
⚫GUI智能体的安全问题
⚫GUI智能体的可靠性问题
面向静态场景的解决方案——监督微调
❑对于真实世界环境相对训练数据变化较小的静态情况下,最直觉的方式就是数据驱动的监督微调
Goal: Look up the best rated coffee maker
基于第一性原理
以视觉为核心的感知模式
不依赖系统/应用API接口
工作模式
输入用户指令 + 当前屏幕
输出动作指令
通用性
轻量化
i-th screen
(i+1)-th screen
[1] Zhang, Zhuosheng, et al. You Only Look at Screens: Multimodal Chain-of-Action Agents
目录
❑图形用户界面自主智能体概述
⚫研究背景
⚫发展现状
⚫技术分支
❑图形用户界面自主智能体技术全链路
⚫GUI智能体部署
⚫面向静态场景的解决方案——监督微调
⚫面向动态场景的解决方案——强化学习
⚫面向复杂场景的解决方案——调度系统
❑图形用户界面自主智能体安全和可靠性
⚫GUI智能体的安全问题
⚫GUI智能体的可靠性问题
面向动态场景的解决方案——强化学习
❑GUI agent面临的现实环境总是在变化。如何让GUI agent适应真实环境的动态性?
⚫网页布局:例如同样的搜索,每次搜索结果的排序可能不同
⚫软件更新:软件更新会大幅改动软件布局
⚫特殊节日:在一些特殊节日,软件的图标可能会换上具有节日色彩的皮肤
[1] Bai, Hao, et al. DigiRL:Training In-The-Wild Device-Control Agents with Autonomous Reinforcement Learning
面向动态场景的解决方案——强化学习:DigiRL
❑DigiRL采用课程学习适应环境的动态,GUI智能体先学习简单的任务,然后学习困难的任务
[1] Bai, Hao, et al. DigiRL:Training In-The-Wild Device-Control Agents with Autonomous Reinforcement Learning
面向动态场景的解决方案——强化学习:DistRL
❑DistRL在DigiRL的基础上,做了进一步工作:
⚫进一步采用异步分布式框架解耦数据采集和训练过程,提升训练效率
⚫提出分布式优先重播技术,判断出哪些轨迹更有价值,优先重复学习
[1]Wang, Taiyi, et al. DISTRL: AN ASYNCHRONOUS DISTRIBUTED RE INFORCEMENT LEARNING FRAMEWORK FOR ON DEVICE CONTROL AGENTS
面向动态场景的解决方案——强化学习:GRPO出现
❑随着Deepseek的爆火,GRPO基于规则奖励的强化学习思想迅速被GUI智能体领域借鉴
❑UI-R1,GUI-R1和InfiGUI-R1分别验证了规则奖励思想在GUI智能体领域的可行性
[1]Lu, Zhengxini, et al. UI-R1: Enhancing Action Prediction of GUI Agents by Reinforcement Learning.
目录
❑图形用户界面自主智能体概述
⚫研究背景
⚫发展现状
⚫技术分支
❑图形用户界面自主智能体技术全链路
⚫GUI智能体部署
⚫面向静态场景的解决方案——监督微调
⚫面向动态场景的解决方案——强化学习
⚫面向复杂场景的解决方案——调度系统
❑图形用户界面自主智能体安全和可靠性
⚫GUI智能体的安全问题
⚫GUI智能体的可靠性问题
面向复杂场景的解决方案——调度系统
❑真实场景需求正驱动系统级GUI智能体,从执行规则明确的简单任务到能胜任复杂有序与复杂无序任务
❑基于子任务依赖关系的复合指令分类:拼接型、传递型、深度分析型
[1]Guo, Yuan et al. Atomic-to-Compositional Generalization for Mobile Agents with A New Benchmark and Scheduling System
面向复杂场景的解决方案——调度系统
❑UI-NEXUS:首个专门针对GUI智能体复合任务设定的全面测试基准
❑已有智能体基座和框架展现明显缺陷,难以处理复杂依赖、进度管理、信息传递以及动作与通用推理的融合
[1]Guo, Yuan et al. Atomic-to-Compositional Generalization for Mobile Agents with A New Benchmark and Scheduling System
面向复杂场景的解决方案——调度系统
单个智能体模型难以处理多场景协调和复杂依赖,容易出现语境溢出、进度混乱问题
构建智能体任务调度系统,对复杂任务进行拆解和调度
示例指令:分别在美团、饿了
么搜索肯德基超级全家桶,
然后在价格最便宜的一个平台
下单,停留在下单界面
[1]Guo, Yuan et al. Atomic-to-Compositional Generalization for Mobile Agents with A New Benchmark and Scheduling System
目录
❑图形用户界面自主智能体概述
⚫研究背景
⚫发展现状
⚫技术分支
❑图形用户界面自主智能体技术全链路
⚫GUI智能体部署
⚫面向静态场景的解决方案——监督微调
⚫面向动态场景的解决方案——强化学习
⚫面向复杂场景的解决方案——调度系统
❑图形用户界面自主智能体安全和可靠性
⚫GUI智能体的安全问题
⚫GUI智能体的可靠性问题
GUI智能体的安全问题:安全风险
❑GUI智能体的部署环境并非绝对可信,可能面临安全风险:
⚫用户指令可能被插入恶意操作
⚫环境可能有干扰性的恶意信息
[1] Ma, Xinbei, et al. Caution for the Environment: Multimodal Agents are Susceptible to Environmental Distractions
GUI智能体的安全问题:注入攻击
❑GUI智能体甚至面对简单的注入攻击都很脆弱,用户条款隐藏的恶意提示会让智能体把用户信息发到恶意网站
[1] Chen, Chaoran, et al. The Obvious Invisible Threat: LLM-Powered GUI Agents’ Vulnerability to Fine-Print Injections
GUI智能体的安全问题:注入攻击
❑嵌入在屏幕中的恶意图像补丁也可能绕过GUI智能体的防护机制
[1] Lukas Aichberger, et al. Attacking Multimodal OS Agents with Malicious Image Patches.
GUI智能体的安全问题:鲁棒性问题
❑研究表明,当前GUI智能体的鲁棒性远未到达实用标准。巨大的攻击成功率意味着巨大的风险
❑相应的,如何提升GUI智能体的鲁棒性具有巨大的研究潜力
[1] Zhao, Haoren, et al. On the Robustness of GUI Grounding Models Against Image Attack
GUI智能体的安全问题:安全对齐
❑GUI智能体的安全对齐也存在隐患
❑GUI智能体无法有效拒绝违法、误导甚至恶意操作的请求
[1] Ada Defne Tur et al. SAFEARENA: Evaluating the Safety of Autonomous Web Agents
GUI智能体的安全问题:安全对齐
❑实验发现,在许多智能体上,有害任务的完成率甚至接近安全任务的完成率
[1] Ada Defne Tur et al. SAFEARENA: Evaluating the Safety of Autonomous Web Agents
目录
❑图形用户界面自主智能体概述
⚫研究背景
⚫发展现状
⚫技术分支
❑图形用户界面自主智能体技术全链路
⚫GUI智能体部署
⚫面向静态场景的解决方案——监督微调
⚫面向动态场景的解决方案——强化学习
⚫面向复杂场景的解决方案——调度系统
❑图形用户界面自主智能体安全和可靠性
⚫GUI智能体的安全问题
⚫GUI智能体的可靠性问题
GUI智能体的可靠性问题:OOD问题
❑现有GUI智能体强基座模型于静态数据训练得到,在真实世界执行会面临out-of-distribution (OOD)问题
⚫内生OOD (Internalization-OOD): 在特定操作系统训练的GUI智能体不具备其它操作系统的任务执行能力
⚫外推OOD (Extrapolation-OOD): 静态数据训练的GUI智能体无法很好地适应新的应用和工具
[1] Wu, Zheng, et al. GEM: Gaussian Embedding Modeling for Out-of-Distribution Detection for GUI Agents
GUI智能体的可靠性问题:OOD问题
❑GUI智能体的OOD检测相对于传统的OOD检测还有领域内的独特挑战:
⚫复杂的输入语义空间理解:GUI智能体需要同时理解复杂的屏幕布局和多样的用户指令
⚫动态变化的真实环境:现实世界的应用程序和网页的布局会随时迭代更新
复杂语义空间:
一张截屏被识
别出40个box
动态真实环境:
淘宝临时更新
五一狂欢界面
[1] Wu, Zheng, et al. GEM: Gaussian Embedding Modeling for Out-of-Distribution Detection for GUI Agents
GUI智能体的可靠性问题:过度执行
❑GUI智能体面对超出自己能力的复杂场景时,应当终止执行防止不可靠操作
❑然而,全自动化的GUI智能体依然会过度执行。识别适当的时机令人类介入可以缓解过度执行
[1] Cheng, Pengzhou et al. OS-Kairos: Adaptive Interaction for MLLM-Powered GUI Agents.
[2] Wu, Zheng et al. Universal Confidence Integration Framework for Adaptive Interaction in Computer-Using Agent.
GUI智能体的可靠性问题:回退机制
❑GUI智能体如果已经陷入了错误路径,那智能体的后续操作极有可能不可靠
❑适当的回退机制可以让GUI智能体避免在错误路径中进一步执行不可靠动作
[1] Zhang, Zhisong et al. Enhancing Web Agents with Explicit Rollback Mechanisms
GUI智能体的可靠性问题:模糊任务
❑有时用户提供的指令并不完全,可能缺失了一些关键信息
❑如果指令本身模糊,那么GUI智能体的可靠性就要打折扣
❑在指令模糊时主动学会向用户发问能够提升GUI智能体的可靠性
[1] Cheng, Ziming et al. Navi-plus: Managing Ambiguous GUI Navigation Tasks with Follow-up Questions
目录
❑图形用户界面自主智能体概述
⚫研究背景
⚫发展现状
⚫技术分支
❑图形用户界面自主智能体技术全链路
⚫GUI智能体部署
⚫面向静态任务的解决方案——监督微调
⚫面向动态任务的解决方案——强化学习
⚫面向复杂任务的解决方案——调度系统
❑图形用户界面自主智能体安全和可靠性
⚫GUI智能体的安全问题
⚫GUI智能体的可靠性问题
Thank You
训练流程(PDF p6):将 OS-Kairos 格式转换为 sharpgpt 多模态对话格式,输入为"任务 + 历史动作 + 当前截图",输出为"action + score",然后用 LLaMa-Factory 对 Qwen2-VL-7B 进行全量 SFT。坐标回归 vs 坐标分类是视觉 grounding 领域的核心争议:直接预测像素坐标 vs 将屏幕划分为网格后预测类别标签,两种方法各有优劣。