飞猪 GUI Agent 的技术探索与工程实践 | 新程序员
作者 | 飞猪技术 任圣志 责编 | 唐小引
出品 | ZEEKLOG(ID:ZEEKLOGnews)
在移动互联网时代,用户与软件应用的交互高度依赖图形用户界面(GUI)。无论是搜索、购票、值机、退改签,还是查询订单等,这些操作本质上都是“看图点击输入等操作”的过程。
为了代替人操作软件,产生了模拟人操作软件应用的自动化技术(RPA)。然而,传统的自动化技术(如 Appium、Selenium、Airtest 等)严重依赖 GUI 控件(如 ID 或 XPath),一旦软件 GUI 发生变动,自动化脚本即失效,维护成本极高,开发效率极低。
为解决这一痛点,我们启动了 GUI Agent 项目——一个融合多模态大模型与设备控制能力的智能体系统。它能“看懂”界面、“理解”用户意图,并自主规划操作路径并执行操作,真正实现低维护、高泛化、可解释的智能自动化。
本文将分享我们在 GUI Agent 上的技术探索与工程实践,涵盖架构设计、关键技术突破、落地案例与未来展望。

为什么我们需要 GUI Agent
传统自动化技术的困境
我们曾广泛使用 Appium 和 Airtest 及购买厂商等 RPA 工具进行自动化流程执行,但在实际落地中面临三大难题:

📌 示例:一个简单的“航班值机”流程,在遇到按钮重命名(如“立即值机” → “在线办理”)、页面重构或加载延迟时,传统脚本极易失败,平均修复耗时超过 2 小时。
新思路:借力 AI,让 AI 像人类一样操作 GUI
人类如何完成 GUI 操作?观察发现,其行为路径是典型的“感知-决策-执行”闭环:
1. 看(Perceive):识别界面上的文字、按钮、输入框;
2. 想(Reason):结合任务目标判断当前状态及下一步动作;
3. 做(Act):通过点击、输入、滑动完成操作。
如果我们能让 AI 模拟这个过程,就能构建一个真正“智能”的自动化系统。
于是,我们提出了 GUI Agent 的概念:
一个能“看得懂界面、想得清逻辑、做得对操作”的智能体。
该智能体不依赖于底层控件树,而是通过视觉 + 语义双重理解来驱动交互,具备强鲁棒性和跨平台适应能力。

GUI Agent 是什么
GUI Agent 是一个融合了多模态大模型、OCR、决策规划与设备控制的端到端智能系统,其核心能力如下表所示:

区别于传统自动化工具,GUI Agent 的最大优势在于:
- ✅ 无需控件 ID:完全基于视觉定位
- ✅ 支持跨平台:移动 App / 移动 H5 / PC 浏览器 / PC App 均可运行
- ✅ 具备容错与自愈能力:可处理异常弹窗、加载失败等动态情况
- ✅ 开发极简:只需提供自然语言描述即可运行任务

整体架构设计
GUI Agent 架构基于 ReAct(Reasoning + Acting)框架构建,形成“思考—行动—观察—迭代”的闭环流程。

架构层级图

流程图

模块交互图
核心工作流
[用户输入] ↓Planner (LLM) 分析当前截图 + 历史记忆 → 生成 Action List ↓Executor 执行动作(click/input/swipe) ↓Capture Screenshot & OCR → 获取新状态 ↓Feedback Loop: 将结果送回 Planner 继续推理 ↓直到任务完成或判定不可行该流程实现了类人的“试错式”交互策略,显著提升了复杂流程的成功率。
系统模块详解
(1)Planning Engine:任务规划大脑
- 输入:用户自然语言指令 + 当前界面截图 + 历史动作记录
- 输出:结构化 Action 列表(如 click("立即值机"))
- 核心技术:
使用 Qwen2.5-VL-72B 多模态大模型
结合定制 Prompt 模板实现任务分解与动作生成
支持多轮对话与上下文延续
🔍 注:Prompt 中明确限定输出格式与动作空间,确保可控性。
(2)UI-Tars 模型:视觉定位专家
- 功能:接收“元素描述” + 截图 → 输出精确点击坐标
- 模型基础:基于 Qwen-VL 微调的专用 UI Grounding 模型
- 准确率:>99%,尤其擅长按钮、输入框等高频组件
💡 创新点:引入“功能+外观”双维度描述(如“蓝色背景的确认按钮”),提升泛化能力。
(3)OCR 辅助判断
- 引擎选型:Paddle OCR + 再训练+ 阿里云本地部署(用于航司域文字增强)
- 用途:
页面状态识别(如“值机完成”)
错误检测(如“网络异常,请重试”)
匹配预设 stopTexts 实现流程终止
⚠️ 补充点:在部分航司上会有特殊字体字符识别错误。
(4)Agent Memory:长期记忆系统
- 作用:
存储历史动作、思考过程、中间状态
支持错误回溯、审计追踪、多轮协作
- 数据库设计:
CREATE TABLE agent_session ( session_id VARCHAR(64) PRIMARY KEY, user_id VARCHAR(32), start_time DATETIME, status ENUM('running', 'completed', 'failed')); CREATE TABLE agent_memory ( id BIGINT AUTO_INCREMENT PRIMARY KEY, session_id VARCHAR(64), step INT, thought TEXT, action JSON, screenshot_url TEXT, timestamp DATETIME);- 查询支持:按 session 查询全过程日志,便于调试与合规审查
(5)Client SDK:客户端集成层
- 职责:
移动端/PC 端采集截图与用户输入
接收服务端下发的动作指令并执行
支持多种接入方式:
- Android:ADB + airtest
- PC:WebDriver/WindowsDriver
通信协议:gRPC over TLS,保障安全性与实时性
🔐 安全提示:所有敏感操作(如退票、付款)需二次确认,防止误触发。

