在 DeepSeek Harness (DSH) 的开发场景中,让 AI Agent 直接向用户展示本地图片、视频或音频是常见需求。旧方案通常依赖侧边栏或新标签页,且流式输出时难以实时挂载。dsh-media-inline-preview 插件解决了这一痛点,通过围栏语法在聊天消息流中直接渲染媒体。
这是什么¶
这是一个由 seeingrain 维护的 DSH 插件。它提供三种围栏(mip-img、mip-video、mip-audio),覆盖 36 种本地媒体格式。该插件合并并取代了原先独立的图片预览和视频音频围栏插件,实现了真正的内联渲染,无需跳转页面即可查看或播放。
核心功能¶
- 36 种格式支持:涵盖 10 种图片、7 种原生视频、9 种原生音频及转码格式。
- 三种围栏:使用
mip-img、mip-video、mip-audio三种围栏进行区分。 - 图片卡片与 Lightbox:图片渲染为缩略卡片,支持点击全屏查看,支持缩放、拖拽。
- 原生播放器:视频/音频直接渲染为原生控件,支持流式输出挂载,无需侧边栏。
- 流式传输与大文件:支持 HTTP Range 流式传输,大文件内存恒定,上限 2 GiB。
- 转码回退:浏览器无法播放的容器(如 mkv、avi)自动触发 ffmpeg 转码。
- 性能与缓存:支持 ETag/304 条件请求、懒加载、转码结果按内容寻址缓存 7 天。
- 围栏即 Markdown:会话历史原生保留围栏,刷新页面媒体永不丢失。
安装与启用¶
安装插件并重启服务即可生效。
dsh plugin --profile web add github:seeingrain/dsh-media-inline-preview
安装后,host 需要重启,client 页面刷新即可加载。
典型用法¶
1. 零配置自动渲染¶
安装后零配置,会话中出现的媒体文件会自动渲染。Agent 在生成回复时,会先调用 mip_img / mip_media 工具校验路径并返回围栏,卡片或播放器会自动出现在消息里。
2. 手写围栏¶
也可以手动编写围栏语法:
{"path":"/绝对路径/图片.png","label":"可选标题"}
{"path":"/绝对路径/视频.mp4"}
{"path":"/绝对路径/音乐.mp3"}
3. 注意事项¶
- 命名空间变更:围栏标签是带命名空间的
mip-*(v1.4.0 起)。旧的裸标签(如img、video、audio)已废弃,不再被识别,会保持为普通代码块。 - 标题显示:
label字段仅用于手写围栏校验,UI 标题固定只显示文件名。 - 多图宫格:支持
{"images":[{"path":"..."},{"path":"..."}]}格式。
适用场景与限制¶
- 安全限制:Host 必须为回环或
webRuntime.trustedHosts,跨站抓取会被挡。 - 路由上限:图片路由上限 128MiB,媒体路由上限 2GiB。
- 转码缓存:转码结果按内容寻址缓存 7 天。
生态背景¶
DSH 的理念是“一切皆插件”。此插件作为社区插件,与 DeepSeek / 幻方无官方从属关系。
插件目录:https://www.skillhub.cn/plugins/seeingrain/dsh-media-inline-preview
源码地址:https://github.com/seeingrain/dsh-media-inline-preview