大约 2616 星,单日新增 517 星。
这个数字已经够显眼了,但继续往下看,我发现它最近做的一件事更有意思:ModLens 已经正式接进 DeepSeek Harness,原本只能处理文字的 DeepSeek V4 Flash、V4 Pro,现在可以直接接收截图、网页界面、表格、图表这些视觉内容。
而且安装入口很夸张。
一条命令。
npx -y @deepseek-ai/dsh plugin --profile web add @liustack/modlens@3.18.2如果只把它理解成“给 DeepSeek 加了一个 OCR”,其实低估了这次更新。
它刚好把 DeepSeek Harness 那句很程序员的话——Everything is a plugin——演示成了一个普通人也能理解的场景:
模型自己缺能力,Harness 可以在外面给它补。

DeepSeek V4 依然只会读文字,图片先被翻译给它看先把原理弄明白,后面的玩法就很好理解了。
DeepSeek V4 Flash 和 V4 Pro 目前依然属于文本模型。安装 ModLens 以后,底层模型没有发生改变。
变化发生在模型收到内容之前。
一张图片进入 DeepSeek Harness 后,会先交给 ModLens。ModLens 再调用真正具备视觉能力的模型读取图片,把里面的信息整理出来,然后以文字和结构化数据的形式交给 DeepSeek。
大致可以理解成:
截图 / 图片
↓
DeepSeek Harness
↓
ModLens
↓
视觉模型读取
↓
文字、布局、实体、关系、视觉特征
↓
整理成结构化证据
↓
DeepSeek V4 Flash / Pro
↓
继续分析和回答所以 DeepSeek 最后看到的内容,很像一份提前做好的“视觉调查报告”。
比如一张登录页面截图。
普通 OCR 可能只能得到:
登录
用户名
密码
确定ModLens 还能继续整理页面结构:
页面类型:登录界面
顶部:页面标题
中部:用户名输入框
下方:密码输入框
底部:登录按钮
实体:
用户名输入框
密码输入框
登录按钮
关系:
登录按钮属于登录区域
密码输入框位于用户名输入框下方到了 DeepSeek 手里,这些信息已经不再是一堆散乱文字。
它知道什么是标题、什么是按钮、哪些内容属于同一个区域,接下来才能继续判断页面在干什么、哪里可能有问题。
这也是 ModLens 比单纯 OCR 有意思的地方。

它连“我没看清”都单独留了一个位置我继续翻 ModLens 的输出格式时,发现作者对这件事做得比想象中细。
每次读图,它会整理出 6 类主要信息:
summary
ocr
layout
semantics
visual
uncertainty换成容易理解的说法:
summary 是整张图讲什么;
ocr 是图片里的文字;
layout 记录标题、表格、图表、按钮等区域,以及阅读顺序;
semantics 继续提取人物、按钮、菜单、物体这些实体,以及它们之间的关系;
visual 负责颜色、样式和其他视觉特征;
最后还有一个 uncertainty,专门记录它自己没有把握的地方。
这个设计有个很有意思的背景。
ModLens 以前还会输出 bbox,也就是物体在图片里的像素坐标,同时给出一个数字形式的置信度。
后来作者干脆把这两个字段删掉了。
视觉模型很容易把这些数字“算”得特别像真的:坐标精确到个位数,置信度写成 0.97,看上去非常专业,可实际并不一定可靠。
现在的办法更朴素。
看不清,就把问题写进:
uncertainty这对 Agent 反而更有价值。
因为后面的 DeepSeek 至少知道:这一部分不能太自信。

真正值得关注的是,它已经变成 Harness 的原生工具ModLens 之前也支持 Claude Code、Codex、OpenCode、Pi 这些工具。
但接入 DeepSeek Harness 后,玩法更进一步。
它会直接给 DSH 注册一个原生工具:
modlens_read_image这个工具的定义会随着正常请求一起进入模型上下文。
DeepSeek 因此明确知道,当前环境里有一个可以读取图片的工具,需要时可以直接调用。
这一点很关键。
很多 Skill 的工作方式,本质上还是在提示词里告诉模型:
遇到图片时,请记得使用某个工具。模型有没有触发、什么时候触发,很大程度上还需要依赖提示词和模型判断。
ModLens 在 DSH 里已经进入更底层的 Plugin 体系。
它还会寻找当前配置中的纯文本 DeepSeek、GLM 路由,然后自动增加类似这样的入口:
DeepSeek-V4-Flash (modlens vision)
DeepSeek-V4-Pro (modlens vision)选中以后,聊天窗口里的体验会更接近真正的视觉模型。
直接粘图片,消息里还能看到缩略图,背后则由 ModLens 把图片转成视觉证据,再送给原来的 DeepSeek。
所以从用户角度看,最直观的变化只有一个:
以前 DeepSeek 看不懂这张图。
现在粘进去,它能继续聊。

