前言¶
DSH 的插件生态强调「一切皆插件」。如果主模型是 text-only,但任务中需要查看截图、识别文字或分析界面,就需要把图像交给外部多模态 API,再把结果作为文本拿回来。
下面介绍 AlloyPlane/dsh-eye-vision。它是一个 DSH 插件,面向只支持文本输入的 DeepSeek Harness 模型,通过任意 OpenAI-compatible 多模态 API 完成图像理解、OCR 和 UI 分析。
这是什么¶
dsh-eye-vision 的仓库维护者为 AlloyPlane,许可证为 MIT,上游 dsh-free-vision 亦为 MIT。
它的工作方式是:发送图像路径后,agent 调用 image_understand 工具,随后返回文本描述。主模型不需要直接支持图像输入。
核心功能¶
该插件提供以下已核实能力:
- 提供
image_understand工具 - 支持任意 OpenAI-compatible 多模态 API 端点
- 内置
qwen、volcengine、siliconflow免费层提供商 - 支持大图像多裁剪
- 支持
allowed-directories白名单(LUMA_ALLOWED_DIRS) - 支持保存设置后免重启生效
- 从引擎子进程剥离代理环境变量
安装¶
在 DSH 中添加该插件:
dsh plugin --profile web add dsh-eye-vision
添加后,插件会提供 image_understand 工具。
典型用法¶
下面示例用于把图像路径交给 agent。image_source 可以是本地路径、http(s) URL 或 data URI。
看图:D:/path/to/screenshot.png
OCR:D:/path/to/document.png
UI 分析:D:/path/to/design.png (task_type: ui)
task_type 支持以下取值:
auto|general|ocr|ui|debug|describe
配置与运行行为¶
设置文件路径为:
~/.dsh/free-vision.json
运行时有几个需要注意的点:
- API key 只存在于设置文件或环境变量,不写入仓库
- 图像只发送到所配置的端点
- 代理环境变量会被刻意从引擎子进程中剥离
- 图像支持 PNG、JPG、WebP、GIF,约 10 MB 以内
- 若需要让引擎读取工作区中的图像,可使用
allowed-directories白名单,对应配置项为LUMA_ALLOWED_DIRS
适用场景与注意¶
适合以下场景:
- 主模型不能直接接收图像,但需要读取截图、文档或设计图
- 希望使用已有的 OpenAI-compatible 多模态 API,而不是绑定单一厂商
- 需要在 DSH 会话里把图像结果转成文本描述、OCR 文本或 UI 分析
安装前请注意:插件会以当前 dsh 进程权限运行,建议先检查源码、许可证和将要配置的 API 端点。
若准备发布 fork,建议进行 gitguard 风格的 pre-push 扫描。