OrinVoss/dsh-math-team
DSH Math Modeling Team Plugin Pack: 2 role agent presets (modeling-coding / paper) for DeepSeek Harness, multi-folder Git collaboration + vision sub-agent; includes a full run on 2023 CUMCM-C. | DeepSeek Harness 数学建模团队插件包:2 套岗位Agent预设(建模编程+论文)、多文件夹协同+识图子代理,含2023国赛C题全流程跑通示例。
安装Install
dsh plugin --profile web add github:OrinVoss/dsh-math-team
把 OrinVoss/dsh-math-team 加入你的 DSH 配置(web profile)即可启用。
READMEREADME
DSH 数学建模团队插件包
🌍 English: README_en.md — bilingual docs: team-collaboration.md · vision-subagent.md · attribution.md · sample-run.md
面向 DeepSeek Harness 的团队化数学建模工作流插件包。把参考成熟数学建模 Skill 仓库的方法论,整理成 2 套可直接安装的 Agent 预设(preset),配合团队 Gitee/GitHub 多文件夹协同,实现多人在各自独立工作区互不干扰地协作完成数学建模竞赛题。
本仓库挂载于 GitHub Topic:dsh-plugin。
这是什么
在 DeepSeek Harness 中,一个 **Agent 预设(preset)**就是一套岗位配置:包含 persona(角色职责)、可用的工具集、以及随预设安装的 Skills(岗位能力文档)。每个会话选择某个预设,就获得了该岗位的全部能力。
本包提供 2 套岗位预设:
| 预设目录 | 岗位 | 面向 | 核心能力 |
|---|---|---|---|
presets/model-code |
建模+编程 Agent | 2 名建模编程成员(共用) | 题目分析与建模、Python/MATLAB 求解、结果与图表产出、复现清单;含建模手/编程手/算法资料/可视化文档 |
presets/paper |
论文 Agent | 1 名论文成员 | 论文撰写(Word/LaTeX)、证据检索核验、独立评审质检门禁;含论文手/获奖评审/证据检索文档 |
每套预设包含
agent.cordis.yml— Harness 能力基线(源自部署的cordis预设,含 shell / fs / jobs / 子代理协作 / 网页搜索 / skill 加载等)preset.yml— 预设元数据(名称、描述)skills/<name>/SKILL.md— 岗位主技能(职责、流程、质量门禁、协同规则)skills/<name>/references/— 随预设安装的方法论文档(按需加载)
关键特性
- 团队协同:预设内置"Gitee 仓库三独立文件夹"协同协议(
member-a/member-b/member-c/),各成员只提交自己文件夹,互不干扰 - 质量门禁:建模终检 M1 / 最小可运行 P1 / 稳健性攻击终检 M2 / 编程终检 P2 / 证据大纲 W1 / 论文终检 W2
- M2 稳健性攻击终检:对每个核心模型做系统性"攻击"——提出模型 → 攻击模型 → 换方法验证 → 加误差 → 样本外检验 → 写清适用边界,防止"模型怀疑不足",把经不起追问的结论拦在论文之外(含 2023 C 题真实攻击案例)
- 识图子代理(强制图审门禁):当主模型不支持图像输入时,用
workflow派生一个当前环境可用的视觉模型子代理审查图表(自动探测inputModalities含image的模型,本环境已验证opencode-go/mimo-v2.5,但不硬编码模型名)。所有正式图在 P2/W2 前必须逐张经识图审核 PASS 并记录在案;FAIL 走「修改 → 重审」复验闭环直至 PASS——未走图审的图不能通过终检门禁 - 独立模型审查(对抗式评审):用与产出方不同厂商的模型做对抗式挑错——事实性/一致性/完备性/模型攻击/引用核验,编造数据当场拦截(本环境推荐
kimi-coding/k3-256k)
独立审查模型(对抗式评审)
为什么需要:同一个模型既生产又验收,天然缺乏批判距离,编造的数值、口径不自洽、前后矛盾自己发现不了。换一个不同厂商的模型从零审视,等于换了一双眼睛。
怎么做:用 workflow 的 agent(prompt, { provider, model }) 派发审查子代理,指定与产出方不同的模型(本环境推荐 kimi-coding/k3-256k,不硬编码——换部署后先用 llm 服务探测可用的不同厂商模型)。
审查维度:
- 事实性:headline 数值能否溯源到 results/ 与图表?有无编造?
- 一致性:口径/符号/结论在摘要、正文、表、图之间是否自洽?
- 完备性:是否覆盖全部子问题?
- 模型攻击:针对每个核心模型质疑假设(工具变量成立性/关键参数取值/基准依赖/缺货截断/份额稳定),核对论文是否给出适用边界
- 引用核验:参考文献真实存在且被正确引用?
拦截实例(2023 C 题跑题实录):论文初稿出现编造数值"0.78",独立审查发现该数在数据中不存在 → 拦截删除,改为诚实区间 (0.7,0.8)。
与 M2 的关系:M2(建模岗)在产出侧主动攻击模型;独立审查(论文岗)在交付侧用不同模型复检论文——两道防线,一前一后。
可复用全局 skill
仓库自带一个可做全局 skill 安装的目录(放到 DSH 共享用户 skill 根,任何预设都能发现):
skills/vision-subagent/— 识图子代理(视觉质检)。安装:
DSH 的# 复制到 DSH 共享用户 skill 根,任意预设会话自动发现 cp -R skills/vision-subagent ~/.agents/skills/vision-subagent # Windows: # Copy-Item -Recurse .\skills\vision-subagent "$env:USERPROFILE\.agents\skills\vision-subagent"dsh-skill-filesystem会扫描~/.agents/skills/、~/.dsh/skills/、项目.dsh/skills等共享根,放好后即被自动发现,无需改配置。
安装
前提
- 已安装 DeepSeek Harness(dsh)
- 关闭 dsh 进程,或安装后重启会话使其生效
方式一:一键安装脚本(推荐)
把 presets/ 复制到本机用户预设根目录:
# Windows
Copy-Item -Recurse .\presets\model-code "$env:USERPROFILE\.dsh\.agent-presets\model-code"
Copy-Item -Recurse .\presets\paper "$env:USERPROFILE\.dsh\.agent-presets\paper"
# macOS / Linux:复制到 $HOME/.dsh/.agent-presets/
mkdir -p "$HOME/.dsh/.agent-presets"
cp -R presets/model-code presets/paper "$HOME/.dsh/.agent-presets/"
方式二:手动复制
将 presets/model-code 与 presets/paper 两个文件夹原样放入 ~/.dsh/.agent-presets/,保持目录名不变。
验证安装
重启 dsh 并新开会话,预设选择器中应出现 建模编程 Agent 与 论文 Agent。用 agentPresets 服务可校验挂载:
await agentPresets.standingKeyFor('model-code') // 不抛错即成功
await agentPresets.standingKeyFor('paper')
快速开始(团队协同模式)
- 在 Gitee/GitHub 建一个空私有仓库(团队共享)
- 首次 clone 后按
docs/团队协同.md初始化member-a/ member-b/ member-c/三文件夹基线 - 2 名成员开
model-code预设会话在各自独立工作区 clone,分别产出建模+编程交付物到自己的member-*文件夹并 push - 论文成员开
paper预设会话,git pull拉取 A、B 交付物,在member-c/撰写论文并 push - 全程只提交自己那个
member-*文件夹,互不干扰
各岗位的开工口令模板见 docs/团队协同.md。
完整工作流(两套预设 + 团队协同)
流程图(细化版)
flowchart LR
subgraph team["团队(3 人 · 3 独立工作区)"]
direction TB
A["成员 A(model-code 预设)"]
B["成员 B(model-code 预设)"]
C["成员 C(paper 预设)"]
end
subgraph mc["📐 建模编程岗(model-code)"]
direction TB
S1["① 建模阶段<br/>读题 → 检查附件 → 拆子问题<br/>→ 选模型 → 设计求解与验证方案"]
G1["M1 建模终检<br/>题目要求有无遗漏?<br/>子问题覆盖?口径正确?"]
D1["交付:题目分析报告.md<br/>术语表格.md"]
S2["② 编程起步<br/>数据准备(清洗/退货/异常)<br/>→ 最小可运行代码 → 真实运行"]
G2["P1 最小可运行<br/>能出真实结果?"]
S3["③ M2 稳健性攻击终检<br/>识别攻击点 → 换法验证 → 加区间<br/>→ 样本外检验 → 写适用边界"]
G3["M2 通过标准<br/>攻击清单/换法/区间/样本外<br/>/适用边界 五样齐备"]
S4["④ 全量计算与出图<br/>三类图(raw/process/result)<br/>每类≥3 张覆盖全部子问题"]
S5["⑤ 图表质检<br/>识图子代理逐张审核(强制)"]
G4["P2 编程终检<br/>真实结果 · 复现清单完整<br/>未走图审的正式图不过"]
D2["交付:results/ 结果表+复现清单.json<br/>figures/ 三类图"]
S1 --> G1 --> D1 --> S2 --> G2 --> S3 --> G3 --> S4 --> S5 --> G4 --> D2
end
subgraph pp["📄 论文岗(paper)"]
direction TB
T1["① 拉取 A/B 交付物<br/>git pull member-a/b"]
T2["② 建立证据支撑<br/>读分析报告/results/figures<br/>逐子问题记录证据清单 + 登记缺口"]
T3["③ 证据检索与核验<br/>多源检索 → 综合去重 → 交叉核验引用"]
T4["④ W1 证据大纲<br/>论文结构 × 证据映射<br/>+ 模型辩护清单(对应 M2)"]
G5["W1 通过标准<br/>每章有证据 · 无孤立结论<br/>模型辩护清单齐备"]
T5["⑤ 撰写论文<br/>Word(OMML)/ LaTeX(可选)<br/>官方模板适配 → 渲染 PDF"]
T6["⑥ 图表质检<br/>识图子代理逐张审核(强制)"]
T6b["⑦ 渲染 PDF 逐页审查(强制)<br/>每页转图 → 识图子代理逐页审<br/>表格超限/异常字体/过小字体/排版/空白页"]
T7["⑧ 独立审查<br/>不同厂商模型对抗式评审<br/>(kimi-coding/k3-256k)"]
G6["W2 论文终检<br/>公式↔结果一致 · 无空表空图<br/>编号引用连续 · 适用边界已写清<br/>图审记录在案 · 渲染审查PASS · 独立评审 PASS"]
D3["交付:完整论文.docx/pdf<br/>评审记录.md · 代码附录 · AI使用声明"]
T1 --> T2 --> T3 --> T4 --> G5 --> T5 --> T6 --> T6b --> T7 --> G6 --> D3
end
D2 -->|"git add member-a/b<br/>commit · push"| REPO["Git 仓库<br/>member-a / member-b / member-c"]
REPO -->|"git pull(只读他人文件夹)"| T1
V1["🖼️ 识图子代理(全局 skill)<br/>探测视觉模型 → read_image<br/>FAIL → 修改 → 重审 → PASS"]
V2["⚔️ 独立审查模型<br/>事实性/一致性/完备性<br/>模型攻击/引用核验"]
V1 -.-> S5
V1 -.-> T6
V2 -.-> T7
门禁检查项明细
| 门禁 | 所属岗 | 检查什么 |
|---|---|---|
| M1 建模终检 | 建模编程 | 题目要求是否全部有对应模型/方案;子问题有无遗漏;约束与评价口径是否理解正确 |
| P1 最小可运行 | 建模编程 | 全量计算前先跑通最小可运行代码,确认能出真实结果 |
| M2 稳健性攻击终检 | 建模编程 | 核心模型经受系统性攻击:识别威胁(3-5 个攻击点,如工具变量成立性/弹性取值/基准依赖/缺货截断/份额稳定)→ 换方法验证 → 加不确定区间 → 样本外检验 → 写清适用边界;攻击清单五样齐备才过 |
| P2 编程终检 | 建模编程 | 所有子问题有真实运行结果与图表;数字有源;复现清单完整;全部正式图经识图审核 PASS 且记录在案 |
| W1 证据大纲 | 论文 | 论文结构 × 证据(图/表/结论)映射;无孤立结论;含模型辩护清单(对应 M2 攻击结果) |
| W2 论文终检 | 论文 | 公式↔结果一致;无空表空图;图表覆盖全部子问题;编号引用连续;参考文献双向对应;模型适用边界已写清;全部配图经识图审核 PASS 且记录在案;渲染 PDF 逐页审查 PASS 且记录在案(表格超限/异常字体/过小字体/排版/空白页);独立评审结果并入 |
强制图审 / 渲染审查 / 独立审查(贯穿全局)
- 识图子代理(强制图审门禁):主模型不读图时,自动探测
inputModalities含image的视觉模型(本环境已验证opencode-go/mimo-v2.5,不硬编码),用workflow派生视觉子代理逐张审核正式图(标题/坐标轴/图例/数据/空白遮挡/是否支撑结论)。FAIL → 按缺陷修改 → 重审,循环直至 PASS;每次"FAIL 原因 → 修改动作 → 重审结果"记录在案。P2 和 W2 都强制:未走图审的图不能通过终检门禁。 - 渲染 PDF 逐页审查(强制):成稿 PDF 后,把每一页渲染成图片(pdftoppm/PyMuPDF,300 DPI),用识图子代理逐页审查——表格超限/溢出/截断、异常字体(乱码/缺字)、过小字体不可读、排版不规范(重叠/错位/孤行孤页)、空白页/重复页、页眉页脚异常、图片模糊裁切、分页不合理。FAIL → 修正排版 → 重新渲染 → 重新逐页审,直至全部 PASS;记录留痕。W2 强制:未做渲染逐页审查的论文不通过。(更多检查项见
自审框架.md、LaTeX格式规范.md) - 独立审查模型(对抗式评审):用与产出方不同厂商的模型(本环境推荐
kimi-coding/k3-256k)做对抗式评审——事实性(数值可溯源/无编造)、一致性(口径符号自洽)、完备性(子问题覆盖)、模型攻击(质疑工具变量成立性/参数取值/基准依赖/缺货截断/份额稳定)、引用核验(真实存在且引用正确)。W2 前必须执行,编造数据当场拦截。
团队协同要点
- 3 个独立工作区 + 1 个 Git 仓库 + 3 个文件夹(member-a/b/c),三人各提交自己的文件夹,互不干扰
- 交付物契约:建模编程岗 6 件(分析报告/术语表/脚本/results/figures/复现清单);论文岗 4 件(证据大纲/论文/评审记录/AI声明)
- 有界迭代:单轮评审最多 2 轮修复;预算耗尽输出决策备忘,绝不无限打磨
文档
- 团队协同说明 — 三文件夹协同协议、交接契约、各岗位开工口令
- 识图子代理 — 主模型不读图时的视觉审查方案
- 方法论来源 — 两套预设吸收的参考仓库内容清单
- 示例题目全流程跑通记录 — 用 2023 国赛 C 题真实跑通「建模→论文→评审」完整链路的验证记录
English docs: team-collaboration.md · vision-subagent.md · attribution.md · sample-run.md
示例展示
用 2023 高教社杯 C 题真实跑通的成果展示(完整链路与数据见 全流程跑通记录):
- 论文示例
examples/论文示例.pdf— 33 页成稿论文(XeLaTeX 编译 + 18 幅正式图) examples/figures/收录 15 幅成果图,涵盖 原始数据(raw) / 建模过程(process) / 最终结果(result) 三阶段,覆盖 Q1–Q3 全部子问题:
Q1 品类/单品销量分布与关系


![]() |
![]() |
| 季节因子(夏/春节双高) | 周内因子(周末高峰) |
![]() |
![]() |
| 品类聚类 | 原始日销量时序 |
Q2 品类量价与补货定价

![]() |
![]() |
| 价格弹性估计 | 品类成本加成定价 |
Q3 单品补货与定价
![]() |
![]() |
| 入选单品补货量 | 单品收益 |
![]() |
![]() |
| 单品定价 | 满足率-收益灵敏度 |
方法论来源
本包的岗位方法论文档整理自(仅文档,脚本/工具源码未搬运):
- XiaoMaColtAI/math-modeling-skill — 三阶段工作流(建模/编程/论文)、质量门禁、算法资料、科学可视化规范、复现清单
- sweetcornna/mathodology — 获奖评审门禁(盲评/有界迭代)、证据检索、完整工作流方法论
License
MIT(最宽松许可证,仅要求保留版权声明)










nexu-io/open-design
ruvnet/ruflo
amruthpillai/reactive-resume
esengine/DeepSeek-Reasonix
volcengine/OpenViking
Molunerfinn/PicGo