前言¶
DeepSeek Harness(DSH)裏,模型長回答往往是一大段 Markdown:結構、流程、對比都擠在文字裏,掃一眼很難抓住關係。常見做法是寫得更短、更平,或者單獨畫圖再貼鏈接——前者仍可能漏掉結構,後者又打斷閱讀節奏。
下面介紹社區插件 dsh-inline-figures(維護者 0mao0)。它在宿主側給模型一個 draw_figure 工具:把 JSON 圖規格渲染成 SVG,寫入當前會話工作區,並返回一行普通 Markdown 圖片鏈接;模型把該行插在段落之間,最終呈現爲「文字—圖—文字」,不新增客戶端 UI,也不把圖摺疊成工具卡片。項目在 SkillHub 目錄分類爲「趣味換裝」,當前 GitHub 星標爲 0、fork 爲 1;許可證 MIT,版本 0.1.0。
這是什麼¶
dsh-inline-figures 是 DSH 宿主插件(Cordis bundle):當回答需要被理解而不只是被掃讀時,讓模型在合適位置調用 draw_figure,生成確定性 SVG,經 Markdown 圖片通道全寬嵌入回覆。
與「純文字 + 表格/長列表」相比,插件還在注入的指導裏傾向約 80% ASD-STE100(簡化技術英語)風格的 prose,並把「部件、關係、流程、順序、對比、數量」類內容優先變成圖而不是再寫一段。
核心功能¶
draw_figure 工具¶
接口形狀(來自 README):
draw_figure({ spec, alt, slug? }) -> { path, markdown, warnings }
模型提交預設結構的 spec,插件校驗、佈局、渲染後返回 markdown 一行,需原樣粘貼進回覆,例如:

支持的 kind 及限制(節選):
| kind | 用途 | 限制 |
|---|---|---|
raw_svg |
樹、分支流水線、狀態機等自定義結構 | spec 32 KB |
architecture |
分層框、P0/P1 徽章、危險分組、反饋邊 | 2–6 層 × 1–6 節點,8 條邊 |
compare |
左右列對比,語義色調 default/danger/ok/muted |
1–6 行 |
timeline |
豎向步驟,done/active/todo |
2–10 步 |
chart |
bar / line / pie |
1–12 點 |
compare 示例 spec:
{ "kind": "compare", "title": "Current vs target",
"rows": [{ "left": { "label": "Manual review" },
"right": { "label": "Automated gate", "tone": "ok" } }] }
圖始終是 SVG(非 ASCII 框線、非代碼塊裏的假圖)。raw_svg 會經 sanitizer 去掉腳本、外部引用等,並注入主題樣式與箭頭標記。
一輪裏的三步¶
- 模型判斷某處需要圖,調用
draw_figure。 - 宿主插件校驗 spec、渲染、寫文件,返回一行 Markdown。
- 模型把該行寫入回覆,由常規 Markdown 圖片渲染全寬圖。
模型忘記畫圖時¶
工具無法自行把圖寫進回覆,插件在宿主側讀「即將結束」的回答:若含表格、五項及以上列表、對比、計劃、流程等結構卻沒有任何圖,會在 agent/turn-stopping 側 steering,促使模型再畫一步。該路徑每會話最多 steer 兩次、間隔兩 turn,且僅在會話裏至少畫過一次後才啓用;從未畫過的會話則在下次工具結果上附提醒,不額外佔一步模型調用。
落盤與隱私¶
僅寫入會話工作區,無網絡上傳、無遙測:
<session workspace>/.dsh-figures/<session>/
├── N-slug.svg
├── N-slug.png
└── .gitignore
每會話目錄保留最新 200 個圖(按修改時間 prune)。刪文件會導致舊回覆裏圖片失效,目錄應視爲對話資產。柵格化失敗時回覆可改用 SVG 的 inline data URI,並在同目錄寫入 raster-diagnostic.txt。
安裝與啓用¶
DSH 自帶插件管理器,無需手抄文件,也無需對 profile 跑 npm 安裝命令。
# from npm
dsh plugin --profile <profile> add dsh-inline-figures
# or straight from this repository, no registry involved
dsh plugin --profile <profile> add github:0mao0/dsh-inline-figures
Web 側欄 Plugins 頁可用表單完成同樣操作;智能體也可用 plugin_manager 的 install_bundle(目標爲本地 clone 目錄——安裝方式以你環境文檔爲準,本文不展開 clone 流程)。
安裝後重啓 DSH:宿主插件代碼按進程加載一次,不重啓可能仍顯示舊列表或未加載新代碼。無單獨 build 步;依賴由 harness 提供,sharp 帶預編譯二進制。
package.json 以 peer 依賴鎖定已驗證的 DSH 運行時;版本不匹配時安裝會報 incompatible-version。README 寫明在 dsh 0.2.0-rc.2(cordis 4.0.4)上驗證。若必須在其他 runtime 上安裝,可使用(將佔位符換成實際版本):
dsh plugin --profile <profile> allow-version dsh-inline-figures@<version> --dsh-version <runtime> --accept-risk
插件要求 Node >= 22。
典型用法¶
- 按上文命令爲指定
<profile>安裝 bundle 並重啓 DSH。 - 在需要「講清結構」的會話裏向模型提問;模型在合適段落調用
draw_figure,把返回的markdown插入正文。 - 需要對比兩種方案時,使用
kind: "compare"的 spec,標題與行標籤遵循短名詞短語(圖內標籤風格與 ASD-STE100 最嚴一檔一致:每標籤最多約六個詞、一概念)。
具體 preset 字段與校驗錯誤信息以倉庫 README 與 draw_figure 返回的 warnings 爲準。
適用場景與注意¶
適合:運維/開發說明、架構與流程講解、前後狀態對比、步驟時間線、少量數據柱狀/折線/餅圖——凡是「掃文字不如看一眼關係」的長回答。
注意:
- 插件以當前 DSH 進程權限運行,安裝前請自行查看 GitHub 源碼 與 MIT 許可證,確認符合你的安全與合規要求。
- 社區目錄 SkillHub 插件頁 與 DeepSeek / 幻方無官方從屬關係;DSH 生態強調「一切皆插件」,目錄是獨立站點。
- 圖文件與會話綁定;清理工作區或 prune 後,歷史消息中的相對路徑圖片可能失效。
- 運行時版本與 README 驗證版本不一致時,優先解決 peer 依賴拒絕或顯式
allow-version,避免掛載後行爲異常。
結尾¶
dsh-inline-figures 把矢量說明圖嵌進模型回覆的正文節奏裏:同一事實可以少一段冗長描述,多一張落在段落間的結構圖。若要安裝或看對比示意,可打開目錄頁 skillhub.cn/plugins/0mao0/dsh-inline-figures 與倉庫 github.com/0mao0/dsh-inline-figures。