前言¶
DeepSeek Harness (DSH) 的文本模型(如 deepseek-v4-flash)无法直接处理图像。要实现视觉能力,通常需要接入多模态模型或对宿主进行补丁修改。analyze-image-tool 插件通过注册 analyze_image 工具,为文本模型提供了一个“视觉桥接”层,使其能够通过任何 OpenAI 兼容的视觉/多模态端点回答关于图像的问题。
插件简介¶
这是一个通用的视觉接口插件,由 CaseyTso 维护。它不绑定特定厂商,允许用户配置 baseURL、apiKey 和 model,从而连接 SiliconFlow、DashScope、Ollama 等任意支持 OpenAI 格式的端点。
核心功能¶
- 通用端点支持:支持任何 OpenAI 兼容的端点,无需修改插件代码即可切换模型服务商。
- 沙盒安全读取:本地图片优先通过宿主沙箱的
fs通道读取,支持 HTTP/HTTPS 和 Data URL。 - Schema 安全:使用
defineTool编译参数,符合标准 JSON Schema,避免因 Schema 根节点非对象导致的会话 400 错误。 - 鲁棒性设计:自动清理错误信息中的 API Key,自动剥离大模型思考过程中的
reasoning块。 - 结构化返回:返回包含文本、模型名称和 Token 使用情况的完整结构。
- 共存性:工具名称
analyze_image不会与社区工具(如view_image)冲突。 - WebUI 设置面板:提供可视化的配置入口,支持多配置预设保存、连接性测试。
安装与启用¶
安装前请确保环境满足要求:DeepSeek Harness (dsh) 版本为 0.1.x,Node.js 版本 ≥ 18.17。
使用以下命令安装插件(从 main 分支安装,包含运行时粘贴图片桥接):
dsh plugin --profile web add github:CaseyTso/dsh-analyze-image-tool#main
dsh --profile web
插件会自动作为 profile layer 安装,无需手动编辑 cordis.patch.yml。
配置说明¶
推荐使用 WebUI 面板进行配置。在 Web 会话头部右上角点击眼睛图标,或进入系统设置中的插件配置卡片进行编辑。
主要配置项包括:
* baseURL: 目标端点地址(如 SiliconFlow 或本地 Ollama)。
* apiKey: API 密钥,留空则按链路读取。
* model: 使用的多模态模型 ID。
* maxImageBytes: 允许上传的图片最大字节数,默认 10MB。
* defaultQuestion: 未指定 prompt 时的默认描述请求。
配置示例(cordis.patch.yml):
- id: analyze-image-tool
config:
baseURL: https://api.siliconflow.cn/v1
apiKey: ***
model: Qwen/Qwen3-VL-32B-Instruct
maxTokens: 2048
timeoutMs: 60000
maxImageBytes: 10485760
defaultQuestion: 描述这张图片的细节,包括可见文字和布局。
使用示例¶
模型调用工具时,传入图片路径或附件 ID:
模型: 看下 ~/Desktop/error.png 是什么报错
模型 → analyze_image(path="~/Desktop/error.png", prompt="这个报错的完整文本是什么?")
← "TypeError: Cannot read properties of undefined (reading 'map') at …"
模型: 这是一个 … 建议 …
对于文本模型,插件会自动处理粘贴图片的逻辑,将其转换为 analyze_image(attachment_id="...") 调用。
注意事项¶
- 版本差异:
v0.1.0标签版本仅支持本地路径和 URL,不包含粘贴图片桥接功能。当前安装#main分支包含该功能。 - 粘贴图片限制:粘贴图片的附件引用索引仅在当前进程内有效。服务器重启后,历史会话中无法读取回旧的附件 ID,需重新粘贴图片。
- 权限与安全:插件以当前 DSH 进程权限运行,调用端点时会产生 API 请求和 Token 消耗,请根据实际情况配置密钥和超时时间。
结语¶
analyze-image-tool 通过标准化的工具接口和灵活的端点配置,解决了 DSH 文本模型接入视觉能力的通用问题,适合需要在不修改宿主代码的情况下扩展多模态能力的场景。更多细节可参考插件目录和GitHub 仓库。