DeepSeek Harness(下面简称 dsh)有个硬伤:背后的主力模型看不了图。报错截图贴进对话,它只能回一句「抱歉,我看不了图片」。
我装了个开源插件 modlens,把这个问题解决了。实测:一张带文字的测试图,8.74 秒读完,一个字符不差。安装只要一条命令,十分钟能搞定。这篇记录完整过程和三个坑。
modlens 是什么
一句话:给纯文本模型外挂一个视觉引擎。
你贴一张图,modlens 把它喂给真正能看图的模型,换回一份结构化「证据」:全文转写、按阅读顺序排好的版面区域、实体关系列表。你的模型对着证据回答,不是对着一段自由发挥的描述脑补。
它还极轻:不改配置、不装代理、不挂钩子。卸载就是删个文件夹。
安装:一条命令
我的环境:dsh,Windows。核心就一条命令(版本号要写死,坑一后面说):
BASH
npx -y @deepseek-ai/dsh plugin --profile web add @liustack/modlens@3.22.0
3.1 秒装完。重启 dsh,模型选择器里出现带 (modlens vision) 后缀的条目,就是活了。
它的安装文档是写给 AI 看的——把 INSTALL.md 链接丢给你的 agent,说一句「按这个装」,剩下的它自己来。用 Claude Code、Codex、OpenCode 的朋友,做法是复制仓库里的 skills/modlens 文件夹到对应目录,文档里有对照表。
配一个引擎
插件只是桥,还得有个能看图的模型。内置六种引擎,机器上已有的登录还能直接复用——复用前会一个个征求你的同意,并标注花的是谁的配额。
三条常见路线:
路线一:本机 Claude Code 已登录。零配置,但慢,20 到 45 秒一次,烧订阅额度。
路线二:免费 Gemini key。读图 5 到 10 秒,官方推荐。
路线三:任何 OpenAI 兼容端点。有现成 key 的走这条。
我走路线三,用 GLM Coding Plan 的 glm-5v-turbo。这里碰到坑二:智谱给 Coding Plan 准备了三个端点,协议不同,地址不同。modlens 走 OpenAI 格式,对应的是:
baseUrl:https://open.bigmodel.cn/api/coding/paas/v4
model:glm-5v-turbo
apiKey:你的 Coding Plan key
四条 config set 命令写进 ~/.modlens/config.json。这些同样可以让 agent 代劳。
体检和实测
modlens 自带 doctor 命令,纯本地诊断,不花配额。配置完,关键两行:
Selected provider: openai
[ok] openai: baseUrl: file, apiKey: file, model: file
还有个惊喜:故障转移链。我这台机器是 openai → codex-cli → claude-cli,主引擎挂了自动换下一个。
然后真实读图。我用代码画了张图:白底,蓝框,中间红色加粗的 MODLENS-42。

8.74 秒返回。OCR 结果就是 MODLENS-42,一个字符不差。连「主色蓝、红、白」「加粗无衬线字体」都列出来了。花费 1025 个 token。
三个坑
坑一:@latest 会翻车。pnpm 11 发布不足 24 小时的版本,@latest 可能解析到旧版。先跑 npm view @liustack/modlens version 查号,把数字写进命令。我查到 3.22.0。
坑二:dsh 上是插件,不是 skill。复制 skill 文件夹是 Claude Code 的做法,在 dsh 没用。装错的症状:没有 modlens_read_image 工具,也看不到 vision 条目。
坑三:GLM 的视觉 MCP 喂不进 modlens。MCP 是给 MCP 客户端用的工具集,modlens 只认 API 端点和本地 CLI。两条路,别混。
计费提醒:
智谱官方说明:Coding Plan 套餐额度仅限官方支持的指定工具环境使用,规定工具外调用 API 不享套餐额度。modlens 属于第三方调用,实测能通,但账单归属请自行留意用量统计。
写在最后
装完我贴了张截图,想测怎么手动触发——根本不用测。消息发出去的瞬间,modlens 自己把图读了。
把 INSTALL.md 丢给你的 agent,剩下的它自己会。
数据来源:3.1 秒安装、8.74 秒读图、1025 tokens、版本 3.22.0,来自 2026 年 8 月 20 日真实安装与测试记录。
你的 AI 编程工具看得了图吗?评论区聊聊。
夜雨聆风