Math Modeling AI Agent Flow
AI Agent workflow for mathematical modeling competitions (CUMCM 国赛 / MCM-ICM 美赛). Solver → Paper → Finalizer → Growth. 数学建模全流程 AI 助手。
为数学建模比赛准备的四阶段 AI Skills。 从拿到赛题,到建模、论文、提交检查,再到赛后复盘。
🔍 主要特性
打比赛往往会遇到以下这些事:
队友彻底摆烂,建模、代码、论文突然全压到你一个人身上;
第一次参赛,题目每个字都认识,连起来却不知道第一步该干什么;
网上搜了一大堆提示词和模板,发现又麻烦又难用;
问 AI 问出十几套模型,每套都说得头头是道,却不知道哪套真的值得往下做;
模型终于跑完,又开始和格式、公式、图表、文风、语法死磕;
熬到提交前最后几个小时,还要面对另一个问题:
现在文件夹里的这些东西,到底能不能放心交?
这些都是我自己打数学建模时想解决的问题。
所以,我把一场比赛拆成了四个 Skills:
Solver → Paper → Finalizer → Growth
Solver 帮你把题做明白。 Paper 把模型和结果整理成一篇能讲清楚的论文。 Finalizer 在提交前检查数字、附件和最终版本。 Growth 在比赛结束后,把这三天真正学到的东西变成下一次还能用的经验。
四个 Skill 可以单独使用,也可以通过阶段交接一路接着跑下去。
Solver — 先把题做明白
Solver 负责建模阶段:
读题 → 发散方案 → 查证 → 选择模型 → 求解 → 验证 → 攻击结果 → 交接
拿到一道题以后,它会先保留多条可能的建模路线,再通过数据、约束、文献和实际求解结果逐步收敛。
得到一个候选答案以后,检查还没有结束。
Solver 会继续追问:
- 参数的数量级合理吗?
- 约束真的全部满足了吗?
- 换一组初值还成立吗?
- 有没有局部最优?
- 有没有被忽略的经典失败模式?
- 主动寻找这个答案的漏洞以后,它还能站得住吗?
通过验证的关键结果会被整理成明确的结果与证据,再交给 Paper 使用。
这样下一阶段拿到的就是一份已经整理过的建模成果。
Paper — 把做出来的东西讲明白
模型能跑,只解决了比赛的一半问题。
Paper 读取 Solver 已经确认的结果,把:
问题
↓
假设
↓
模型
↓
算法
↓
结果
↓
结论
整理成一条能够顺着读下去的论文主线。
它会重点处理几类很常见的问题:
公式已经改了,正文还在解释旧模型;
程序跑出了新结果,论文里还留着昨天的数字;
图表和正文说的是两件事;
模型本身没问题,论文却没把“为什么这样做”说明白。
因此,Paper 会让正文、公式、图表、算法和最终结果沿着同一份已确认事实继续展开。
Solver 负责把结果做出来,Paper 负责把过程讲清楚。
Finalizer — 提交之前,把所有东西重新查一遍
数学建模最后几个小时,经常死在一些特别小的问题上:
旧结果还留在正文里;
论文里的数字和附件对不上;
图已经换了,图注没换;
支撑材料漏了文件;
最终版、终稿版、终稿最新版同时躺在一个文件夹;
三个人都觉得“这个应该有人检查过了”。
Finalizer 专门负责这个阶段。
它会围绕最终提交物检查:
关键数字、正文、图表、附件、文件完整性和版本一致性。
确认过的内容进入冻结状态,发现冲突的地方继续追溯来源。
直到你能够回答一个很简单的问题:
我现在准备提交的这些文件,彼此说的是同一件事。
Growth — 打完比赛,把经验留下来
比赛结束以后,文件通常都会留下来。
比如一份 PDF。
几百行甚至几千行代码。
一堆图表。
几十轮 AI 对话。
还有虚假的收获感
过一个月再回头看,却经常只记得自己熬过夜。
Growth 会读取前三个阶段留下来的过程,把比赛重新拆开:
- 当时为什么选择这个模型?
- 哪一步判断做对了?
- 哪些结果有充分证据,哪些只是刚好运气不错?
- 时间主要浪费在哪里?
- 哪些错误下一场比赛还可能重新出现?
- 哪些数学、算法和写作知识值得比赛结束后继续补?
- 下一次遇到类似问题,第一步应该怎么做?
我希望最后留下的不只是一份赛后总结。
还有把一次比赛整理成下一次可以继续使用的经验。
四个 Skill 怎么接起来?
每个阶段解决一个明确的问题,并把确认过的信息交给下一阶段。
Math Modeling Skills
赛题
│
▼
Solver
思路发散 / 模型选择 / 求解 / 验证 / Self-Attack
│
│ 结果 + 证据 + Handoff
▼
Paper
论文结构 / 公式 / 图表 / 结果解释
│
│ Paper Handoff
▼
Finalizer
关键数字 / 附件 / 版本 / 一致性检查
│
▼
最终提交
│
▼
Growth
复盘 / 知识缺口 / 失败模式 / 下一次行动
长任务最容易出现的问题之一,是上下文越来越多以后,早期事实开始发生漂移。
所以四个 Skill 各自保存清晰的阶段目标,并通过 Handoff 传递已经确认的信息。
这套工作流怎么做判断?
先发散,再收敛
Solver 会先保留多个候选方向,再通过查证、求解和验证逐步淘汰。
第一个能跑通的模型只是候选方案。
验证自己初步结果的正确性
得到候选解以后,Solver 会主动寻找失败模式、异常参数、约束漏洞和局部最优。
一个经得住攻击的结果,比一句“结果合理”更有价值。
让关键事实有明确来源
关键结果通过阶段产物继续传递。
Paper 和 Finalizer 都围绕已经确认的数据工作,减少同一个指标在代码、论文和聊天记录里出现多个版本。
给比赛设置停止条件
比赛时间有限。
当模型已经达到当前证据能够支持的可信程度以后,工作重心会逐步转向论文、验证和最终提交。
该冻结的结果就冻结。
Quick Start
四个 Skill 可以分别安装。直接交给你的agent叫他帮你安装即可。(Claude code,codex等均可使用)
Solver
npx skills@latest add mantou6666/Math-Modeling-Agent-Flow --skill math-modeling-solver --global --yes
Paper
npx skills@latest add mantou6666/Math-Modeling-Agent-Flow --skill math-modeling-paper --global --yes
Finalizer
npx skills@latest add mantou6666/Math-Modeling-Agent-Flow --skill math-modeling-finalizer --global --yes
Growth
npx skills@latest add mantou6666/Math-Modeling-Agent-Flow --skill math-modeling-growth --global --yes
安装后,你可以从当前最需要解决的问题开始:
刚拿到赛题 → Solver
模型已经完成 → Paper
论文基本完成 → Finalizer
比赛已经结束 → Growth
也可以从 Solver 开始,沿着完整流程一路运行:
Solver → Paper → Finalizer → Growth
使用边界
这些 Skills 可以辅助建模、验证、论文整理、提交检查和赛后复盘。
它们不会替你承担最终判断。
数学模型是否成立、数据是否可靠、引用是否真实、结论是否能够解释,都需要参赛者自己确认。
不同比赛对 AI 工具的允许范围也不同。正式使用前,请阅读对应赛事当年的规则。
最终提交的每一个模型、数字、引用和结论,都应该是你自己能够解释的内容。
如果连自己都说不清楚,就不要交。
修改与二创
本项目使用 MIT License。
如果你希望调整工作流、修改 Skill 行为或者做成更适合自己的版本,可以直接 Fork 后自行修改和发布。
为什么做这个项目?
最开始,我只是想把自己打数学建模时反复遇到的问题解决掉。
做着做着,我发现很多时间其实消耗在一些非常具体的地方:
AI 给出了太多方向,却没人负责收敛;
模型已经更新,论文还在引用旧结果;
任务跑了几十轮以后,前面的事实开始慢慢漂移;
得到一个不错的答案以后,很少有人继续主动找它的问题;
比赛结束以后,踩过的坑跟着聊天记录一起被忘掉。
于是这些问题一个个变成了现在的四个 Skills。
Solver 管建模。
Paper 管论文。
Finalizer 管提交。
Growth 管真正学到了什么。
最后分享一句我很喜欢的话:
我们不是一定要先成长再开始。
我们也可以选择在开始中成长。
⭐️ 如果这套四阶段流程帮到了你
这套工具完全开源(MIT License),是一个大学生熬夜手搓出来的。
如果你觉得「先发散 → 再收敛 → 再攻击自己的结果」这套思路救了你的命,或者准备比赛时想把它接着用下去,欢迎在 GitHub 右上角顺手点个 Star ⭐️。
你的每一个 Star,都是这个牛马大学生继续更新这套工具的燃料。
No comments yet
Be the first to share your take.