前言¶
在 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 工具¶
image_hunt:搜图、下载、并在对话中展示(登记为 attachment)。image_search:只搜不下,结果按源轮转交错,返回截断为 20 条。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)或sourcesminPixels:长边下限,做 PPT / 背景图可设 ≥ 1200noAI:仅 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。
使用前请知悉:
- 插件以当前 DSH 进程权限访问网络与写盘,安装前建议阅读 源码 与 MIT 许可证,并确认图源站点的使用条款与版权。
- 国外源依赖本机代理时,需保证默认或环境变量中的代理可用;否则可能超时。
- 各图站反爬与接口会变,单张失败会记入返回 JSON 的
errors,不影响同批其他图片。 - DSH 采用「一切皆插件」的扩展方式;本插件是社区贡献的联网工具,非官方内置能力。
结尾¶
dsh-image-hunt 把多图源检索、工作区落盘、元数据留存和对话内展示收拢为三个宿主工具,对习惯在 DSH 里让 agent 自己找图的开发者,可以减少手工开浏览器、拷链接的步骤。进一步了解参数与图源表,见 GitHub README;在生态目录浏览条目见 SkillHub:dsh-image-hunt。