前言¶
在 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。停用插件后行为与未安装时一致。
核心功能¶
- 长边限制:通过配置项
maxSide(默认2000)限制图片长边像素上限。 - 单张字节预算:通过
maxBytes(默认184320,即 180 KB)限制编码后的单张图片大小。 - 不改原文件:处理发生在内存与发送链路中,磁盘上的附件保持原样。
- 依赖 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