Agent Skills
返回列表
🤖

OmniParser 视觉解析

AI Agent 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md 的安装指南,在你的 AI 助手中安装 @user_3c6cb52e/use-omniparser-for-vision-based-gui-parsing 技能。

技能介绍

要解决的问题

让模型去操作图形界面时,最常用的做法是读取 DOM 或无障碍树:拿到干净的标签和属性,再决定点哪里。但这套路径依赖目标应用愿意暴露结构,一旦遇到没有语义信息的自绘控件、Electron 打包的桌面端,或者拿不到源码的闭源程序,代理就只能退化成"猜像素坐标"。纯截图方案信息密度高,却缺少语义层,代理看不出那块矩形到底是一个按钮、一段文字还是一个图标。

这个技能就是在这个缝隙上工作:把屏幕截图变成带类型标注的结构化 UI 元素,让 computer-use agents 在真正执行点击、输入之前,先看清界面上到底有哪些控件。

它如何工作

核心思路是视觉解析优先,而不是先找 DOM:

  • 输入是一张截图,输出是带边界框和元素类别的结构化结果,可以直接喂给下游的规划模块。
  • 使用 OmniParser V2 权重,组件说明部分依赖 icon_caption_florence 目录下的图标描述权重,解析时会对图标类控件做语义补全,而不是只报一个位置。
  • 权重仓库里提供的是 safetensors 格式,运行前需要用 convert_safetensor_to_pt.py 转换,这一步容易漏,转换脚本本身不复杂,但忘了跑会直接报错。
  • 想快速验证效果可以走 gradio_demo.py,在浏览器里直接看解析出的控件框是否符合预期,比写测试脚本更快定位问题。

对代理来说,结构化输出意味着可以把"当前屏幕上有哪些可交互元素、各自类型是什么、位于什么位置"作为一条稳定的事实写进上下文,再据此做下一步推理,减少在像素上反复试探的次数。

适用边界与注意点

  • 解析质量强依赖权重版本,V2 权重和旧版目录结构不同,如果按旧教程去找 caption weights 路径会找不到文件,建议直接核对 weights 目录的实际结构。
  • 自绘、动画或高 DPI 缩放的界面容易出现框与实际控件错位,动态变化快的界面建议多次采样而不是只看单帧。
  • 它做的是"识别"不是"执行",点击、输入、滚动这些动作仍需下游工具完成;也没有内置任务规划能力。
  • 需要 Python 3.12 和独立 conda 环境,避免和已有项目的依赖冲突;上游仓库的权重下载与许可条款需要自行确认。
  • 参考文档:https://microsoft.github.io/OmniParser/

使用场景

  • 闭源 Electron 桌面应用拿不到 DOM,需要把截图解析成按钮、输入框等控件,才能让代理执行后续点击。
  • 目标程序是自绘界面,只有截图可用,需要确认画布上哪些矩形是按钮、图标还是可编辑区域。
  • 界面里的图标没有文本标签,需要依靠图标描述权重补全含义,而不是只返回一个边界框坐标。
  • 动态界面控件位置和数量变化快,需要在动作前采样多帧,看清当前可交互元素再决定下一步。

适合人员

  • 做 computer-use 或 GUI 代理的工程师:需要在拿不到 DOM 的环境下让模型看懂界面结构再执行动作。
  • 维护桌面自动化工具的开发者:闭源应用无法注入 DOM,只能依赖截图解析来定位可点击控件。
  • 验证视觉解析效果的算法工程师:想用 Gradio demo 快速确认解析出的控件框与真实控件是否对齐。
  • 研究 UI 理解的算法工程师:需要在自有数据上复现或扩展 OmniParser V2 的解析流程。