前言¶
DeepSeek Harness(dsh)把能力拆成插件:视觉方向已经有 OCR、版面理解和 UI 还原,智能体看到一张图,可以读字、拆结构、还原界面。但另一类更常见的问题它还接不上——这张图从哪来、原作者是谁、网上有没有更高清或带出处的版本。
这类需求通常不叫「看懂图」,而叫反向图片搜索,也就是以图搜图。实际操作往往是:把同一张图的公网地址,依次贴进 Google Lens、百度识图、Yandex、TinEye;如果是插画或二次元,再补 SauceNAO、IQDB、Ascii2d。每个站点的上传入口、URL 参数都不一样,来回复制很烦,也很难让纯文本智能体一次做完。
dsh-image-search 把这件事收成一次工具调用:输入一张公网可访问的图片 URL,按引擎模板拼出对应的搜索链接。它并不代替各家搜图站去抓结果,而是把「一张图、多个引擎」的入口一次性配齐。本文按插件目录页、GitHub 仓库 README 与源码交叉核对后整理。
这是什么¶
dsh-image-search 是一款 DeepSeek Harness 的工具与能力插件,由 zimai233 维护,许可证为 MIT,主要语言是 JavaScript。目录页的定位是:多引擎以图搜图聚合插件——一张图,多个搜索引擎一起找。
仓库 README 写得更具体:把一张公网图片 URL,转成 Google Lens、百度识图、Yandex、TinEye、Bing 视觉搜索、搜狗识图、SauceNAO、IQDB、Ascii2d 的搜索链接。实现方式是纯 URL 构造,不发起任何实际抓取请求。
需要先分清生态关系。DeepSeek Harness 是 DeepSeek AI 开源的 agent 运行时,核心设计是「一切皆插件」。你现在看到的插件目录是社区站点,用来收录和展示社区插件,与 DeepSeek / 幻方没有官方从属关系,不能当成官方应用商店。dsh-image-search 本身也是社区项目,GitHub 主题标了 deepseek-harness 和 dsh-plugin。
截至 2026-08-18,GitHub 仓库 zimai233/dsh-image-search 星标为 0;目录页显示 2026-08-14 收录,最近推送日期同样是 2026-08-14。package.json 里的版本号是 0.1.0。
它解决的不是「让模型看见图里有什么」,而是:已经有一张能被外网访问的图片地址时,怎样少开几个网页、少记几套搜图 URL。
核心功能¶
插件通过 @deepseek-ai/dsh-tools 注册三个工具。源码在 src/index.js,Cordis 补丁把插件挂成 id 为 image-search 的一层。
九个引擎,分成两组¶
源码里的 ENGINES 表一共 9 个引擎,按 group 分成「通用」和「插画/动漫」:
| id | 名称 | 分组 | 是否编码图片 URL |
|---|---|---|---|
google |
Google Lens | 通用 | 是 |
baidu |
百度识图 | 通用 | 是 |
yandex |
Yandex | 通用 | 是 |
tineye |
TinEye | 通用 | 是 |
bing |
Bing 视觉搜索 | 通用 | 是 |
sogou |
搜狗识图 | 通用 | 是 |
saucenao |
SauceNAO | 插画/动漫 | 否 |
iqdb |
IQDB | 插画/动漫 | 否 |
ascii2d |
Ascii2d | 插画/动漫 | 否 |
目录页「更多介绍」里点名的是 Google Lens、百度、Yandex、TinEye、SauceNAO、IQDB、Ascii2d;Bing 和搜狗出现在仓库 README 与源码表中。写进文章的引擎列表以源码为准。
encode 为 true 时,图片 URL 会先做 encodeURIComponent 再填进模板,适合走 query string 的站点;为 false 时按原文插入。README 把后一种称为路径式参数,源码注释也这么写。实际模板里,Ascii2d 是路径替换(https://ascii2d.net/search/url/{IMAGE_URL}),SauceNAO 和 IQDB 仍是 query 参数,只是不做编码。未知的引擎 id 会被直接跳过,不会报错中断。
三个工具分别干什么¶
image_search_urls:必填imageUrl,可选engines(逗号分隔的引擎 id)和group(通用或插画/动漫)。返回 JSON 数组,每项是{ id, name, group, url }。适合后续脚本处理,或让智能体按需打开某几条链接。image_search_engines:无参数。返回按分组归类的全部引擎,含模板和encode标志,用来发现合法的引擎 id。image_search_best:必填imageUrl,可选engines。返回一段人类可读的 Markdown:一行总览,下面每个引擎一条可点击链接。源码里总览行会带上引擎数量,例如across 9 engine(s)。注意这个工具没有group参数,分组过滤只在image_search_urls上。
它明确不做的事¶
README 和源码反复强调同一点:只拼 URL,不向搜图站发请求。因此:
- 不会返回「相似度 87%、作者是谁、原图链接」这类检索结果,那些要打开各引擎自己的页面才能看到。
- 不接收本地路径、粘贴附件或 base64,入参必须是公网图片 URL。搜图站要能自己拉取这张图,内网地址、需要登录的链接通常无效。
- 运行时除了 Harness 的工具接口,不额外依赖搜图 SDK;
package.json的dependencies只有@deepseek-ai/dsh-tools,peer 依赖是@deepseek-ai/cordis。仓库称发布物就是运行时代码,纯 ESM,没有prepare脚本,git 安装时不必为构建脚本开allowBuilds。
安装与启用¶
插件目录页给出的安装命令如下,在 DeepSeek Harness 终端中运行:
dsh plugin add github:zimai233/dsh-image-search
目录页说明:dsh CLI 会从 GitHub 解析插件并安装到当前配置。DeepSeek Harness 官方 CLI 文档里,往某个 profile 装插件的常见写法是 dsh plugin --profile <profile> add ...。仓库 README 的示例是:
dsh plugin --profile myprofile add github:zimai233/dsh-image-search#<sha>
把 myprofile 换成你实际使用的 profile 名称(例如 web)。如需可复现安装,目录页要求固定 commit 哈希,格式为:
dsh plugin add github:zimai233/dsh-image-search#commit
截至 2026-08-18,仓库默认分支 master 上能核对到的提交是 95ac2b739f7464386cb28c2b758cbc9382befe5a(说明为 feat: initial dsh-image-search plugin for DeepSeek Harness)。固定安装可以写成:
dsh plugin add github:zimai233/dsh-image-search#95ac2b739f7464386cb28c2b758cbc9382befe5a
仓库 README 另外写了一条「from npm」的命令 dsh plugin --profile myprofile add dsh-image-search。本文没有在 npm 注册表上核到对应发布包,安装时请以目录页的 GitHub 源为准。
目录页和仓库都提醒:插件以当前 dsh 进程的权限运行,安装时可能执行代码。安装前应检查源代码仓库和许可证。
典型用法¶
仓库 README 给的用法是自然语言,让 agent 去调工具。例如:
帮我用这张图搜一下源头:https://example.com/img.png —— 先列出所有引擎的搜索链接
智能体会调用 image_search_urls,参数形如:
{
"imageUrl": "https://example.com/img.png"
}
README 中的返回截取如下(真实链接会随你的图片 URL 变化):
[
{ "id": "google", "name": "Google Lens", "group": "通用", "url": "https://lens.google.com/uploadbyurl?url=https%3A%2F%2Fexample.com%2Fimg.png" },
{ "id": "saucenao", "name": "SauceNAO", "group": "插画/动漫", "url": "https://saucenao.com/search.php?url=https://example.com/img.png" }
]
可以同时限定引擎和分组:
{
"imageUrl": "https://example.com/img.png",
"engines": "google,saucenao",
"group": "插画/动漫"
}
按源码过滤逻辑:先按 group 筛,再按 engines 白名单筛。上面这条里 google 属于「通用」,会被分组条件去掉,最终多半只留下 SauceNAO。只想要插画站时,用 group 即可;只想要某几个引擎时,用 engines 更直接,不必叠两个条件。
想先看有哪些 id,调用无参数的 image_search_engines。想直接得到可点击列表,把同一张 imageUrl 交给 image_search_best。
源码里 Google Lens 的模板是 https://lens.google.com/uploadbyurl?url={IMAGE_URL},百度识图是 https://graph.baidu.com/upload?image={IMAGE_URL}。这些地址以仓库当前源码为准,各站点若改入口,插件也需要跟着改模板。
适用场景与注意事项¶
比较适合这些情况:
- 已经有一张公网图片 URL,需要同时走国内识图和国际 Lens / Yandex / TinEye。
- 插画、同人、角色图要查出处,希望一次拿到 SauceNAO、IQDB、Ascii2d 的入口。
- 智能体流程里需要「生成搜图链接」这一步,后续由人或浏览器打开,而不是在插件里解析检索页。
它补的是目录页说的那块空白:视觉插件里已有 OCR 和 UI 还原,但没有把多家反向搜图入口聚在一次调用里。同分类下目录还列出了 modlens、agent-vision-toolkit、dsh-vision-router 等视觉插件,做的是看图、OCR、像素级工具,和本插件不是同一件事,可以按任务搭配,不必互相替代。
使用时注意:
- 能力边界是拼链接,不是搜图结果。 打开链接之后,各站点自己的登录墙、地区限制、接口变更,插件都管不到。
- 图片必须能被搜图站拉取。 本地文件要先放到公网或图床,再把 URL 传进来。
- 过滤参数不要想当然叠加。
image_search_urls的group与engines是「同时满足」;image_search_best只支持engines。 - 安装即授权运行。 插件以当前 dsh 进程权限执行,安装前阅读 源码 和 MIT 许可证;生产环境建议固定上面的 commit,而不是追踪分支最新提交。
- 版本仍早。 仓库目前是初始提交,接口和引擎模板都可能再改,以当时 checkout 的 README 和
src/index.js为准。
小结¶
dsh-image-search 做的事情很窄:给 DeepSeek Harness 的智能体一张公网图片地址,换回最多九家以图搜图入口。不抓结果、不看图、不走本地文件,所以依赖面小,也谈不上替代 OCR 或视觉问答。
如果你已经在用 dsh,又经常要把同一张图丢给多家识图站,可以先看目录页和仓库,确认源码后再装。
- 插件目录:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-image-search/
- GitHub:https://github.com/zimai233/dsh-image-search
- DeepSeek Harness:https://github.com/deepseek-ai/deepseek-harness