在 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