dsh-plugin-show-image:DeepSeek Harness 会话内图片渲染插件

前言

DeepSeek Harness (DSH) 是一个用于智能体开发的框架。在对话调试或演示场景中,让大模型直接查看本地图片文件是常见需求。传统的做法通常是将图片转为 Base64 字符串,但这会显著膨胀会话日志,并增加网络传输负担。dsh-plugin-show-image 插件通过全局工具与按需 HTTP 路由,解决了这个问题,它能在对话流中内联渲染本地图片,且不占用模型上下文。

核心功能

该插件主要由 justhalfbit 维护,提供以下能力:

  1. 内联图片渲染:在对话流中直接显示本地图片,无需离开会话界面。
  2. 点击放大:缩略图支持点击,通过全屏 Lightbox 浮层查看大图,支持点击任意位置或按 Escape 关闭。
  3. HTTP 按需传输:图片字节通过专用 HTTP 路由(GET /show-image?path=…)传输,不进行 Base64 编码,且图片数据不会进入会话日志。
  4. 零依赖零构建:纯手写 JavaScript,无 npm 依赖、无构建步骤、无 TypeScript。
  5. 安全守卫:限制 8MB 文件大小,支持扩展名白名单(防止原型链污染),不支持的格式会被拒绝。
  6. 完全可逆:所有副作用(工具注册、HTTP 路由、卡片渲染器)绑定在插件 fiber 上,卸载即清理。

安装与启用

安装前需确保已安装 DSH 并在 PATH 中包含 pnpm。

dsh plugin --profile web add github:justhalfbit/dsh-plugin-show-image

安装后,需重启 dsh web 使配置生效。卸载命令为:

dsh plugin --profile web remove dsh-plugin-show-image

使用方式

安装并重启后,该插件会在所有会话中注册全局工具 show_image。开发者可以直接对 Agent 发出指令:

把 /path/to/image.png 显示出来

Agent 调用该工具后,图片会以内联卡片的形式渲染在对话流中。点击图片即可查看大图。

限制与注意事项

  1. 运行环境限制:仅适用于 dsh web(浏览器 GUI)profile。在 tui 或 headless 环境下不可用。这是因为插件依赖 webServer 服务,且在无渲染面的终端中注册一个无法渲染的工具会误导模型。
  2. 路径解析规则:相对路径按 DSH 进程的工作目录解析,而非当前会话的工作目录。建议优先使用绝对路径。
  3. 权限模型:本机任何进程均可通过 GUI 端口读取本地图片文件,这与 DSH GUI 既有的本地信任模型一致,无需额外担忧。

生态与链接

该插件遵循 MIT 许可证,完全开源。更多技术细节、目录索引及源码仓库可参考下方链接:

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

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

小夜