DeepSeek Harness(DSH)默认的模型(例如 deepseek-v4-flash)是纯文本的,无法直接“看懂”图片。当你在对话中请求模型分析图片内容时,通常会因为缺乏视觉能力而失败。
dsh-tool-see-image 是一个为 DSH 设计的插件工具。它充当中间层:当文本模型需要处理图片时,插件会将图片文件路径发送给一个配置好的视觉模型(默认为智谱的 GLM-4V-Flash,免费),并将模型返回的文本描述回传给对话会话。这解决了文本模型无法直接处理视觉信息的问题。
核心功能¶
see_image工具:输入图片路径和问题,输出文本描述。- 视觉模型无关:支持任何兼容 OpenAI
/chat/completions接口的视觉模型(默认 GLM-4V-Flash,也可切换至 SiliconFlow 或 Qwen2.5-VL 等)。 - 沙箱感知:通过
ctx.fs读取文件,遵守 DSH 的沙箱和观察策略,不直接访问本地文件系统。 - 粘贴转文字(Bonus):附带补丁脚本,允许直接将图片粘贴到聊天框并自动转换为文字描述。
安装与启用¶
插件需要手动安装到你的 Web 配置文件中。
- 复制插件文件:将插件目录复制到你的 Web 配置文件路径下,例如:
$DSH_HOME/profiles/web/plugins/dsh-tool-see-image/
(`$DSH_HOME` 通常是 `~/.dsh`)。
- 声明依赖:编辑 Web 配置目录下的
package.json,添加依赖声明:
"dsh-tool-see-image": "file:plugins/dsh-tool-see-image"
然后运行安装命令:
pnpm install
- 配置插件:编辑
$DSH_HOME/profiles/web/cordis.patch.yml,在合适位置插入配置:
- insert:
- id: tool-see-image
name: 'dsh-tool-see-image'
config:
baseURL: https://open.bigmodel.cn/api/paas/v4
apiKeyEnv: ZHIPU_API_KEY
model: glm-4v-flash
- 设置 API 密钥:你需要一个智谱 AI 的 API Key。在终端设置环境变量(以 Windows 为例):
setx ZHIPU_API_KEY "your-api-key-here"
设置后**重启终端**,并重启 `dsh web` 进程。
- 验证:在新的对话会话中,
see_image工具应该已经可用。尝试以下指令:
Use see_image to look at path/to/your/image.png
配置说明¶
在 cordis.patch.yml 的 config 节点下,可以调整以下参数:
| 配置项 | 默认值 | 说明 |
|---|---|---|
baseURL |
https://open.bigmodel.cn/api/paas/v4 |
OpenAI 兼容接口地址,插件会自动拼接 /chat/completions |
apiKeyEnv |
ZHIPU_API_KEY |
存放 API 密钥的环境变量名 |
model |
glm-4v-flash |
视觉模型 ID,智谱 GLM-4V-Flash 默认免费 |
maxTokens |
1024 |
最大输出 Token 数。注意:glm-4v-flash 的上限是 1024,超过会报错 |
timeoutMs |
60000 |
请求超时时间(毫秒) |
maxBytes |
15728640 |
单张图片大小限制(约 15MB) |
prompt |
(中文描述指令) | 默认问题提示词,question 参数会覆盖此设置 |
如果需要使用其他服务商(如 SiliconFlow),只需修改 baseURL、apiKeyEnv 和 model 即可。
典型用法¶
在对话中直接调用工具即可:
Use see_image to look at path/to/your/image.png
插件会读取该路径下的图片,将其发送给视觉模型,并将返回的文本描述插入到对话流中。
注意事项¶
- 重启要求:修改
cordis.patch.yml或依赖后,必须重启dsh web才能生效。 - Token 限制:默认配置的
maxTokens为 1024。如果切换到支持更长输出的视觉模型,需要相应调高此值。 - 权限与沙箱:插件运行在 DSH 进程内,通过
ctx.fs读取文件。这意味着图片路径必须在当前沙箱的观察范围内,且不会绕过 DSH 的安全策略。
生态背景¶
该插件遵循 MIT 协议,由社区开发者 gugu123a 维护。它是 DeepSeek Harness 生态中“一切皆插件”理念的一个体现,旨在通过轻量级的工具扩展,让基础模型的能力边界更灵活。