前言¶
数学建模竞赛(CUMCM / MCM / 国赛等)的常见痛点是:赛题、数据、代码、图表、论文散在多个工具里,agent 每次从零开始。已经有人做的是把建模拆成一个长提示词,让 LLM 一口气写完,但结果不可复现、中间产物没有验收。dsh-mathmodeling-workflow 是 DSH 上的一个工作流插件,维护者是 xzwwwwww,它把整条链路固化成一个确定性 8 步流水线:赛题分析、建模求解、编程实现、数据图、流程图、逻辑对抗复核、论文撰写、编译 PDF。下面介绍这个插件是什么、怎么装、怎么用。
这是什么¶
一句话:把一个赛题文件夹当作输入,插件逐号子代理串行跑完 8 个步骤,最终产出一份 LaTeX 论文 PDF,以及全部源码、图表和中间产物。它不是另一种模型,也不是通用 agent 框架,而是挂在 DSH 插件机制上的一个 bundle。
仓库地址:https://github.com/xzwwwwww/dsh-mathmodeling-workflow
目录页:https://www.skillhub.cn/plugins/xzwwwwww/dsh-mathmodeling-workflow
分类是「工作流」,GitHub 星标 1,许可证 MIT,npm 版本 0.3.11。
它解决的具体问题是:建模结果是「跑完一轮后」才有的,而现有做法缺少分步验收节点。这个插件每一步结束都有确定性闸门检查,不通过就带着修复提示重派,最多重试 2 次,主会话只做调度和验收。
核心功能¶
1. 8 步流水线¶
| # | 步骤 | 干什么 |
|---|---|---|
| 01 | 赛题分析 | 拆子问题、定义变量、规划建模思路和图表清单 |
| 02 | 建模求解 | 假设、模型建立、求解、检验、逻辑合同 |
| 03 | 编程实现 | 写可运行代码、跑出结果、生成结果 JSON |
| 04 | 图表生成 | 数据图(matplotlib,按 manifest 对账) |
| 05 | 流程图/架构图 | DrawIO 或 HTML 引擎画流程、架构、TikZ 图 |
| 06 | 逻辑对抗复核 | 六类逻辑缺口复核(方向反、跨问矛盾、任务读歪…) |
| 07 | 论文撰写 | LaTeX 正文、摘要、图表嵌入、引用;strict 时做数据真实性核对 |
| 08 | 编译与合规检查 | XeLaTeX 编译、模板完整性、图嵌入、AI 声明合规 |
步骤可以被开关裁掉:flowchart_engine=html 把第 05 步换成 HTML 引擎;skip_figures 去掉 04 和 05;enable_comp_review=false 去掉 06;fast 模式跳过 06 的深度复核和数据核对。
2. 闸门验收¶
每个步骤结束由确定性闸门验收,检查点包括产物是否存在、图表是否对账、正文页数是否达标、逻辑合同是否建立、AI 声明是否合规、数据是否经过核对。不通过就带着修复提示重派,最多重试 2 次。
3. 赛项适配¶
competition 开关支持 11 种赛项(cumcm、wuyi、huazhong、apmcm_zh、diangong、mathorcup、zhongqing、yangtze、liaoning、huashu、huawei、generic),每个赛项对应不同的竞赛规则、默认正文页数和 LaTeX 模板。多数赛项默认正文 30 页,apmcm_zh 是 25 页。
安装与启用¶
前置条件:DSH(桌面版或 Web 版)。用 npx 方式安装需要 Node.js + pnpm;如果只有纯 Node 环境,先 npm i -g pnpm。DSH 桌面版自带 pnpm。
其余依赖按需安装,缺哪个只影响对应那一步:
- Python 3.10+(可
import matplotlib):数据图、结果核对 - XeLaTeX(TeX Live / MiKTeX):编译论文 PDF
- Chromium 内核浏览器(Edge / Chrome):仅
flowchart_engine=html时需要 - 中文字体:编译中文模板(初始化时会尝试从系统字体回填)
兼容性:README 注明已在 DSH 0.2.2-rc.1 实测通过(工具注册、系统提示注入、8 步流水线、提问中转、开关改写、闸门验收全部正常)。升级 DSH 后如果插件管理里显示未启用,重新启用一次即可,因为升级可能重置 profile 里的 bundle 选择。
方式一:npx 一条命令(推荐)¶
npx -y @deepseek-ai/dsh plugin --profile desktop add github:xzwwwwww/dsh-mathmodeling-workflow
这条命令会拉取仓库、装进 desktop profile、自动注册进 bundle 列表。Web 版把 desktop 换成 web。
方式二:从本地目录装¶
先克隆仓库:
git clone https://github.com/xzwwwwww/dsh-mathmodeling-workflow.git
然后在 DSH 里二选一。桌面端在插件管理 → 安装 bundle,目标填克隆下来的目录;Agent 侧直接调用:
plugin_manager({ action: "install_bundle", target: "<克隆目录的绝对路径>" })
更新:方式一重跑 npx 命令;方式二 git pull 后把插件关闭再启用一次(或重启 DSH)。卸载:插件管理里移除,或 plugin_manager({ action: "remove_bundle", target: "@local/dsh-mathmodeling-workflow" })。
典型用法¶
1. 把赛题和数据放进一个文件夹¶
2026国赛A/
├─ 赛题A.docx # 赛题原文:PDF / DOCX / MD 都行
├─ 数据.csv # 附件数据:csv / xlsx / json
└─ 自定义要求.md # 可选:导师规范、评审偏好、必须包含的内容
2. 在 DSH 里说一句话¶
最简调用,全部开关走默认值:
用建模插件跑这个赛题:D:\2026国赛A
带要求的调用,只写在意的部分:
用建模插件跑:D:\2026国赛A,国赛 A 题,正文 25 页,
数据图用 nature 风格,流程图用 HTML 引擎,严格审查
agent 收到后会回显最终开关,然后生成工作区,目录名形如 modeling-2026国赛A-<时间戳>/。
3. 一个完整示例¶
用建模插件跑:D:\2026国赛A,国赛 A 题,正文 25 页,
数据图用 nature 风格,流程图用 HTML 引擎(modern 版式),
AI 声明按"使用过 AI 工具"写,开启逻辑对抗复核,
自定义要求:摘要不超过一页,必须包含灵敏度分析。
agent 会回显开关摘要,例如:
赛项:国赛 (CUMCM)(cumcm) | 题号=A | 页数(正文)=25 | 数据图风格=nature
流程图=html/modern | 丰满模式=关 | 审查=strict | AI声明=used | 对抗复核=开
→ 8 步,工作区 modeling-2026国赛A-20261104-2030/
4. 跑起来之后的工作方式¶
- 每步一个子代理、串行执行,上一步闸门通过才进下一步,主会话只做调度和验收。
- 子代理拿不准关键信息(题号口径、数据取舍、硬性要求)会先来问,拿到回答再继续;能靠合理假设推进的,会在产物里写明假设。
- 随时可以问进度:
看下当前进度,会列出 8 步状态、产物大小和待答问题。 - 工作区根目录有
PROBLEM_ANALYSIS.md、MODELING_REPORT.md、RESULTS.md、code/、figures/、paper/main.pdf。
开关一览(20 个)¶
初始化参数只有 3 个不是开关:input_dir(必填,赛题目录)、workspace_name(工作区目录名,默认按目录名+时间戳)、overwrite(工作区已存在时是否重建)。
主要开关:
| 开关 | 取值 | 默认 | 用途 |
|---|---|---|---|
competition |
11 种赛项 | cumcm |
决定竞赛规则、默认页数、LaTeX 模板 |
problem_id |
A/B/C… | 空 | 题号,写进参数和规则段 |
title |
任意字符串 | 空(取目录名) | 论文标题 / 赛题简称 |
max_pages |
正整数 | 赛项默认 | 正文页数目标(下限),不含摘要/目录/参考文献/附录/AI 声明 |
figure_style |
default / nature |
default |
数据图风格 |
flowchart_engine |
drawio / html |
drawio |
流程图引擎;drawio 产物可拖拽编辑 |
diagram_style |
mono / plain / modern |
mono |
流程图版式,仅 html 引擎生效 |
rich_mode |
true / false | false |
丰满模式:正文 40-60 页、30+ 图、摘要 1500-2200 字 |
validation_mode |
strict / fast |
strict |
strict 含论文数据真实性核对;fast 跳过复核和深度自修 |
enable_comp_review |
true / false | true |
是否插入逻辑对抗复核步 |
ai_disclosure |
off / none / used |
off |
AI 声明:off 不写且不许残留;none 一句话 |
skip_figures |
true / false | false |
跳过两个图表步 |
skip_drawio |
true / false | false |
只跳过流程图步 |
flow_per_problem |
true / false | false |
逐问流程图 |
min_figures / min_tables / min_models |
整数 或 auto |
auto |
数量下限参考,写进 CLAUDE.md 供技能自检 |
custom_requirements |
自由文本 | 空 | 自定义要求,最高优先级,会进 CLAUDE.md |
可选:生成概念图 / 机理图 / 逐问框架图¶
数据图和流程图都是全本地的(matplotlib / 本机浏览器渲染),不需要任何 key。只有「概念图 / 场景图」这类需要图像模型,工作区里已经带了配置文件:
<workspace>/_utils/_gpt_image_config.json
{
"api_key": "",
"base_url": ""
}
api_key 从中转站或官方取得;base_url 中转站给接口地址就填,留空则用官方 https://api.openai.com/v1。也可以不改文件,直接设环境变量 GPT_IMAGE_API_KEY / GPT_IMAGE_BASE_URL,环境变量优先级更高。检查是否配好:python _utils/gpt_image.py --check。没配也能跑,规划里的概念图会被自动跳过,不影响其余步骤。
场景图和机理图分别注入固定风格(MCM Academic Illustration / Scientific Mechanism Diagram),你只需写内容主题。逐问框架图(--style framework)默认关闭,只有 flow_per_problem: true 且 custom_requirements 里明确写了用 image 才会规划。
适用场景与注意¶
适合谁:在 DSH 里做数学建模竞赛、需要可复现的赛题到论文流水线的用户;想用 agent 产出结构化 LaTeX 论文、又要求中间产物可验收的场景。
注意事项:
- 插件以当前 DSH 进程权限运行,安装第三方 bundle 前应先检查源码与许可证。许可证为 MIT。
- 编译 PDF 依赖 XeLaTeX,没有 TeX 环境时第 08 步会失败;中文模板还需要系统中文字体。
- 数据图的第 04 步需要 Python 3.10+ 且
import matplotlib可用。 flowchart_engine=html额外依赖 Chromium 内核浏览器。- 20 个开关中
max_pages是正文页数下限,不是全文上限,避免按「不超过 N 页」来理解。 custom_requirements优先级最高,写进 CLAUDE.md,子代理会照它执行。- 升级 DSH 后若 bundle 显示未启用,重新启用即可。
结尾¶
这个插件的价值在于把建模竞赛的一次性长任务拆成 8 个有闸门的步骤,每步产物落盘、对账后再进下一步,降低返工成本。它仍依赖本机 LaTeX、Python、浏览器等环境,且是社区作者维护的工作流,不是 DeepSeek 官方应用。你可以通过目录页或 GitHub 仓库查看完整说明并装来试用。
目录页:https://www.skillhub.cn/plugins/xzwwwwww/dsh-mathmodeling-workflow
GitHub:https://github.com/xzwwwwww/dsh-mathmodeling-workflow