Qwen2.5-VL 智能体 GUI 自动化:看屏幕、出动作、点鼠标划屏的 3 步实践
【免费下载链接】Qwen3-VLQwen3-VL is the multimodal large language model series developed by Qwen team, Alibaba Cloud.项目地址: https://gitcode.com/GitHub_Trending/qw/Qwen3-VL
给一句话——"打开浏览器,在地址栏输入网址并回车"——然后模型自己完成点击、输入、回车,全程无需人工干预。这就是多模态大模型操作电脑的一条真实路径,Qwen2.5-VL 智能体的核心能力一句话解释:看屏幕 → 输出动作指令。本文用仓库里的现成示例带你把它跑起来。
它是怎么"看懂"屏幕的
先看结论:整条链路只有四步,且每步都有明确的输入输出。
- 截图输入。每轮对话只给模型两样东西:当前屏幕截图 + 一句自然语言任务。截图先经过 qwen-vl-utils 的
smart_resize调整到适配模型视觉编码器的尺寸,再编码进上下文。 - 视觉理解。模型从视觉特征中识别按钮、输入框、标签等可交互元素,判断界面结构和当前状态。
- 生成 JSON 动作。模型不写长文本,而是按工具函数调用的规范吐出一段标准 JSON:
name指明调用哪个工具,arguments里带action、coordinate等参数。 - 执行。qwen-agent 框架解析这段 JSON,映射到真实的鼠标/键盘事件或 ADB 触控指令;执行后重新截图,回到第 1 步,形成"截图—动作"闭环。
动作空间由两个工具类界定,定义都放在 cookbooks/utils/agent_function_call.py 里:
ComputerUse:桌面 GUI,支持left_click、double_click、left_click_drag、scroll、type、key共 14 种动作;MobileUse:手机触控,支持click、swipe、long_press、type、open、system_button、wait、terminate共 9 种动作。
每个工具类的description会拼进系统提示词,告诉模型"你能做什么";parameters则声明合法的动作枚举和参数字段——模型输出的坐标和字段,都被这套 schema 约束住。
三步跑通最小示例
1. 装依赖
示例以 API 调用方式运行,四个包缺一不可:
pip install transformers qwen-vl-utils qwen-agent openai2. 初始化工具
以桌面端为例,实例化ComputerUse时要声明屏幕分辨率——这个数值会写进提示词,模型据此校准输出的坐标:
from openai import OpenAI from utils.agent_function_call import ComputerUse computer_use = ComputerUse(cfg={"display_width_px": 1000, "display_height_px": 1000}) client = OpenAI(api_key=..., base_url="...")3. 发送指令、解析动作
把截图编码成 base64,连同用户指令发给模型,再从回复里取出 JSON 动作:
import json, re msg = [{"role": "user", "content": [ {"type": "image_url", "image_url": {"url": f"data:image/jpeg;base64,{b64}"}}, {"type": "text", "text": "打开第三个 issue"}]}] reply = client.chat.completions.create(model=MODEL_ID, messages=msg) m = re.search(r"【免费下载链接】Qwen3-VLQwen3-VL is the multimodal large language model series developed by Qwen team, Alibaba Cloud.项目地址: https://gitcode.com/GitHub_Trending/qw/Qwen3-VL
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考