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
羽毛球分组比赛记分
小程序二维码

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

小夜