前言¶
在 DeepSeek Harness(DSH)裏用智能體幹活時,最常遇到的一種回覆是這樣的:KPI 對比寫成一串文字,時間線落在 Markdown 表格裏,窄屏上層次全丟,趨勢也看不出來。Markdown 適合散文,不適合結構。MarkYangKp 的 dsh-intelligence-ui 就是這個方向上的小衆選擇:不換聊天窗口,只把助手消息渲染器換掉,讓模型自己寫出的結構化內容渲染成卡片、表格、圖表和流程圖,散文部分保持 Markdown 原樣。
這是什麼¶
dsh-intelligence-ui 是 DeepSeek Harbor 生態裏”一切皆插件”理念下的一個客戶端插件,對應官方目錄頁分類爲”客戶端”,在社區目錄中是目前只有 1 個 star 的低熱度項目。維護者 MarkYangKp,版本 v1.1.1,MIT 協議。
一句話定位:它是 DSH 助手消息渲染器的替代品,接收三種形態的回覆——模型寫的 OpenUI Lang 圍欄、結構化 Markdown、純文字——前兩種渲染成界面,純文字走宿主的 Markdown 渲染器,原樣不動。
解決的問題是:DSH 的聊天窗口默認只做 Markdown 渲染,而模型的回覆經常包含比散文更結構化的內容(指標、對比、時間線、代碼改動),默認渲染器對這些內容表達力不足。
核心能力¶
插件註冊在 assistant-step 渲染座位上(priority −20),跑一條三模式管線:
- 原生圍欄:回覆裏有
```openui程序,走parse → evaluate → render,原地渲染組件,保真度最高。 - 自動編譯:沒有圍欄,但包含 Markdown 表格、KPI 列表或有序步驟,由客戶端編譯器升級成卡片、圖表、搜索表格。
- 純文字:其它情況,走宿主 Markdown 渲染器,原樣不動。
渲染是插入式的:不合並、不改寫、不吞內容。圍欄外的文字照常渲染,所以一條回覆可以是”說明 → 圖表 → 補充說明”。
組件面覆蓋十類共 44 個:原語(Box Row Text Icon 等)、佈局(Stack Grid)、容器(Card Callout)、文本(Heading KeyValue CodeBlock)、數據(StatCard Table Timeline Steps)、圖表(Chart Sparkline Heatmap)、地理(Map)、代碼與文件(Diff FileTree)、過程(TreeView Diagram)、交互(Button Tabs Accordion)。完整簽名在倉庫的 docs/COMPONENTS.md。
編譯側有兩個設計約束值得記:渲染器對”壞掉的程序”做了降級處理,字段不合法只降級爲局部提示,不會打斷整條消息;未閉合的圍欄在流式生成時邊生成邊渲染,定稿不會重掛載控件實例。第二點是在長回覆場景下避免閃爍的關鍵。
主題方面,顏色、圓角、字號全部取自宿主主題 token(--dsw-*),明暗主題自動跟隨,倉庫裏有測試保證零硬編碼顏色。插件依賴宿主提供的 --dsw-* 主題 token 與 @deepseek-ai/dsh-client-* 平臺模塊,不需要全局安裝任何東西。
安裝與啓用¶
官方安裝方式是先把倉庫拉到本地,再把目錄註冊進 DSH 的插件管理器。前置條件是宿主構建支持插件 bundle(engines.dsh >= 0.2.1-rc.0),並按 deepseek.com/harness 下載桌面應用、在 DSH 中配置好模型。
git clone https://github.com/MarkYangKp/dsh-intelligence-ui.git
克隆後不需要構建步驟——lib/client.js 已經進倉。然後打開 DSH 插件管理器,選擇”從本地目錄安裝 / install bundle”,指向倉庫根目錄。不同 DSH 版本菜單措辭略有差異。
重啓 DSH 後打開聊天窗口,瀏覽器控制台應出現 [dsh-intelligence-ui/1.1.1]。
如果第 3 步在你的 DSH 構建裏不存在,說明該構建未開放插件 bundle 能力,無法加載本插件,需要升級 DSH 或使用支持 bundle 的構建。倉庫自帶的 engines.dsh >= 0.2.1-rc.0 就是這條邊界的顯式聲明。
來源構建(可選,僅 Node 構建、跑測試或改源碼時需要):
pnpm install
pnpm build # 產出 lib/client.js
pnpm 版本固定爲 12,由 packageManager 字段管理,Corepack 會自動使用。Node 要求 >= 20。
典型用法¶
正常寫 Markdown,在需要界面的位置插入圍欄。下面是 README 裏給出的故障復盤示例:
故障復盤:
```openui
root = Stack([hd, tl, ok], "column", 16)
hd = Heading("故障復盤", 2)
tl = Timeline([{"title": "14:02 告警", "description": "錯誤率超過 15%", "time": "14:02", "variant": "error"}, {"title": "14:26 回滾完成", "description": "錯誤率回落至 0.4%", "time": "14:26", "variant": "success"}])
ok = Callout("下一步", "給索引任務補上連接池上限。", "info")
不寫圍欄也可以,結構化 Markdown 會被自動升級。兩條路徑共用同一條 `parse → evaluate → render` 管線。
臨時關閉自動編譯,在瀏覽器控制台執行:
```js
localStorage['dsh-intelligence-ui:disable-auto'] = '1'
排障時值得參考命令行入口:倉庫 docs/COMPONENTS.md 給出全部組件簽名,examples/README.md 有 10 個可直接運行的示例,docs/ARCHITECTURE.md 說明渲染管線與宿主注入機制。
適用場景與注意¶
適合誰:在 DSH 客戶端裏做數據分析、故障復盤、代碼審查這類需要”結構化呈現”的人。如果你的回覆基本都是散文,收益有限,插件不會改變純文字渲染行爲。
三點注意:
第一,插件以當前 DSH 進程的權限運行。它渲染的界面、注入的腳本、訪問的數據範圍都跟隨進程本身,不會比宿主更受限。安裝前請通讀倉庫源碼與 LICENSE:許可證文件在倉庫根目錄,MIT,聲明簡潔但完整,確認你對作者條款的理解和你的使用方式一致即可。
第二,它依賴宿主的私有能力(--dsw-* 主題 token、@deepseek-ai/dsh-client-* 平臺模塊、一個公開的渲染器鉤子),而這些鉤子在 engines.dsh 0.2.x 線之前不存在。版本邊界決定了插件在當前 DSH 構建裏能否加載,不滿足會直接失敗。
第三,當前版本處於 1.1.1,社區關注度低(目錄頁 star 1)。這意味着遇到問題時,大概率需要自己讀源碼、看 issue 來排障,維護者的響應節奏未知。
結尾¶
dsh-intelligence-ui 解決的不是優雅問題,是”模型懂結構、渲染器不懂”的落差:模型寫出來的 StatCard、Timeline、Chart 不該退化成文字牆。插件通過三個特徵做到這一點——三模式渲染管線、對不完整輸出的降級保護、零硬編碼顏色的主題系統。目錄頁:https://www.skillhub.cn/plugins/MarkYangKp/dsh-intelligence-ui ;倉庫:https://github.com/MarkYangKp/dsh-intelligence-ui 。
請注意,該插件是社區項目,對應目錄頁是第三方站點,與 DeepSeek 官方應用商店無從屬關係。安裝前按上面的命令覈對源碼與許可證,不要像對待官方組件那樣直接信任。