前言¶
在 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。
- 目录页:https://www.skillhub.cn/plugins/erzhe-lume/dsh-tool-mathfig
- 源码与说明:https://github.com/erzhe-lume/dsh-tool-mathfig
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:… 一类的一行命令。按下面步骤操作。
- 在 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。
- 在 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。