关键技术实践
如何让大模型“真正看懂”界面?
直接将截图传给 LLM 效果不佳。我们通过以下方法显著提升理解准确性:
(1)精细化 Prompt 设计
- 明确角色定义、平台类型、可用动作集
- 提供示例 Few-shot 示例引导输出格式
- 强调“基于当前截图决策”,避免预测未来状态
(2)上下文增强策略
- 注入历史动作与反馈结果
- 添加设备元信息(platform: mobile)
(3)结构化动作空间定义
{ "actions": [ { "name": "click", "description": "点击屏幕上某个元素", "parameters": { "element_desc": "必须详细描述目标元素的功能与视觉特征" } }, { "name": "input_text", "description": "向指定输入框填入文本", "parameters": { "text": "待输入内容", "element_desc": "目标输入框描述", "override": "是否清空原内容" } } ]}✅ 最佳实践:要求 element_desc 包含“功能 + 文案 + 位置”三要素,例如:“位于页面底部的绿色按钮,文案为‘立即提交’”。
动态坐标预测的成功率优化
UI-Tars 在部分文字+输入框场景无法正确识别控件坐标,影响点击成功率。我们采取以下措施提升稳定性:

错误处理与自愈机制
构建三层容错体系,提升任务鲁棒性:

此外,引入“动作震荡检测”:若连续动作后但界面未变或变化巨大(可能跳转了页面),则重新调用 planning 服务。
性能优化:速度与精度的平衡
为降低端到端延迟,我们在多个环节进行优化:

📈 当前 P95 端到端延迟:2.8 秒/步,满足多数非实时场景需求。

落地案例:机票值机流程自动化
业务背景
值机是飞猪出行场景中的高频操作,具有以下特点:
- 规则明确:步骤固定,输入参数清晰
- 重复性强:相同的操作流程
- 成功率敏感:失败直接影响用户体验
传统方式需用户手动完成以下步骤:
1. 打开手机浏览器
2. 输入航司值机 URL
3. 填写票信息和乘机人姓名
4. 点击“值机”
5. 同意相关协议
6. 选择座位
7. 确认值机
GUI Agent 实现流程示例
用户仅需发送一条自然语言指令:
“我的姓是张,名是三,票号是 FL123456,帮我完成值机。”
Agent 自动执行如下动作序列:
Thought: 当前页面为首页,需进入订单页查找航班Actions: [click("我的"), click("我的订单")] Thought: 输入票号开始搜索Actions: [input_text("FL1234", "请输入票号", true)] Thought: 找到航班后点击值机Actions: [click("去值机")] Thought: 填写乘机人信息Actions: [input_text("张", "姓"), input_text("三", "名")] Thought: 同意协议并选座Actions: [click("我已阅读并同意"), click("确认"), click("靠窗座位")] Thought: 提交值机请求Actions: [click("提交值机")] Thought: OCR 检测到“值机成功”,任务完成Actions: [status("complete")]最终通过 OCR 验证“值机成功”字样,返回结构化结果给用户。

挑战与未来展望
当前挑战
尽管已取得初步成果,但仍面临若干技术瓶颈:

未来方向
我们将围绕“轻量化、智能化、规模化”三个维度持续推进:

🚀 发展路径:优先在客服辅助、无障碍交互、数字员工等低风险场景试点推广,逐步推广到用户各个操作流程场景。

总结
GUI Agent 的本质,是从“规则驱动”走向“语义驱动”,从“固定脚本”迈向“动态推理”。
在飞猪的实践中,我们验证了:
- ✅ 大模型 + 多模态 = 可落地的智能自动化
- ✅ 视觉理解 + 决策规划 = 真正的“通用操作能力”
未来的自动化,不再是写脚本,而是教 AI 理解任务。
我们相信,GUI Agent 不仅能大幅提升研发效率、降低运维成本,还将为以下场景打开全新可能:
- 智能助手:自动帮用户完成常见操作,“你说我做”
- 无障碍辅助工具:视障人群的“视觉代理”
- 数字员工:7×24 小时值守的自动化运营机器人
随着端侧算力提升与模型小型化进展,GUI Agent 正朝着“人人可用、处处可连”的终极目标迈进。
作者简介:任圣志,飞猪数据工程师,主要负责飞猪 GUI Agent 在机票服务相关产品的开发与应用。
推荐阅读:
多款主流大模型翻车!一道“50米洗车题”竟答“车在家,人走过去”,网友吵翻:AI到底有没有常识?
AI成精了?提交代码惨遭拒绝,次日写长文公开炮轰人类工程师:你这是在歧视 AI
2025 年 Linux 内核十大技术创新|年终盘点
未来没有前后端,只有 AI Agent 工程师。
这场十倍速的变革已至,你的下一步在哪?
4 月 17-18 日,由 ZEEKLOG 与奇点智能研究院联合主办「2026 奇点智能技术大会」将在上海隆重召开,大会聚焦 Agent 系统、世界模型、AI 原生研发等 12 大前沿专题,为你绘制通往未来的认知地图。
成为时代的见证者,更要成为时代的先行者。
奇点智能技术大会上海站,我们不见不散!
