dsh-image-hunt:在 DSH 会话里多源搜图、落盘并在对话内展示

前言

在 DeepSeek Harness(DSH)里写稿、做演示或整理素材时,agent 往往需要配图:既要按关键词找到合适图片,又要落到当前会话工作区,并在对话里直接看到结果。常见做法是手动打开图站、复制链接,或让模型「描述一张图」——前者打断流程,后者无法核对来源与授权。

下面介绍社区插件 dsh-image-hunt(维护者 fomalhaut1998):在宿主侧注册搜图与下载工具,聚合多个图源,把文件写入会话工作区,并为每张图生成 meta.json,通过 DSH 附件机制在对话内 inline 展示。插件分类为「联网工具」,在 SkillHub 目录页 可查看条目;生态目录为独立社区站点,与 DeepSeek / 幻方无官方从属关系。

这是什么

dsh-image-hunt 是 DSH 宿主插件(npm 包名 dsh-image-hunt,当前版本 1.4.1,MIT 许可证)。定位可以概括为:多图源搜图 → 下载进当前会话工作区 → 图片在对话里直接显示。实现为纯 ESM,零 npm 运行时依赖,仅使用 Node 内置模块。

运行环境要求(以 README 为准):

  • DSH 0.2.x(支持 dsh.bundle 补丁,经 cordis.patch.yml 注册)
  • Node ≥ 18(使用 fetch 与 AbortSignal.timeout)
  • 可写的会话工作区;输出路径经 safeJoin 限制在工作区内,越界会报错

核心功能

图源与别名

共 14 个图源,另有 7 个别名,合计 21 个可填的 engine 名(与目录简介中的「19 engines」表述不同,以仓库 README 为准):

类别 图源 id 说明
国内 baidu、bing、so360、duitang、huaban 中文综合默认 auto 为百度 + 360 + Bing 三源轮转
国外 duckduckgo、yandex、openverse、wikimedia 合成别名 intl、cc(可商用向)等
二次元 pixiv、wallhaven、konachan、safebooru 合成别名 anime、moe
图标 icons Iconify,支持 collection、color 给 SVG 上色

也可用 sources 数组任意混用多个 id,会覆盖 engine。国外图源在插件内标记为 foreign,经内建 CONNECT 隧道走代理;国内源直连。默认代理地址为 http://127.0.0.1:7890,解析顺序为 IMAGE_HUNT_PROXY → HTTPS_PROXY/https_proxy → HTTP_PROXY/http_proxy;代理不通会熔断并回退直连。

三个 agent 工具

  1. image_hunt:搜图、下载、并在对话中展示(登记为 attachment)。
  2. image_search:只搜不下,结果按源轮转交错,返回截断为 20 条。
  3. image_download:已知直链 1–30 条落盘,可设 referer、proxy。

每张下载图在同目录有 meta.json,记录原图直链、来源页、标题、真实像素(下载后按文件头读取)、来源站中文名、授权信息等。各源接口返回的宽高可能与文件不一致,插件会以文件为准写入 width/height,接口值另存 metaWidth/metaHeight。

与对话、工作区的衔接

  • 文件路径为工作区相对路径(默认落在 images/<关键词>/),便于后续 read_image 或文稿引用。
  • 图片通过 ctx.attachments.saveImage 与 output.render 以 image 块展示,依赖 @deepseek-ai/dsh-client-ui-tool 的 image card,无需额外客户端补丁。

安装与启用

安装命令须使用 README 原文(profile 示例为 web,请按自己的 profile 替换):

# 从 npm 装(推荐)
dsh plugin --profile web add dsh-image-hunt

# 或直接从 GitHub 装,跟最新提交
dsh plugin --profile web add github:fomalhaut1998/dsh-image-hunt

装完后重启 DSH(宿主会缓存 ESM 模块)。卸载:

dsh plugin --profile web remove dsh-image-hunt

包已发布于 npmjs.com/package/dsh-image-hunt。GitHub 仓库:fomalhaut1998/dsh-image-hunt(公开仓库星标数以页面为准)。

典型用法

自然语言(推荐给 agent)

装好后可直接用口语描述需求,不必背参数。README 中的示例意图如下:

想要什么 怎么说
中文配图 帮我找 6 张「城市夜景 长曝光」,要高清、不要水印
可商用素材 找 4 张 CC 授权、可商用的山林图,之后可能用在文章里
二次元 / 不要 AI 图 找 8 张吉卜力风格的乡间风景,不要 AI 生成的
只挑不下 先搜 20 张「莫兰迪 静物」,把候选和来源列给我
已知直链 把这几条 URL 的图下到 images/todo/

工具参数要点(image_hunt)

  • query(必填)、count(默认 8,1–40)、engine(默认 auto)或 sources
  • minPixels:长边下限,做 PPT / 背景图可设 ≥ 1200
  • noAI:仅 pixiv 生效,过滤 AI 生成图
  • dir:默认 images,实际目录为 dir/<关键词>/

image_search 无 count/dir;image_download 需 urls 数组,可选 referer(如 pixiv 需 https://www.pixiv.net/)。

二次元与 booru 的注意点

  • booru 系(konachan、safebooru)只认英文 tag;中文词走内置映射(如吉卜力 → ghibli),映射不到会报错。
  • 找无人物纯景背景时,在 safebooru / konachan 组合 no_humans 与主题 tag 往往比自由中文词更有效;pixiv 偏角色向,搜风景可用性有限。

独立 CLI(不经过 DSH)

仓库提供 cli.mjs,与插件共用实现。在已有源码目录下可用 node 直接调用,例如:

node cli.mjs "新疆 禾木村 秋景" --n 4 --min-pixels 1200
node cli.mjs "吉卜力 风景" --engine anime --noai --n 6
node cli.mjs "莫兰迪 静物" --sources huaban,duitang --out images/still-life

末行输出 JSON,包含 dir、downloaded、files 等字段。

适用场景与注意

适合谁:需要在 DSH agent 会话内完成「搜图 → 本地落盘 → 对话内预览」的开发者;写技术博文配图、整理 CC 素材、二次元参考图、品牌 SVG 图标(icons)等场景,可按图源表选择 engine 或 sources。

使用前请知悉:

  1. 插件以当前 DSH 进程权限访问网络与写盘,安装前建议阅读 源码 与 MIT 许可证,并确认图源站点的使用条款与版权。
  2. 国外源依赖本机代理时,需保证默认或环境变量中的代理可用;否则可能超时。
  3. 各图站反爬与接口会变,单张失败会记入返回 JSON 的 errors,不影响同批其他图片。
  4. DSH 采用「一切皆插件」的扩展方式;本插件是社区贡献的联网工具,非官方内置能力。

结尾

dsh-image-hunt 把多图源检索、工作区落盘、元数据留存和对话内展示收拢为三个宿主工具,对习惯在 DSH 里让 agent 自己找图的开发者,可以减少手工开浏览器、拷链接的步骤。进一步了解参数与图源表,见 GitHub README;在生态目录浏览条目见 SkillHub:dsh-image-hunt。

羽毛球分组比赛记分
小程序二维码

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

小夜