前言¶
在开发需要操作桌面的智能体时,让模型直接理解屏幕内容往往依赖多模态模型。下面介绍 OmniVision 插件,它通过 OmniParser 将屏幕转化为结构化数据,使模型无需原生多模态视觉能力即可“看见”并操作界面。
介绍¶
OmniVision 是一个基于 OmniParser 的 GUI 智能体插件,由 xiaozhengdeng 维护。它将桌面或任意图片变成结构化元素(文本 + 图标 + 像素坐标),解决了模型在无多模态能力时难以进行 GUI 交互的问题。
核心功能¶
插件提供以下核心能力:
* 屏幕识别:截取桌面或解析图片,通过 OmniParser 提取带像素坐标的可交互元素。
* 桌面自动化:支持点击、双击、右键、拖拽、输入、按键、热键及滚轮操作,可按元素 ID 或原始坐标执行。
* 实时识别 Dock:提供带有 SOM 标注的实时识别视图,支持悬停高亮和点击放大。
* 识别记录:记录历史识别结果,并展示与最新结果相比的增删改情况。
* 一键总结:将当前识别的结构化信息发送至会话,由模型进行总结。
* 图片解析:通过 Dock 选择本地图片文件进行解析,绕开模型多模态限制。
* 调用记录:追踪每次 gui_* 工具调用与具体的动作执行情况。
安装与启用¶
安装命令如下:
dsh plugin --profile web add dsh_omnivision
安装完成后,必须重启 web 进程以加载插件。插件作为 profile bundle 层加载,分为 Host 半(注册工具)和 Client 半(提供浏览器界面)。
前置依赖¶
使用前需满足以下条件:
* 平台:仅支持 Windows。
* OmniParser 服务:需确保 OmniParser FastAPI 服务运行在 127.0.0.1:8000。
* Python 依赖:运行环境的 Python venv 需安装 pyautogui,用于截图和输入自动化。
工具说明¶
插件向共享工具注册表注册了以下 gui_* 工具:
* gui_capture:截屏并运行 OmniParser,提取交互元素,刷新视觉状态。
* gui_act:在桌面上执行真实的鼠标/键盘操作。
* gui_find:根据文本或类型搜索上一次识别的元素。
* gui_state:查看当前视觉状态而不重新解析。
* gui_verify:重新截屏解析,反复确认特定文本的出现或消失。
* gui_task:执行多步骤 UI 计划,步骤间支持重新解析与断言。
* gui_open_app:通过 Windows AUMID 启动已安装的桌面应用。
* gui_parse_image:解析会话中的第三方图片(附件)进入共享视觉状态。
使用方法¶
模型侧直接调用上述 gui_* 工具与插件交互。浏览器侧的 OmniVision Dock 提供了可视化的操作面板,包括智能识别视图、解析图片、一键总结、识别记录和调用记录。
注意事项¶
- 插件运行在当前 dsh 进程的权限下,请确保对目标应用有操作权限。
- 使用前务必检查源码与许可证,确保符合使用规范。
结语¶
OmniVision 为 DeepSeek Harness 提供了标准化的 GUI 操作接口,适合需要处理桌面任务的智能体开发场景。更多细节可查阅官方目录或GitHub 仓库。