真要上手,先用一条命令装,再试这 3 类图片已经装好 DeepSeek Harness 的朋友,上手并不复杂。
如果平时使用的是 web Profile,当前 ModLens 文档给出的安装方式是:
npx -y @deepseek-ai/dsh plugin --profile web add @liustack/modlens@3.18.2如果你的 Profile 不是 web,把后面的名字换成自己的即可。
安装后可以检查一下实际装进去的插件:
npx -y @deepseek-ai/dsh plugin --profile web list然后打开 DeepSeek Harness Web UI,在:
Settings
→ Plugins
→ Plugin configuration里面可以看到 ModLens 的配置。
这里还有一个容易混淆的地方:ModLens 负责把视觉能力接进来,它自己并不是那个真正负责识图的大模型。
你需要给它一个 Vision Engine。
它支持多种视觉来源,也支持兼容 OpenAI 协议的视觉模型。电脑上如果已经配置了某些 Agent CLI,在明确授权后,ModLens 还可以复用其中已有的视觉能力。
比如你机器上本来就有能读图的 Codex,那么一次请求可能变成:
DeepSeek V4 Flash
↓
发现需要读图
↓
ModLens
↓
调用已有视觉能力
↓
得到结构化视觉结果
↓
交回 DeepSeek装好以后,我比较建议用三种图片测试。
第一种是报错截图。
比如软件弹窗、终端报错、安装失败页面,看看它能不能读出错误信息,同时理解按钮和页面结构。
第二种是图表。
最好找一张坐标轴、图例、数据点比较多的图,看它能不能同时搞清文字和数据关系。
第三种是软件或者网页界面。
直接问它:
这个页面是干什么的?
左侧几个区域分别有什么作用?
哪个按钮可能是我要找的设置入口?这类任务最容易看出“结构化视觉”和普通 OCR 的差距。

这两天的更新记录,比 517 星更能说明问题ModLens 最近几天的更新速度非常快。
DeepSeek Harness 接入以后,作者一直在补实际使用中的细节。
例如给 DSH 加原生 modlens_read_image 工具;处理文本模型粘贴图片被 Harness 拒绝的问题;给 Web UI 增加插件设置入口;修复 (modlens vision) 模型切换后的 Reasoning 连续性;处理 Windows 下不同 CLI 的兼容问题;甚至连粘贴图片产生的临时文件如何清理都开始管了。
这些听起来不像什么“重磅功能”,但恰恰说明项目正在从 Demo 往真正能用的 Plugin 发展。
一个 Demo 只需要展示:
看,我让 DeepSeek 识别图片了。真正在电脑上天天用,会遇到完全不同的问题:
图片怎么粘进去?
不同模型怎么切?
原来的图片会不会让纯文本 Session 卡住?
Windows 怎么办?
API Key 放哪里?
插件升级以后为什么还是旧版本?
临时图片会不会越积越多?
这些边角问题一个个补上以后,工具才会从“挺酷的项目”变成“我愿意留下来继续用的东西”。

先别把它当原生多模态,这 4 个边界要记住ModLens 很有意思,但现在还不能无脑使用。
第一个边界是视觉信息仍然可能读错。
DeepSeek 拿到的是视觉模型整理过的结果。前面如果误读了一张图,后面就可能出现:
视觉模型读错
↓
生成错误证据
↓
DeepSeek 基于这些证据认真分析
↓
得到一个逻辑很通顺的错误答案所以处理重要图表、合同截图、金额、关键配置时,该核对的地方还是要核对。
第二个边界来自 DeepSeek Harness。
DSH 官方现在仍然把项目标记为 Developer Preview,而且明确提醒过后续可能存在兼容性破坏。插件接口还处于快速发展阶段,今天能跑的安装方式,以后完全可能调整。
第三个是安全。
图片同样属于外部输入。
网页截图、文档、别人发来的图片里面都可能包含针对 Agent 的恶意指令。特别是 Agent 本身拥有终端、文件系统等较高权限时,来源不明的内容要更谨慎。
第四个是版本更新。
这个项目最近更新得实在太快。我开始查看时还是 3.18.1,继续研究时文档已经使用 3.18.2。
ModLens 甚至专门提醒 DSH 用户,安装时最好写明确版本号。
原因也挺冷门:pnpm 11 默认会对刚发布不到 24 小时的软件包设置发布时间窗口,直接使用 @latest,有时拿到的反而是前一天的版本。
如果发现别人已经能用的新功能,自己怎么装都没有,这个版本问题值得先查一下。

ModLens 最有意思的地方,是让“Everything is a plugin”终于落地了前面研究 DeepSeek Harness 时,Everything is a plugin 这句话很容易让人觉得离普通用户有点远。
看完 ModLens 以后,这个概念突然变得非常具体。
模型负责推理。
Harness 给模型组织外部能力。
今天缺视觉,就挂一个视觉 Plugin。
以后类似的思路还可以继续扩展到搜索、浏览器、音频、视频、Office、数据库或者各种专业软件。
实际上,DeepSeek Harness 自己现在已经把 Web、Shell、文件系统、Skill、Subagent、Workflow、Sandbox、Attachment、后台任务等能力拆成了一系列独立模块。
整个方向越来越清楚:
模型
+
Harness
+
Plugin
=
真正工作的 Agent以前看到一个纯文本模型,我们第一反应通常是等下一代:
等它什么时候支持图片。
现在 Harness 给了另一条路。
模型本身可以继续专心做自己擅长的推理,缺少的那块能力从外面接进来。
这也是为什么我觉得 ModLens 这一天涨的 517 星挺有代表性。
大家追的可能不只是一个“识图插件”。
DeepSeek Harness 的插件生态,开始有点好玩起来了。
