Inline Visuals:讓 DSH 在回答裏直接畫圖,並且能回放

前言

用 DSH 做數據分析、讀論文或者彙報實驗結果時,常見的問題是:模型給出的表格和數字,得自己再複製到繪圖工具裏才能看。工具日誌裏的 ASCII 圖能看個大概,但沒法調樣式,刷新會話之後通常也就沒了。

ylifeonlyonce/dsh-inline-visuals 解決的是這個問題:讓 agent 在對話流裏直接產出一張卡片圖,卡片跟着會話日誌走,刷新、重開、分支都還在。下面介紹這個插件。

這是什麼

這是 YLifeOnlyOnce 維護的一個 DeepSeek Harness 插件,作用是把數據畫成圖,嵌在回覆正文的下方,而不是隻留在工具日誌裏。名字裏的 Inline 指的就是圖直接長在回答裏。

社區目錄頁把它歸在「趣味換裝」分類(第 3 方目錄的歸類,跟功能本身關係不大)。項目 2026-11-05 建倉,README 標註 MIT 許可證,package.json 裏的版本號是 1.1.0。

README 和倉庫描述對種類數量的寫法不一致:README 標題寫「18 kinds of charts…」,還配了一枚 18 類的徽章;倉庫 description 寫「14 replayable visual kinds」。實際能力以下面那張種類表爲準。

能畫什麼

README 給出的種類表分三組:

分組 種類
Charts bar · line · area · pie · doughnut · scatter · radar · waterfall
ML & papers training curves · ROC/PR curves · confusion matrix · histogram · model leaderboard · embedding scatter
Everything else compare table · timeline · gantt · heatmap · flow · KPI tiles

這些圖都支持 presentation styles:橫向或堆疊的柱狀、階梯線、數據標籤、圖例、網格、五種配色、高度與密度、散點趨勢線、對數座標軸、EMA 平滑、誤差棒。

體積上,宿主側約 35 KB,瀏覽器側一個自包含文件約 217 KB(Chart.js 內聯,React 與宿主共用)。測試用 node:test 寫了 38 個,每次 push 跑 CI,npm 發佈由 tag 驅動並帶 provenance。

安裝與啓用

在 DSH 會話裏粘貼一行:

plugin_manager({ action: "install_bundle", target: "dsh-inline-visuals" })

不需要 clone,不需要配置。裝完之後 agent 的工具列表裏會出現 show_visual 和 edit_visual。

README 標註需要 DeepSeek Harness v0.2.1-rc.3 或更高版本。想從源碼裝的話,README 給出的替代路徑是 github:YLifeOnlyOnce/dsh-inline-visuals,或者把 Plugin Manager 指向本地 clone,細節見倉庫裏的 docs/reference.md。

典型用法

裝完直接跟 agent 說需求。README 給了幾個例子:

Compare three caching strategies — hit rate, memory and complexity — as a chart.

Turn that into a horizontal stacked bar, and add value labels.

Draw our release pipeline as a flow.

Show last week’s traffic as a heatmap.

改樣式也不用從頭重畫,edit_visual 會在原 spec 上打補丁。

讀論文和訓練日誌的場景:

Plot train/val loss for 8 epochs on a log scale, smoothed, with error bars.

Draw the ROC curve from these points and mark AUC.

Make a confusion matrix for cat/dog/bird from this table.

Compare these four models on accuracy, F1 and latency — highlight the best.

Cluster these embeddings by class and show a t-SNE scatter.

它是怎麼工作的

模型發出一個小的聲明式 spec,插件校驗後把它寫到 tool result 上,客戶端用宿主的主題來渲染。因爲數據已經在會話日誌裏,回放時不需要再調一次模型。

實現層面的幾個細節:

  • 卡片存在會話日誌(tool/result.meta)裏,不是單獨的文件。
  • 插件自身不做任何網絡請求。
  • 模型只發數據,不發 HTML 或 JavaScript。
  • 圖表類(canvas)支持點擊數據點,一鍵把後續提問帶進輸入框。
  • 純文本客戶端會收到一份緊湊的文字摘要,信息不丟。
  • spec 的穩定版本是 version: 3,v1/v2 的 spec 仍然能渲染。
  • 導出:複製爲 JSON 或 CSV,圖表導出 PNG,手繪卡片導出 SVG。

適合誰,以及注意點

適合想在 DSH 裏讀論文、看訓練曲線、做數據對比,並且希望圖能留在會話裏的人。功能上跟繪圖工具重疊,但勝在不用離開對話、不用二次加工。

注意幾點:

  1. 插件以當前 DSH 進程的權限運行,安裝前應當先讀一遍源碼,確認它的行爲符合預期。許可證是 MIT(© 2026 YLifeOnlyOnce)。
  2. README 上的種類數(18)和倉庫描述(14)不一致,如果要做選型,建議直接看 docs/reference.md 的參數清單。
  3. 倉庫目前只有 1 個 star,關注度很低,遇到問題基本得自己提 issue 或者改源碼。
  4. 按 README 的說法,目前只有 chart 類畫布支持點擊追問,其他類型的交互還沒上。

小結

這個插件的價值是把「圖」變成會話日誌的一部分:圖出現在回答下方,能點擊追問、能改、能導出,重開會話還在。安裝一行命令,不需要配置。

  • 目錄頁:https://www.skillhub.cn/plugins/YLifeOnlyOnce/dsh-inline-visuals
  • GitHub:https://github.com/YLifeOnlyOnce/dsh-inline-visuals
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