dshx-image-clamp:在发给模型前把图片长边压到 2000px 以内

前言

在 DeepSeek Harness(DSH)里做多图对话或带截图的智能体开发时,图片会先经过附件归一化再进入模型上下文。Claude 对多图请求有一条硬限制:一次请求里图片超过 20 张时,任意一张的边长超过 2000 像素,整条请求会被拒绝;且被拒的那张图会在后续每一轮被重放,会话容易一直失败。

DSH 自带的附件归一化主要约束总像素,单边仍可能超过 2000(例如 2730×1536)。下面介绍社区插件 dshx-image-clamp(维护者 callaumyan-design),在图片真正发给任意 provider 之前做长边与字节上限处理,且不改动磁盘上的原图。

这是什么

dshx-image-clamp 是 DSH 生态下的 Cordis 插件,分类为模型推理。它包装宿主提供的 attachments.readImage,在读取图片、编码进请求的路径上实时缩小尺寸并控制单张体积,默认长边不超过 2000px,编码后不超过约 180 KB。停用插件后行为与未安装时一致。

核心功能

  1. 长边限制:通过配置项 maxSide(默认 2000)限制图片长边像素上限。
  2. 单张字节预算:通过 maxBytes(默认 184320,即 180 KB)限制编码后的单张图片大小。
  3. 不改原文件:处理发生在内存与发送链路中,磁盘上的附件保持原样。
  4. 依赖 sharp:使用 DSH 已自带的 sharp 做缩放;若运行时找不到 sharp,插件会记录警告且不对图片做处理。

安装与启用

插件支持 headless、web、desktop 三种 profile,安装后需要重启 DSH(requiresRestart: true)。

Web 环境:

dsh plugin --profile web add github:callaumyan-design/dshx-image-clamp

Desktop 环境(使用 DSH Desktop 自带的 dsh 命令;安装前请先从托盘完全退出 Desktop):

dsh plugin --profile desktop add github:callaumyan-design/dshx-image-clamp

安装完成后重启 DSH。卸载示例:

dsh plugin --profile <profile> remove dshx-image-clamp

配置

在插件的 cordis.patch.yml 中可调整以下字段(也可按 DSH 插件配置方式合并进你的 Cordis 补丁):

字段 默认 说明
maxSide 2000 长边上限(像素)
maxBytes 184320 单张编码后字节上限(180 KB)

按需调大或调小即可;默认值对应 README 中针对 Claude 多图边长限制的常见设置。

典型用法

本插件无单独 CLI 或 API 调用步骤:安装并重启后,凡通过 DSH 附件链路发给模型的图片都会自动经过 readImage 包装逻辑。开发与调试时仍可照常拖拽、粘贴或引用本地图片;若会话此前因「多图 + 单边超 2000px」整包被拒,安装后应能避免同一类错误反复打断整段对话。

适用场景与注意

适合谁:经常在 DSH 里向 Claude(或其它走同一附件读图路径的 provider)发送多张截图、设计稿或日志图的开发者;需要满足「单边 ≤ 2000px」且控制单张体积的场景。

兼容性:README 写明在 DeepSeek Harness 0.2.0-rc.2(desktop / web profile)上开发和使用;实现为纯 JavaScript,无构建步骤、无安装脚本。当前 package 版本为 1.1.0,许可证 MIT。

安全与权限:与其它 DSH 插件一样,代码以当前 dsh 进程权限运行。安装前建议在 GitHub 上阅读源码与许可证,确认符合你的环境策略。社区目录站点 SkillHub 与 DeepSeek / 幻方无官方从属关系,插件来自社区维护者而非官方应用商店。

结尾

dshx-image-clamp 解决的是「多图会话里单边超长导致整请求失败」这一具体链路问题,在发送前做长边与字节钳制,且不动原图。需要安装命令、配置项与背景说明时,可查阅:

  • 目录页:https://www.skillhub.cn/plugins/callaumyan-design/dshx-image-clamp
  • 仓库:https://github.com/callaumyan-design/dshx-image-clamp
羽毛球分组比赛记分
小程序二维码

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

Xiaoye