前言¶
用 DSH 跑智能體時,模型經常通過 write/edit 類工具在一輪對話裏產出多個文件:Markdown 報告、腳本、CSV 數據、HTML 頁面。默認的 dsh web 界面對此幫助有限——文件視圖只支持 HTML,查看其餘格式得離開會話,自己去文件系統裏找路徑、換應用打開。
DSH 的理念是「一切皆插件」,這類界面上的缺口正好留給 client plugin 來補。下面介紹的 dsh-artifact-preview 做的就是這件事:讓 agent 寫出的文件直接在聊天裏可見、可點開、可就地預覽。
這是什麼¶
dsh-artifact-preview 是 nirvanaslash 維護的一個 DSH 客戶端插件(dsh.client.platform 爲 "web"),定位一句話:Codex 風格的 DeepSeek Harness (DSH) 產物預覽插件——聊天內產物行 + 可調寬度的分屏側邊預覽。
它解決的問題是:查看產物不需要離開會話。聊天收尾消息裏直接給出「產物」行,點擊任一文件就在右側分屏中渲染預覽。許可證爲 MIT,當前版本 0.1.2。
核心功能¶
聊天內產物行¶
agent 寫文件之後,收尾消息會顯示一行「產物」,包含文件 chips和內聯圖片縮略圖,點擊任意一項即打開側邊預覽。這一行追蹤的依據是模型在本輪通過 write/edit 類工具產出的文件。
分屏側邊預覽面板¶
預覽面板位於窗口右側,是真實的分屏,寬度可調,會話內容保持可見、不被遮擋。不同類型的文件按對應方式渲染:
- Markdown:富文本,標題、表格、列表、代碼塊、鏈接、圖片都支持,相對路徑的本地圖片自動解析;
- 源代碼(
.py .js .ts .sh .css等):暗色語法高亮; - CSV:HTML 表格;
- JSON:可摺疊樹;
- 圖片(
.png .jpg .gif .webp .svg等):棋盤格背景的居中視圖; - HTML / localhost 端口:iframe 渲染,開發服務器會給出端口 chips,另有 URL 欄、前進/後退/刷新和外部打開。
供其他插件調用的全局鉤子¶
插件在 window 上暴露兩個全局鉤子:window.__dshOpenFilePreview 和 __dshCanPreviewPath。其他插件可以把「打開文件」的意圖路由到這個預覽面板,不必各自實現渲染邏輯。
安裝與啓用¶
安裝命令如下。這個包聲明瞭 dsh.bundle 和 dsh.client,所以 dsh plugin add 會安裝依賴,並把預覽自動註冊爲活躍的 client-plugin 層,不需要手動編輯 profile:
dsh plugin --profile web add github:nirvanaslash/dsh-artifact-preview
安裝後需要重啓 dsh web 服務(或 DSH Desktop),再刷新頁面。
npm 發佈完成後,還可以用下面這條命令安裝,Marketplace 搜索路徑同樣適用(截至寫作時,npm 發佈尚未完成,README 原文寫的是 Once the package is published to npm):
dsh plugin --profile web add dsh-artifact-preview
前置條件有兩條:
1、DSH Desktop,或裝有 dsh-file-changes 伴侶插件的 dsh web profile。預覽通過 /dsh-files/static/<absolute-path> 路由獲取文件內容,這條路由在 DSH Desktop 裏是內置的;裸 dsh web 安裝需要先裝 dsh-file-changes 伴侶插件。
2、模型需要通過 write/edit 類工具產出文件,插件的「產物」行正是這樣追蹤出來的。
兼容性與已知邊界¶
插件面向 DSH 0.1.0-rc.7(DSH Desktop 2.0.1 內置)的 client plugin ABI 構建:window.__ModuleLoader__ 模塊格式、dsh.client 元數據、dsh.bundle patch 註冊,以及 conversation.chat.turnTail 鏈槽。鏈槽選舉依賴低 priority(-100)讓產物行勝過官方 deliverables 行,DSH 升級後需要重新驗證這個行爲。依賴方面,包以 peerDependencies 聲明瞭 react ^18.2.0。
有兩個可選行爲刻意沒有打包,因爲它們需要補丁 DSH 核心文件:
- 文件視圖中的多類型預覽按鈕;
- 消息正文內文件名提及的「打開 → 預覽」。
缺省狀態下,文件視圖保持 DSH 原有的僅 HTML 行爲,正文提及的文件用系統應用打開。聊天內的產物行和預覽面板本身由這個包完全自包含,不依賴核心補丁。
適用場景與注意¶
適合的人羣很明確:在 DSH Desktop 或 dsh web profile 上跑智能體、經常讓模型產出文件、希望留在會話裏就地查看結果的開發者。如果你在寫其他 client plugin,也可以直接複用 window.__dshOpenFilePreview / __dshCanPreviewPath,把自己的「打開文件」動作接到這套預覽上。
安裝前有幾點要注意:
1、插件以當前 dsh 進程權限運行,安裝第三方插件等於把代碼放進你的工作環境,建議安裝前先檢查源碼。
2、許可證爲 MIT,源碼託管在 GitHub,可以直接審閱。
3、插件綁定的是 DSH 0.1.0-rc.7 的 ABI 和鏈槽行爲,升級 DSH 後留意產物行是否仍然正常出現。
結尾¶
dsh-artifact-preview 補上的是 DSH 日常使用裏一段具體的小路徑:從「模型寫完了一個文件」到「看到內容」。裝上插件、重啓服務並刷新頁面,產物行和側邊預覽就接管了這段路。
插件頁面在社區目錄:https://www.skillhub.cn/plugins/nirvanaslash/dsh-artifact-preview
源碼在 GitHub:https://github.com/nirvanaslash/dsh-artifact-preview
需要說明的是,這個目錄是獨立的社區站點,與 DeepSeek / 幻方沒有官方從屬關係。