用 dsh-image-search 給 DeepSeek Harness 補上多引擎以圖搜圖

前言

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-harnessdsh-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 會被直接跳過,不會報錯中斷。

三個工具分別幹什麼

  1. image_search_urls:必填 imageUrl,可選 engines(逗號分隔的引擎 id)和 group通用插畫/動漫)。返回 JSON 數組,每項是 { id, name, group, url }。適合後續腳本處理,或讓智能體按需打開某幾條鏈接。
  2. image_search_engines:無參數。返回按分組歸類的全部引擎,含模板和 encode 標誌,用來發現合法的引擎 id。
  3. image_search_best:必填 imageUrl,可選 engines。返回一段人類可讀的 Markdown:一行總覽,下面每個引擎一條可點擊鏈接。源碼裏總覽行會帶上引擎數量,例如 across 9 engine(s)。注意這個工具沒有 group 參數,分組過濾只在 image_search_urls 上。

它明確不做的事

README 和源碼反覆強調同一點:只拼 URL,不向搜圖站發請求。因此:

  • 不會返回「相似度 87%、作者是誰、原圖鏈接」這類檢索結果,那些要打開各引擎自己的頁面才能看到。
  • 不接收本地路徑、粘貼附件或 base64,入參必須是公網圖片 URL。搜圖站要能自己拉取這張圖,內網地址、需要登錄的鏈接通常無效。
  • 運行時除了 Harness 的工具接口,不額外依賴搜圖 SDK;package.jsondependencies 只有 @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、像素級工具,和本插件不是同一件事,可以按任務搭配,不必互相替代。

使用時注意:

  1. 能力邊界是拼鏈接,不是搜圖結果。 打開鏈接之後,各站點自己的登錄牆、地區限制、接口變更,插件都管不到。
  2. 圖片必須能被搜圖站拉取。 本地文件要先放到公網或圖牀,再把 URL 傳進來。
  3. 過濾參數不要想當然疊加。 image_search_urlsgroupengines 是「同時滿足」;image_search_best 只支持 engines
  4. 安裝即授權運行。 插件以當前 dsh 進程權限執行,安裝前閱讀 源碼 和 MIT 許可證;生產環境建議固定上面的 commit,而不是追蹤分支最新提交。
  5. 版本仍早。 倉庫目前是初始提交,接口和引擎模板都可能再改,以當時 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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