前言¶
在 DeepSeek Harness 的開發過程中,智能體往往會產生大量產物,包括工具生成的文件、代碼片段以及消息中的圖片附件。這些產物散落在對話記錄和工具欄中,查找和管理較爲繁瑣。dsh-artifact-viewer 旨在解決這一痛點,它通過一個獨立的側邊欄面板和書籤系統,將當前會話產生的所有文件和圖片集中展示,並提供持久化的書籤能力。
核心功能¶
該插件通過註冊到 shell.overlay 實現右側覆蓋面板,主要包含以下能力:
- 產物檢測與列表:自動檢測對話中工具產生的文件以及消息內的圖片附件,並在右側面板中渲染列表。
- 書籤持久化:允許用戶將產物標記爲書籤,書籤數據存儲在 Harness 的主目錄下,支持跨瀏覽器訪問同一項目下的書籤。
- 鏈接攔截與預覽:
- 攔截工具按鈕、產物芯片、markdown 鏈接及代碼路徑等點擊事件。
- 替換默認圖片渲染器,在圖片上疊加書籤星標。
- 在面板內的預覽選項卡中渲染 HTML(沙箱 iframe)、Markdown(含 Mermaid 圖表)、圖片、JSON 及多種源代碼。
- 導航與操作:
- 支持展開/收起面板。
- 使用 workspace API 在默認應用中打開文件或打開所在文件夾。
- 在書籤列表或預覽區點擊“打開對話”按鈕,可從書籤導航回源會話。
安裝與配置¶
將插件安裝到 DeepSeek Harness 的 web profile 中:
# 從註冊表安裝(推薦)
dsh plugin --profile web add @wangjunjian/dsh-artifact-viewer
# 或從本地代碼倉庫安裝
dsh plugin --profile web add ~/GitHub/wang-junjian/dsh-artifact-viewer
安裝後,bundle 會自動追加到 dsh.profile.bundles。若需覆蓋默認配置,可在 cordis.patch.yml 中寫入:
- id: artifact-viewer
config:
enabled: true
支持的預覽類型¶
插件對文件類型的支持如下:
| 文件類型 | 渲染方式 |
|---|---|
| HTML, HTM | 沙箱 iframe |
| Markdown, MD | Markdown 文本(Mermaid 代碼塊渲染爲 SVG) |
| 圖片 (SVG, PNG, JPG, JPEG, WEBP, GIF) | 圖片 |
| JSON | 語法高亮代碼 |
| 源代碼 (py, js, ts, jsx, tsx, css, scss, less, rs, go, c, cpp, cc, java, kt, swift, rb, php, sh, sql, xml, yaml, yml, toml, dockerfile, txt, log) | 語法高亮代碼 |
| 其他文本 | 純文本 |
| 視頻 (mp4, webm, mov) | 僅列表,無內聯預覽 |
注意事項與已知限制¶
- 權限與運行方式:插件作爲 bundle 插件運行,其文件內容讀取受限於當前 DSH 進程的權限範圍。
- 面板形式:目前面板通過
shell.overlay懸浮顯示,若 DSH 原生側邊欄槽位開放,體驗會更佳。 - 書籤遷移:舊版書籤存儲在
<project-root>/.dsh/bookmarks.json,現已廢棄。如需遷移,需手動將書籤移動到~/.dsh/storages/artifact-viewer/bookmarks.json並按新格式組織。 - 數據限制:
- 書籤圖片預覽受限,僅支持附件 ID。
- 視頻文件僅列出,不支持內聯預覽。
- 文件內容讀取限制爲 512 KiB。
- 早期版本創建的書籤缺少
sessionId字段,因此無法通過書籤導航回源會話。
總結¶
dsh-artifact-viewer 爲 DeepSeek Harness 的產物管理提供了一個輕量級的解決方案。它通過集中視圖和書籤功能,降低了查看和複用對話產物的門檻。插件完全開源,遵循 MIT 許可證,適合需要在本地或 CI/CD 環境中集成 DSH 產物的開發者使用。