dsh-tool-mathfig:DSH 下的公式与数学插图离线出图

前言

在 DeepSeek Harness(DSH)里做教学、文档或推理相关任务时,智能体经常需要把 LaTeX 公式和几何示意图落成可嵌入的 PNG,而不是依赖在线渲染或本机完整 LaTeX 发行版。常见做法是外链服务、截图或手写 matplotlib,链路长、难校验,也不利于在 Cordis 工具里统一调用。

下面介绍社区插件 dsh-tool-mathfig(维护者 erzhe-lume):面向 DSH 的 Cordis 工具包,提供公式离线转 PNG、参数化几何/曲面模板,以及出图时的数值自校验。插件在 SkillHub 目录分类为「模型推理」,当前 npm 版本为 0.1.3,许可证 MIT;GitHub 仓库星标数为 1(以目录页与仓库公开信息为准)。

这是什么

dsh-tool-mathfig 是注册在 DSH 上的公式与数学插图工具集。一句话定位:在不安装 LaTeX、不依赖浏览器、不联网的前提下,把 LaTeX 排成 PNG,并用固定模板画出带数值结果的数学插图。

适配的 DSH 发行线在 package.json 的 peerDependencies 中声明:与 @deepseek-ai/dsh 0.1.0-rc.6 及 0.2.x(含 ^0.2.0-rc.1 所覆盖的后续 0.2 线)配合使用;@deepseek-ai/dsh-tools 需满足 ^0.1.0-rc.6 || ^0.2.0-rc.1。

DSH 生态强调「一切皆插件」;SkillHub 等为社区目录,与 DeepSeek / 幻方无官方从属关系。安装前请自行阅读源码与许可证——插件以当前 DSH 进程权限运行。

核心功能

Host 侧在 lib/index.js 注册三个工具;Python 侧负责排版与绘图(lib/py/)。

figure_formula:LaTeX 公式转 PNG

离线渲染,默认透明背景,可直接用于 PPT、Word 或笔记。

README 中列出的能力包括:分式、根式、积分、求和、极限、矩阵与行列式(pmatrix、vmatrix 等)、cases 分段、多行对齐环境、\underbrace / \overbrace、\boxed、公式内中文(如 \text{ 为奇数} 或裸写中文),以及对 \displaystyle、\dfrac、\mathbf 等写法的自动改写。

常用参数:tex(必填)、savePath、fontsize、dpi、color、bg、pad、cjkFont、fontset、returnImage。

不支持的环境会在返回值里明确报错(例如 tabular、把 cases 深度嵌进 \frac 参数等),不会静默画错。

figure_template:参数化数学插图

出图同时返回数值解(网格积分得到的体积、面积或积分值),便于先验算再交付。

模板 作用 主要参数(节选)
一元函数与面积 两曲线所夹区域、交点、面积标注 F, G, A, B, markX, shade, out
二重积分区域 积分区域与被积函数高度场 region, integrand, xmin…ymax, mark, out
曲面与切平面体积 两曲面所围立体(子午切片)等 up, down, xmin…ymax, views, nslices, mark
球缺与球冠 球缺截面与立体示意 R, h, views, labels

表达式为字符串,变量为 x / y,例如 up="2*x-2*y-1"、down="x**2+y**2"。模板「曲面与切平面体积」可按 views 中多个候选视角各出一张图(如 views=[[18,-88],[26,-66]]),再选用最清晰的一张。

figure_selftest:链路体检

一条调用可区分 Python 解释器、引擎路径、模板清单与当前 host 包版本(@deepseek-ai/dsh-tools / schemastery / cordis)是否与声明范围匹配,并实际渲染一条含中文的 cases 公式,用于排查环境问题或公式写法问题。

安装与启用

官方 README 以 Windows 桌面版、在 profile 里 link 本地包 为例,没有提供 dsh plugin add github:… 一类的一行命令。按下面步骤操作。

  1. 在 profile 的 package.json 中加入 link 依赖,并把包名写入 dsh.profile.bundles:
"dependencies": {
  "dsh-tool-mathfig": "link:D:/DeepSeek/mathfig-plugin/dsh-tool-mathfig"
},
"dsh": {
  "profile": {
    "bundles": [ "...", "dsh-tool-mathfig" ]
  }
}

路径 link: 后改为你本机插件目录的实际路径;profile 位置一般为 ~/.dsh/profiles/<profile>/package.json。

  1. 在 profile 目录用 DSH 自带的 Node 与 pnpm 离线安装(link 不需要从 registry 下载):
cd ~/.dsh/profiles/<profile>
& "<DSH>/runtime/node/bin/node.exe" "<DSH>/runtime/pnpm/bin/pnpm.mjs" install --offline

注意两点:不要用本机 Node 20 配 DSH 自带 pnpm(可能报 ERR_UNKNOWN_BUILTIN_MODULE);安装完成后 node_modules/dsh-tool-mathfig 指向本地目录,需重启 DSH,在设置 → 插件中确认已加载。

配置写在 cordis.patch.yml,也可在 profile 的 cordis.patch.yml 里按 id: tool-mathfig 覆盖。字段包括:pythonPath、outputDir、defaultDpi、defaultFontsize、timeoutMs。默认 Python 路径在 README 示例为 C:\Python314\python.exe,可按环境修改。

运行环境与版本兼容

  • Node ≥ 20:由 DSH 提供,与 engines.node 一致。
  • Python ≥ 3.12 + matplotlib;模板数值积分额外需要 scipy。

peerDependencies 对 Cordis / schemastery 为 ^4.0.1 / ^3.18.1。若只声明 ^0.1.0-rc.6 而不并列 || ^0.2.0-rc.1,host 升到 0.2.x 时可能被版本闸门拒绝加载;本插件采用并列发行线覆盖 0.1.0-rc.6 与 0.2.x。插件不声明 engines.dsh,以避免 link 安装时被错误闸门挡住。

典型用法与自测

智能体或你在 Cordis 里调用上述三个工具即可;具体入参以工具 schema 与 README 为准。

本地开发可在插件仓库根目录跑冒烟测试,无需启动完整 DSH:

node smoke.mjs

覆盖模块导出、工具注册、含 cases 与中文的公式渲染、模板渲染与数值自校验、体检流程,以及故意提交无法渲染的公式以验证报错路径。

适用场景与注意

适合需要在 DSH 工作流里稳定、离线产出公式图与标准几何示意图的场景:讲义配图、解题步骤插图、需要附带积分/体积数值核对的教学材料等。

使用前请确认 Python 与 matplotlib(及模板的 scipy)已按 pythonPath 配置可用;首次接入建议先跑 figure_selftest。插件代码在本地 link 或你从可信来源取得的包中——安装前检查 LICENSE(MIT)与 lib/py 下脚本是否符合你的安全策略。

结尾

dsh-tool-mathfig 把「LaTeX → PNG」「参数化数学图 + 数值结果」「环境自检」收进同一 Cordis 工具包,减少对外部 LaTeX 或在线渲染的依赖。进一步了解可打开 SkillHub 目录页 与 GitHub 仓库 README。

羽毛球分组比赛记分
小程序二维码

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

Xiaoye