DeepSeek Harness 插件:sijidoubi/dsh-plugin-mermaid

前言

DeepSeek Harness (DSH) 採用“一切皆插件”的架構。在 DSH 的默認環境中,模型只能輸出 Mermaid 源碼,用戶無法直接看到渲染後的圖表。sijidoubi/dsh-plugin-mermaid 插件通過內置 mermaid_render 工具,解決了這一問題。它能在進程內直接將 Mermaid 源碼渲染爲 SVG,無需依賴瀏覽器或外部聯網。

功能

該插件提供 mermaid_render 工具,基於 mermaid 11 和 jsdom 在進程內完成渲染。

  • 輸出格式:支持返回 SVG 文本、DataUri 以及 Web 服務器託管的絕對 URL。
  • 圖表類型:支持 flowchart、sequenceDiagram、classDiagram、pie、stateDiagram、erDiagram 等多種類型。
  • 錯誤處理:渲染失敗時,工具以 isError 返回,包含解析錯誤信息。

安裝

插件安裝後,模型即可調用渲染工具。

dsh plugin --profile web add github:sijidoubi/dsh-plugin-mermaid
dsh web

配置

默認啓用以下配置,可通過 cordis.patch.yml 覆蓋:

- insert:
    - id: tool-mermaid
      name: dsh-tool-mermaid
      config:
        theme: default        # default | dark | neutral | forest
        securityLevel: strict # strict(默認,消毒標籤內 HTML) | loose(原樣渲染)

使用

工具名稱爲 mermaid_render,參數如下:

  • code (string, 必填):Mermaid 圖源碼。
  • title (string, 可選):圖的標題。

返回值:

{
  "format": "svg",
  "title": "可選標題",
  "svg": "<svg ...>...</svg>",
  "width": 127,
  "height": 77,
  "url": "http://127.0.0.1:3080/dsh-mermaid/m1.svg",
  "dataUri": "data:image/svg+xml;base64,..."
}
  • url:Web 服務器託管的地址(Web 聊天界面優先顯示此地址)。
  • dataUri:無 Web 服務器時的兜底方案。
  • width/height:來自最終 viewBox 的像素值。

限制與注意事項

  • 不支持部分圖表:不支持依賴瀏覽器交互或 Canvas 的圖表類型(如部分 mindmap/gantt)。
  • URL 生命週期:url 是基於內存緩存的臨時地址。dsh 重啓後舊 URL 會 404,需重新渲染。
  • 進程副作用:首次渲染時,插件會在宿主 Node 進程安裝 jsdom 全局對象(window/document 等)。
  • 寬度估算:寬度按逐字符寬度模型估算,極端字體下可能與瀏覽器真實渲染有輕微出入。

結尾

該插件爲 DSH 環境提供了原生的 Mermaid 渲染能力,使模型能夠直接生成可嵌入回答的 SVG 圖片。源碼與目錄鏈接見下。

  • 倉庫:https://github.com/sijidoubi/dsh-plugin-mermaid
  • 目錄:https://www.skillhub.cn/plugins/sijidoubi/dsh-plugin-mermaid
羽毛球分组比赛记分
小程序二维码

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

小夜