让 agent 自己去搜图
内容提要
作者介绍开源插件 dsh-image-hunt,可让 agent 自动搜图、下载并作为会话附件显示。插件提供搜索、下载、校验尺寸等工具,支持百度、Bing、Pixiv 等 14 个图源及别名,具备并行抓取、轮转合并、去重能力,国外源走代理。文章还详述百度 JSON 异常、booru 标签、Pixiv Referer、后缀与尺寸失真等问题,并强调不绕过登录与付费墙、不保证图片授权,版权归原作者。
延伸解读
插件定位:补上 agent 的“找图”环节
文章指出,agent 能读图、改图、排图,却无法主动上网搜图,导致配图流程必须人工完成。dsh-image-hunt 通过三个工具把搜索、下载、校验尺寸和会话附件登记串起来,让 agent 在对话内完成找图。其价值不在于替代浏览器,而是把“找一张可用图”从手工五步变成一句需求,减少路径传递和命名整理。
多源并行与轮转合并的实用设计
插件支持 14 个图源和 7 个别名,单源超时 20–35 秒,失败只记入 errors,不影响其他源。合并时按源轮转交错,避免百度结果挤占后续源。这种设计让不同风格图源都有曝光机会,也解释了为何一次搜索能覆盖综合、设计、二次元和授权库。读者应注意候选数是实测值,并非稳定保证。
格式与尺寸校验:不信任接口元数据
文章用多个实例说明图源返回的后缀和尺寸可能失真:Safebooru 的 .jpg 实际是 PNG,Yandex 和 Wikimedia 报告的尺寸与真实文件不符。插件因此按文件头判断格式,并读取头部获取真实像素,接口尺寸另存为 metaWidth/metaHeight。这对后续缩略图、排版和尺寸筛选很关键,也提醒使用者不能只看来源页标注。
合规边界:公开检索不等于可商用
插件明确不登录、不绕付费墙、不破解站点,只处理公开页面可见内容。license 字段仅在 Openverse、Wikimedia 等源提供时写入,其余标为 unknown,不猜测授权。文章强调图片版权归原作者,下载图应视为“引用”而非“拥有”。若用于商用,仍需回来源页确认授权,插件不能替代版权判断。
Q&A
dsh-image-hunt 插件的主要功能是什么?
dsh-image-hunt 是一个开源插件,能让 agent 自动在网上搜索图片、下载并作为会话附件显示在对话中。它提供搜索、下载、校验尺寸等工具,支持百度、Bing、Pixiv 等 14 个图源及别名,具备并行抓取、轮转合并、去重能力,国外源走代理。
这个插件支持哪些图源?有没有别名可以简化使用?
支持 14 个真实图源:百度图片、Bing 图片、360 图片、堆糖、花瓣、DuckDuckGo、Yandex、Openverse、Wikimedia、Pixiv、Wallhaven、Konachan、Safebooru、Iconify。另有 7 个别名:auto(百度+360+Bing)、all(13 个照片源全开)、both(百度+必应)、intl(DuckDuckGo+Yandex+Bing)、cc(Openverse+Wikimedia)、anime(Pixiv+Wallhaven+Konachan)、moe(anime 再加 Safebooru)。
image_hunt 工具一次搜索的完整流程是怎样的?
流程分六步:1) 查源注册表,归一化 engine 和 sources,标记是否走代理;2) 并行抓取,每个源独立 Promise,单源超时 20–35 秒,失败只记 errors;3) 轮转合并,按源交错排列结果;4) 去重与过滤,按原图直链去重,按 minPixels 过滤;5) 下载校验,单张上限 40 MB,按文件头判断格式;6) 落盘并登记为会话附件,图片直接显示在对话中。
插件如何处理代理?国外源和国内源有什么区别?
国内源直连,国外源走本机代理。代理地址解析顺序为 IMAGE_HUNT_PROXY → HTTPS_PROXY → HTTP_PROXY,默认 http://127.0.0.1:7890;写 off、none、0、false 可关闭代理。代理不通时熔断 60 秒后回退直连,并记录 proxyErrors。实现中有三个坑:自定义 socket 需覆写 Agent 的 createConnection;CONNECT 响应可能带额外字节需正确处理;直连兜底强制 IPv4 避免 IPv6 超时。
使用这个插件下载图片时,有哪些已知的坑或注意事项?
五个真实坑:① 百度 JSON 含非法控制字符和转义单引号,需三级降级解析;② booru 源只认 ASCII tag,中文需通过内置 TAG_MAP 翻译(如宫崎骏→ghibli);③ Pixiv 下载必须带 Referer: https://www.pixiv.net/,否则 403;④ 文件后缀可能撒谎,需按文件头判断真实格式;⑤ 接口返回的尺寸可能失真,插件会自己读取头部获取真实像素,接口尺寸另存为 metaWidth/metaHeight 但不信任。
这个插件在版权和合规方面有哪些限制?
插件只做公开页面的检索与下载:不登录、不绕付费墙、不破解任何站点。不保证图片授权,license 字段仅在源提供时填写,其余为 unknown,商用需回来源页确认。不保证可复现,图源可能变化。不处理 NSFW 过滤,部分二次元源需自行判断。MIT 许可证只覆盖代码,图片版权归原作者,下载的图片应视为“引用”而非“拥有”。