2026年7月4日

数学建模:AI 大练兵与抽奖

一篇写给数学建模新手的 AI 工作流笔记:从电脑基础、项目结构到 Claude Code、DeepSeek 和建模 Skill。

数学建模AIClaude CodeDeepSeek学习笔记

光电24级 任作霖

我对于 AI 的感想后续可能有更新,欢迎大家访问我自己的服务器网站:ZL Ren’s Blog

文章一共两个部分,前3点是我写的感想与思考,后面GPT写的教程,内容很基础,面向没怎么接触过电脑的同学们,篇幅限制难免会有疏漏。如果你觉得你有更好的想法或者问题,也欢迎私聊我。要是认为你做的更好也可以写一下相关的教程分享出来。

在此特别感谢我的数学建模队友 电信24级林感 光电24级李威卓,每次数学建模就是我们一起学习AI使用的过程。

笔者前言

我在网上看到有关AI的话题时,经常会看到一句话:学得越慢,学得越快。同学们可能一开始不太理解这句话是什么意思,我先举个例子。

我读高二那年,也就是2022年,ChatGPT因为帮一位国外的文科大学生完成毕业论文而引起关注。后来教授发现这篇论文写得太好,和这位学生平时的水平严重不符,于是在调查原因时发现了GPT,并向大众提出了疑问。在我心目中,从这个问题登上知乎热榜第一的那一刻起,人类的AI时代就已经开启了。

之后AI的发展速度远超很多人的想象。2022年的AI主要还只是能写一些文稿;到了2024年,AI已经可以比较准确地读取图片里的全部内容;到了2026年,无论是高数题,还是类似模电这种包含复杂电路图的题目,最新一代AI模型基本都已经能处理得相当不错。当然,这里有一个前提:你用的是国外最新发布的顶级模型,在思考和视觉方面,国内的模型大概落后1年的水平,不过在视频生成方面国内模型一直全球第一。

我写这篇文章的时间是2026年7月3日。在这个时间点,OpenAI已经发布了GPT5.6,另外,此前遭美国政府禁用A\的Fable5也重新发布。这两个模型的能力都非常强,很多任务基本可以做到“一遍过”。但问题也很现实:它们非常贵,而且大多数同学其实很难直接接触到。

这篇文章选择DeepSeek,一方面是因为我想推荐一下国产模型,也是因为市面上ds的生态还不错,教程非常多,大家如果看不懂我这个,也可以去B站搜或者网上找。国产模型现在真的已经非常不错了。在中国整体算力不如国外御三家(OpenAI、google、A\)任意一家的情况下,还面临美国芯片制裁和后发劣势,国产AI仍然能发展到今天这种百花齐放的状态,我实实在在为中国感到骄傲。除了DeepSeek V4 pro,在我写这篇文章的时候,另一个国产模型GLM5.2也同样值得推荐(最新的排名榜单可以去 Agent Arena | AI Agent Performance Leaderboard看看,这个里面介绍了每个模型的特长)。

另一方面,从现实使用角度来说,现在大家如果想接触国外模型,基本只有两个渠道。第一个渠道是自己订阅国外AI的月费会员,同时准备一个稳定的节点和国外手机号(每个月还没用上AI就要花30多)。如果你像我一样愿意折腾,当然可以自己去寻找相关信息。第二个渠道是使用中转站。但中转站可能涉及潜在的信息泄露问题,也可能存在“给模型掺水”的情况,还有敏感的黑灰产问题;另外我也不想在这里给任何平台打广告。所以,如果大家确实有使用国外AI的需求,可以自行了解和判断,然后如果要使用,我的建议是gpt5.5-high+codex-desktop或者opus4.6+claude code,这2个组合还是很好用的。

本文之所以选择claude code,绝对不是我对于A\这个“冷战思维”公司有什么好感,只是codex是要用gpt才好用或者说才能用,而且其他模型公司对于这个claude code这个框架适配性更好,我也推荐大家在掌握vibe coding基础上后去使用codex(这个使用方式比较敏感,自己寻找使用方式,如果你不找就说明你没有这个需求罢了,网上教程很多)。

总之,这篇指南不会一上来就推荐大家去追最贵、最新、最难接触的模型。我的目标是首先教大家AI相关的电脑知识,因为你不可能指望一个连电脑都不会用的人拿很好的奖项。然后用相对现实、相对容易获得的工具,帮助大家理解如何把AI真正用到数学建模中,而不是只停留在网页聊天和复制粘贴的层面,掌握基本的技能后,无论AI发展多快,我们都能有自己的方式去驾驭,站在巨人的肩膀上,我们慢慢掌握的技能,在AI性能提升下能获得快的提升,

教程与资料

AI学习与环境配置

学习AI的最好方法就是让AI教你怎么用它,下面是我精选的一些环境搭建教程,我本人是看 菜鸟教程 学习的,我建议各位也可以好好利用里面的教程。

Claude Code 安装 + Skill 配置指南(简要版):

https://api.xiaoheihe.cn/v3/bbs/app/api/web/share?h_camp=link&h_src=YXBwX3NoYXJl&link_id=341871c68446

Claude Code 系统学习指南(最好这个教程的每个文章大概看过一遍,不可能你一点不了解就去使用):

Claude Code 教程 | 菜鸟教程

至于后面文章提到的skill安装可以让AI帮你安装,你可以直接复制github仓库地址让他给你装好。环境配置好了之后理论上全部问题都可以问AI。权限如果你看不懂的话默认无需审核,也永远不要忘了每次对话后记得配置git结构(可以理解成存档点,不知道这个是什么就问AI),方便回滚版本。

Codex 系统学习指南:

Codex 简介 | 菜鸟教程

附:claude code推荐使用cc-switch管理api-key,codex如果使用中转站推荐使用codex++管理api-key,永远不要让本地AGENT扫盘或者帮你请垃圾文件,否则可能造成不必要的损失,数据无价!

AI大模型的核心原理科普:

https://mp.weixin.qq.com/s/3Pcs0W-kaf2Pt73kobi5hw

文章提到的数学建模skill的github仓库链接:

https://github.com/zhnnky329/MathModeling-skills

要是你对AI或者技术感兴趣,也可以看看一些论坛,比如LinuxDO,v2ex,小红书,知乎等等(虽然跟我们专业关系不大就是😀),还有一些微信公众号,比如 鱼皮程序员,逛逛github 等等,我个人希望数模的AI使用能够惠及大创做项目的代码部分,主要让大家了解做项目的范式,这个也是我标题写AI大练兵的原因。


数学建模

我之前咸鱼买的清风数学网课:

【超级会员V1】通过百度网盘分享的文件:清风!
链接:https://pan.baidu.com/s/1DWlJkyM2e1Y9X6BZ15J-NQ?pwd=as89 
复制这段内容打开「百度网盘APP 即可获取」

公众号 有 数学建模老哥。

这些资料都是在AI时代之前的数学建模资料,讲的是各种数据处理的基本算法,还有matlab(学校为我们买了正版matlab👍,直接去mathworks用学校邮箱注册账号然后下载正版就行,尽量下载b版,去年或今年的都行),stata,SPSS的使用教程。学习这些基本算法,就跟你学微积分一样,有了微积分的基础,才能学习其他理工科内容,但是你要是基础数据处理算法都不知道,那确实只能纯让AI定方案了,自己没准备也别指望拿很好的奖(当然也有可能,毕竟数模在AI时代本来就有点纯抽奖),也别指望使用相同的AI,给你的回复会比那些懂建模的,会写专业AI提示词的回复更好(笑

另外,AI不懂创新,但是懂严谨(举个例子,我自己打美赛,AI修饰文章滴水不漏并声称O奖潜质,最终喜提S奖)。剑走偏锋的创新建模观点说不定会拿更好的奖,但是要是你基本算法都不明白,你自己是不是剑走偏锋,你自己也不知道,对吗?


写在前面:这不是“让AI替你建模”

很多同学第一次接触AI建模,最熟悉的方式就是打开网页或者用手机app(豆包,deepseek等),把赛题或者问题复制进去,然后等AI回答。这当然有用,而且非常方便。但是如果真的参加数学建模比赛,只靠这种“问一句、答一句”的网页AI,很快就会遇到瓶颈。

因为数学建模不是一道普通问答题。它不是问AI一句“这个题怎么做”,然后AI给一个答案就结束了。真正的数学建模是一个连续流程:读题、拆题、整理数据、建立假设、选择模型、写代码、跑结果、画图、分析误差、写论文、改格式、检查逻辑。中间还会不断返工,比如结果不对、代码报错、图片不好看、论文说不清楚。

所以这篇指南想讲的不是“怎么和AI聊天”,而是“怎么让AI真正进入你的建模工作流”。

这里我们会用到两个东西:

第一个是Claude Code(后面简称为cc)。你可以把它理解成一个能在你电脑项目文件夹里干活的AI助手。它不只是回答问题,还可以读文件、改代码、运行程序、看报错、整理结果。Claude Code官方文档也把它定义为一种agentic coding tool,可以读取代码库、编辑文件、运行命令,并和开发工具配合使用,你可以把他理解为一个模型与你交互的平台,跟APP差不多,有了这个你就能跟这个ai对话,让AI操作你的电脑,我们可以借用这个壳子,调用不同的模型,包括A\自家的fable,opus,sonnet,还有国产的deepseek,glm等(注:cc极其不推荐使用gpt)。

第二个是DSV4Pro,也就是DeepSeek-V4-Pro。这里我们主要把它当作ClaudeCode背后的模型大脑。DeepSeek官方API文档目前写明,DeepSeekAPI兼容OpenAI/Anthropic格式,模型名包括deepseek-v4-prodeepseek-v4-flash怎么配置见上面的链接

不过先说清楚:AI再强,也不是最终负责人。数学建模里最重要的判断,比如问题怎么抽象、模型假设是否合理、结果是否可信、论文逻辑是否站得住,仍然要由人负责。AI可以当队友,可以当工具人,可以当代码助理,可以当论文助理,但不能当甩锅对象,我们是站在巨人肩膀,不要以为你就这么高,没打好基础都是空中楼阁,甚至到最后提示词都不会写。我严厉一点说,自己一行代码不写,从头到尾用ai,就别把ai生成的当作自己的知识产权!!!

后面的内容由我写提示词,gpt5.5生成,配合菜鸟教程的指南一起看更佳。


1.先别急着学命令,先把电脑理解成一个厨房

我个人比较喜欢一个比喻:

网页AI像你去别人餐馆吃饭。

你坐在餐桌前,看看菜单,点一道菜,服务员把菜端上来。这个方式很方便,门槛很低,适合快速问问题、查概念、改句子、要灵感。但是它也有很多限制:菜单不是你定的,厨房你进不去,锅具你不能换,食材也不是你的。你想让它用你电脑里的某个Excel、某段Python代码、某张结果图,它其实并不能直接碰到,只能靠你复制粘贴。

本地Agent像你请厨师来你家做饭。

厨师到了你家之后,可以看到你的食材、你的锅、你的厨房、你的冰箱。你可以说:“这几个菜是现有数据,这口锅是Python,这个盘子是论文,这几张图是结果,你帮我把这一桌饭做出来。”这时候AI就不只是回答问题,而是能围绕你的真实项目持续干活。

对应到数学建模里:

你的电脑(准确说是命令行窗口)=厨房。
项目文件夹=操作台。
赛题PDF、数据表、论文要求=食材。
Python、Excel、VSCode=厨具。
Claude Code=上门厨师。
DSV4Pro=厨师的大脑。
Skill=提前写好的菜谱。

如果你把所有东西乱扔在桌面上,赛题PDF在下载文件夹,数据在微信文件夹,代码在桌面,论文在另一个盘,图片又不知道保存到了哪里,那么再厉害的AI也会很痛苦。就像厨师进你家以后发现菜在客厅,锅在卧室,盐在阳台,天然气还没开,那它当然做不好饭。

所以,使用ClaudeCode之前,最重要的不是马上背命令,而是先养成一个基本习惯:

每个建模项目都应该有一个干净、独立、结构清楚的项目文件夹。


注:下面2-23节由我写提示词,gpt生成。

2.新手最需要懂的几个电脑概念

这一章不是要把大家教成程序员,也不是要系统讲Windows使用教程。我们只讲几个以后一定会遇到的概念。你不需要马上精通它们,但至少要知道它们大概是什么。否则后面看到“打开终端”“进入项目目录”“用管理员身份运行”“编辑Markdown文件”这种话,很容易直接卡住。

2.1文件夹:项目的家

数学建模一开始,建议先新建一个总文件夹,比如:

MathModeling_Project/

不要把所有东西堆在桌面上,也不要一边下载一边乱改。一个项目就放在一个文件夹里,这样你自己找东西方便,AI找东西也方便。

推荐结构如下:

MathModeling_Project/
├─problem/      放赛题PDF、题目附件、比赛通知
├─data/         放原始数据和处理后的数据
├─code/         放Python代码
├─figures/      放生成的图片
├─paper/        放论文草稿、最终论文
├─notes/        放读题笔记、建模思路、分工记录
└─README.md     写项目说明和当前进度

刚开始不用追求特别专业,但至少做到一件事:数据、代码、图片、论文不要混在一起。

如果所有东西都乱放,就像厨房里食材、锅、碗、调料全堆在地上。你自己找东西会崩溃,ClaudeCode也很容易找错文件、改错代码、生成一堆乱七八糟的结果。

2.2路径:电脑找文件的地址

人找文件可能靠感觉:“我记得好像在桌面左上角。”但电脑找文件靠路径。

比如:

C:\Users\ren\Desktop\MathModeling_Project\data\data.xlsx

这就是一个路径。它的意思是:电脑从C盘开始,一层一层进入文件夹,最后找到data.xlsx这个文件。

以后你让ClaudeCode处理数据时,它也需要知道文件在哪里。如果你说“帮我分析那个表格”,但项目里有十几个表格,名字还都叫“新建MicrosoftExcel工作表.xlsx”,那它很容易搞错。

所以文件名尽量清楚,比如:

raw_population_data.xlsx
cleaned_population_data.xlsx
q1_prediction_result.csv

文件名不需要很高级,但要让人和AI一眼看出它大概是什么。

2.3当前文件夹:AI现在站在哪张操作台前

使用ClaudeCode时,有一个很重要的概念叫“当前文件夹”。你可以理解为:现在AI站在哪个操作台前干活。

比如你以后可能会看到:

cd MathModeling_Project
claude

这里的意思不是让你背命令,而是:

cd MathModeling_Project

相当于走进MathModeling_Project这个厨房。

claude

相当于把ClaudeCode这个厨师叫进来。

如果你在错误的文件夹里启动ClaudeCode,它看到的就不是你的建模项目。就像你把厨师叫到别人家厨房,它当然找不到你的食材。

所以以后用ClaudeCode时,一定要养成一个习惯:先确认自己是不是在正确的项目文件夹里。

2.4命令行:用文字操作电脑的地方

平时我们用电脑,大多数时候是用鼠标点:双击打开文件,点按钮运行程序,拖动文件复制粘贴。

命令行则是另一种操作电脑的方式:用文字让电脑做事。

比如:

python code/q1_model.py

这句话的意思是:让Python运行code文件夹里的q1_model.py

新手一开始看到命令行,可能会觉得它像黑客界面,其实没那么神秘。它只是把“点按钮”换成了“输入一句命令”。

ClaudeCode为什么离不开命令行?因为它要在你的电脑里干活,就需要能运行代码、查看文件、创建文件、读取报错。这些事情很多都发生在命令行里。

所以,命令行可以理解为:ClaudeCode进入你电脑厨房的门口,也是它和电脑沟通的地方。

2.5cmd和PowerShell:Windows里的两种命令窗口

在Windows电脑里,大家可能会看到两个常见名字:

cmd
PowerShell

它们都属于命令行工具,都可以输入命令让电脑做事。

cmd比较老,可以理解为Windows早期常用的命令窗口。

PowerShell更现代,功能更强,现在很多教程会默认使用PowerShell。

对于新手来说,暂时不需要纠结它们底层有什么区别。你只需要知道:

cmd和PowerShell都是命令窗口。

很多命令两者都能用,但有些命令写法可能不一样。

如果教程明确写PowerShell,那就打开PowerShell;如果教程写cmd,那就打开cmd。

在这篇指南里,我们默认使用PowerShell,因为Windows现在更推荐它,而且很多AI工具、开发工具教程也会用它。

2.6管理员身份:拥有更高权限的运行方式

有时候安装软件、修改环境变量、配置系统工具时,教程会说:

请用管理员身份运行PowerShell

这是什么意思?

普通打开软件,就像你是这个厨房的普通使用者,可以切菜、洗碗、做饭。

管理员身份运行,就像你拿到了房主权限,不仅能做饭,还能改水电、换灶台、装新设备。

所以管理员身份权限更高,但也更危险。你不应该随便用管理员身份运行来路不明的命令。

简单记住:

安装软件、修改系统配置时,可能需要管理员身份。

普通写代码、运行Python、使用ClaudeCode,一般不需要管理员身份。

看到网上教程让你用管理员身份运行时,要确认来源可靠,不要乱复制陌生命令。

如果不知道需不需要管理员身份,优先普通运行。只有明确报权限错误,或者官方教程要求时,再考虑管理员身份。

2.7Markdown:写给人看,也方便AI读的文本格式

Markdown是一种很轻量的文本格式。它本质上还是普通文字,但可以用一些简单符号表示标题、列表、代码块、加粗等结构,本文就是基于md编辑器typora然后转pdf生成。

比如:

# 一级标题

## 二级标题

- 第一条
- 第二条
- 第三条

**这里是加粗内容**

```python
print("Hello World")
数学建模里,Markdown特别适合用来写:

```text
README.md
notes/problem_reading.md
notes/data_report.md
notes/model_plan.md
paper/draft.md

为什么推荐Markdown?

因为它比Word轻便,比纯txt有结构,而且AI很容易读懂,并且市面上AI输出的文字你复制下来会发现就是md格式。你可以把读题笔记、建模方案、实验记录都写成Markdown文件。ClaudeCode读取这些文件时,也能很清楚地理解标题、列表、代码和说明。

可以简单理解为:

Word适合最终排版。

Markdown适合过程记录。

数学建模过程中,不要一上来就把所有东西都写进Word。前期的思路、实验记录、模型方案,用Markdown会更清楚,也更适合和ClaudeCode配合。

2.8README.md:给人和AI看的项目说明书

在项目根目录里,建议放一个README.md文件。

它就像贴在厨房门口的一张说明:

这个项目是什么?

现在做到哪一步?

每个文件夹放什么?

目前采用什么模型?

下一步要做什么?

比如可以这样写:

# MathModeling_Project

## 项目说明

这是一次数学建模训练项目,目标是完成赛题中的三个问题。

## 文件夹说明

- problem/:赛题和附件
- data/:原始数据和处理后的数据
- code/:Python代码
- figures/:结果图
- paper/:论文草稿
- notes/:读题笔记和实验记录

## 当前进度

- 已完成赛题阅读
- 已完成数据初步检查
- 正在设计问题1的模型

## 注意事项

- 不要修改原始数据
- 处理后的数据放到data/processed/
- 每次实验结果要记录到notes/

这样做的好处是,你自己过几天回来还能看懂项目进度,ClaudeCode也可以先读README.md来快速理解当前项目。

2.9一句话总结

这一章的重点不是让大家背概念,而是建立一个最基础的电脑工作意识:

文件夹是项目的家。

路径是文件的地址。

当前文件夹决定AI在哪里干活。

命令行是用文字操作电脑的地方。

cmd和PowerShell都是Windows里的命令窗口。

管理员身份代表更高权限,不要乱用。

Markdown适合记录建模过程。

README.md是项目说明书。

理解这些之后,再去用ClaudeCode,就不会觉得它是在一个神秘黑框里乱跑。你会知道它在哪里、能看到什么、正在运行什么、结果应该保存到哪里。

这时候,AI才真正从“网页聊天对象”变成了“能在你项目里干活的队友”。


3.网页AI和本地Agent到底差在哪

如果只是问一个概念,比如“什么是层次分析法”“线性规划和整数规划有什么区别”,网页AI已经很好用了。

但数学建模真正麻烦的地方通常不是“知道一个方法”,而是“把方法落地”。

举个例子。

你问网页AI:

请帮我用随机森林预测销量。

它可以给你一段代码。但是这段代码不一定知道你的数据文件叫什么、列名是什么、有没有缺失值、训练集和测试集怎么分、结果图保存在哪里。

你问ClaudeCode:

请阅读data/sales.xlsx,检查字段含义和缺失值,建立一个随机森林预测模型,把训练结果、误差指标和特征重要性图保存到figures/,并在notes/model_report.md里解释结果。

这时候ClaudeCode就更像在项目里干活。它可以先读文件,再写代码,再运行代码,再看报错,再修改代码,最后把结果保存到指定位置。

这就是网页AI和本地Agent的核心区别:

网页AI主要是聊天。

本地Agent主要是干活。

当然,干活也可能干错。所以人要检查它的代码、结果和论文逻辑,不能闭眼相信。


4.ClaudeCode是什么

ClaudeCode可以理解为一个能进入你项目文件夹的AI编程助手。它可以帮助你完成很多和建模有关的事情:

读赛题,提取目标、约束、变量、评价指标。

整理项目文件夹,建议数据、代码、论文怎么放。

阅读数据表,检查缺失值、异常值、字段含义。

写Python代码,比如数据清洗、拟合、预测、优化、可视化。

运行代码,根据报错继续修改。

生成图表,比如折线图、热力图、残差图、对比图。

整理实验结果,写成论文里的分析段落。

检查论文逻辑,比如前后符号是否统一、假设和模型是否对应。

它不是只能写代码。对数学建模来说,ClaudeCode真正有价值的地方是:它能围绕同一个项目文件夹持续工作。

你不用每次都把上下文重新复制给它。你可以让它读README.md,读notes/idea.md,读paper/draft.md,然后继续改。

官方文档里也提到,ClaudeCode支持通过CLAUDE.md记录项目说明、编码标准、架构决策和检查清单;也支持用Skill封装可重复工作流。


5.DSV4Pro在这里是什么角色

如果ClaudeCode是上门厨师,那么DSV4Pro就是厨师的大脑。

ClaudeCode负责进入项目、调用工具、读写文件、运行命令。

DSV4Pro负责理解问题、规划步骤、生成代码、解释结果、写文字。

也就是说:

ClaudeCode是工作环境。

DSV4Pro是模型能力。

你的项目文件夹是实际战场。

DeepSeek官方给出了ClaudeCode连接DeepSeek模型的环境变量配置方式。Windows用户可以通过设置ANTHROPIC_BASE_URLANTHROPIC_AUTH_TOKENANTHROPIC_MODEL等变量,把ClaudeCode的后端指向DeepSeekAnthropicAPI;官方示例里使用了deepseek-v4-pro[1m]deepseek-v4-flash等配置。

这里不建议大家死记网上某篇教程里的命令,因为模型名、价格、接口规则都有可能更新。真正要装的时候,以DeepSeek官方API文档和ClaudeCode官方文档为准。

你现在只需要理解一句话:

DSV4Pro不是另一个软件界面,而是ClaudeCode背后的模型大脑。


6.为什么我要推荐使用Skill完成数学建模

到这里,大家已经知道:

网页AI像去餐馆吃饭。

ClaudeCode像请厨师来你家做饭。

项目文件夹像厨房。

DSV4Pro像厨师的大脑。

那Skill是什么?

Skill就是一张固定菜谱。

数学建模比赛里,我们每次都会重复很多固定流程:

读题要提取什么?

建模前要检查什么?

代码结果要保存到哪里?

论文必须包含哪些部分?

每次跑实验后要记录什么?

哪些地方不能让AI瞎编?

如果这些要求每次都靠你手动提醒AI,很麻烦,而且容易漏。于是我们可以提前写一个数学建模Skill,让ClaudeCode每次处理建模任务时都按照这套流程走。

ClaudeCode官方文档对Skill的解释也类似:创建一个SKILL.md文件,把可重复的说明、清单、多步骤流程封装起来;Claude可以在相关场景自动使用它,也可以通过/skill-name直接调用。

我下面以github项目GitHub - zhnnky329/MathModeling-skills: 面向数学建模竞赛的 Claude Code / Codex Skills ,支持分阶段建模流程与 Python、MATLAB/北太天元代码分支。 · GitHub项目为例来介绍skill的使用。

它的作用不是“自动给出最终答案”,而是强制AI按照规范流程帮你建模。


7.新手不建议自己写Skill:先用现成的

前面我们说过,Skill可以理解成一张固定菜谱。它会告诉ClaudeCode:数学建模应该按什么流程走,哪些步骤不能跳,哪些东西必须检查,哪些内容不能瞎编。

但是这里要提醒大家一句:刚开始用ClaudeCode时,不建议新手自己从零开始写Skill。

原因很简单。你如果还没真正用ClaudeCode做过完整项目,就很难知道一个好Skill应该写什么。就像你刚开始学做饭,还没炒过几个菜,就让你写一本厨房管理规范,这肯定不现实。你可以写,但大概率会漏掉很多关键环节,比如代码审查、结果冻结、论文数字一致性、参考文献真实性、原始数据保护等等。

所以更合理的方式是:

先用现成的Skill。

先跟着成熟流程跑一遍。

等你真的知道哪里不顺手,再考虑自己改。

这里推荐一个现成项目作为例子:MathModeling-skills。这个项目是面向数学建模竞赛设计的一套ClaudeCode/CodexSkills。它不是让AI一键代写整场比赛,而是把AI放回“辅助”的位置,让使用者自己负责关键判断,比如选择什么方法、为什么选、结果是否可信。项目README里也明确说,这一版已经从“自动驾驶”改回“skills辅助”,主导仍然是使用者本人。

如果继续用厨房比喻来讲:

ClaudeCode是上门厨师。

DSV4Pro是厨师的大脑。

你的项目文件夹是厨房。

MathModeling-skills不是一张简单菜谱,而是一整套后厨流程:先检查食材,再试做小样,再决定主菜,再正式烹饪,再检查摆盘,最后还有几个人分别检查有没有漏菜、错菜、菜品说明对不上。

这比我们自己随手写一个modeling-pipeline要完整得多。


8.MathModeling-skills解决的是什么问题

很多同学以为数学建模翻车,是因为“模型不够高级”。其实很多时候不是。

真正容易出问题的地方往往是:

题目问的是A,队伍理解成了B。

没有跑baseline,上来就用复杂模型,最后没人能解释为什么这么做。

论文里写了一个数字,但回头查代码,发现没有任何脚本输出过这个数。

截止前一晚修了bug,但论文里还保留着修bug之前的旧结果。

AI生成了看似很自然的结论,但其实没有数据支撑。

参考文献看起来很像真的,但实际查不到。

MathModeling-skills这个项目的设计思路,就是把这些容易“悄悄发生”的问题用流程卡住。项目README中也提到,数模翻车常见原因包括误读题目、不跑baseline、论文数字无法追溯、bug修复后论文仍保留旧数字等;它把这些视为流程问题,而不只是建模能力问题。

所以它的价值不是“让AI变得无敌”,而是:

让AI不容易乱来。

让队伍不容易跳步。

让论文里的数字和代码结果能对上。

让关键判断回到人手里。

这一点非常重要。数学建模比赛不是比谁最会让AI瞎跑,而是比谁能把问题理解清楚、把模型讲明白、把结果做扎实。


9.这套Skill的大致流程

MathModeling-skills不是一个单独的Skill,而是一组Skills。项目README中写到,它目前包含28个Skill,并按建模阶段组织。它的整体流程大致是:

读题与分类

整理符号表和模型假设

审计和清洗数据

提出候选方法,并用真实数据跑小型PoC

由人决定最终方法

生成代码

代码审查

整理结果、稳健性分析、图表生成

冻结论文数字

撰写论文分节

润色、文献管理、一致性检查、完整性检查、最终QA

它里面有几个设计我个人觉得很适合数学建模。

第一个是workflow-orchestrator,也就是流程总管。它会跟踪每个子问题进行到哪一步,并检查当前阶段能不能进入下一阶段。项目README里也把它放在流程开头,用来确认环境并推进gate检查。

第二个是problem-parserproblem-classifier。这两个主要负责读题和分类,避免一上来就建模。对新手来说,这一步特别重要,因为很多题不是不会做,而是从第一步就读歪了。

第三个是data-auditor-cleaner。它会审计原始数据,并生成清洗后的副本。原始数据不要直接改,这个习惯非常重要。项目README里也强调原始数据data_raw/保持只读。

第四个是method-selector。它不会直接替你拍板选方法,而是给出候选方法,并要求每个候选方法都有不超过30行的PoC,在真实清洗数据上跑出具体结果。也就是说,不能只说“这个模型理论上很好”,还得先证明它在当前数据上真的能跑。

第五个是frozen_numbers.json。这个东西可以理解成论文数字的“冻结清单”。论文里出现的关键数字,应该能在这里找到来源。如果后面改了bug,数字变了,就要重新冻结,而不是在论文里手改。项目README明确说,论文中每个数字都须出现在frozen_numbers.json,且该文件不允许手工编辑。

第六个是最后的三个审计:consistency-auditorcompleteness-auditorquality-assurance-auditor。这相当于交卷前的三道检查。项目README中写到,三个独立审计必须全部通过,论文才能进入最终组装。

这套流程听起来可能比“让AI直接写论文”麻烦,但它更接近真正靠谱的数学建模工作流。


10.推荐安装方式:放进当前比赛项目里

对新手来说,我不建议一上来就全局安装。全局安装的意思是把这些Skill装到整个ClaudeCode环境里,以后所有项目都能用。这个方式当然方便,但对新手来说也更容易混乱。

我更推荐项目README里的方案A:把仓库克隆到当前比赛项目里使用。这样CLAUDE.md.claude/settings.json等项目规则会跟着当前项目走,不容易影响其他项目。项目README也把“克隆到比赛项目里”列为推荐方案。

假设你现在有一个数学建模项目文件夹:

MathModeling_Project/

建议你先在里面建立比赛资料的位置:

MathModeling_Project/
└─workspace/
  ├─problem/
  └─data_raw/

其中:

workspace/problem/放赛题PDF、题目说明、附件说明。

workspace/data_raw/放原始数据。

注意:原始数据不要改。后面AI如果要清洗数据,应该生成清洗后的副本,而不是直接修改原始文件。

然后在这个项目文件夹里打开PowerShell,执行:

git clone https://github.com/zhnnky329/MathModeling-skills.git .skills-tmp
Move-Item .skills-tmp\.claude .\.claude
Move-Item .skills-tmp\.codex .\.codex
Move-Item .skills-tmp\CLAUDE.md .\CLAUDE.md
Move-Item .skills-tmp\AGENTS.md .\AGENTS.md
Move-Item .skills-tmp\docs .\skills-docs
Remove-Item -Recurse -Force .skills-tmp

这里简单解释一下:

第一行是把项目下载到.skills-tmp这个临时文件夹。

后面几行是把ClaudeCode和Codex需要用到的Skill、规则文件、说明文档移动到当前项目。

最后一行是删除临时文件夹。

如果你看到网上教程使用的是:

mv
rm -rf

那一般是Linux/macOS或者GitBash风格的命令。在WindowsPowerShell里,更推荐使用上面这种Move-ItemRemove-Item写法。功能是一样的,只是命令写法更适合Windows新手。


11.安装完成后,项目大概长什么样

安装完成后,你的项目里不只是多了一个Skill文件,而是多了一整套规则和工作目录。项目README给出的workspace结构大致包括:

project/
├─planning/
├─methods/Qx/
├─code/
├─results/Qx/
├─robustness/Qx/
├─paper/
├─workspace/
│ ├─data_raw/
│ ├─data_clean/
│ └─archived/
└─scratch/

这些文件夹看起来多,但它们各有作用。项目README里也说明了这些目录的含义,例如planning/用于题目解析、分类、符号表和假设,methods/Qx/用于候选方法和最终方法解释,results/Qx/用于实验结果和冻结数字,paper/用于论文分节、图表和审计文件。

对新手来说,一开始不用全部记住。你只要先知道几个最关键的:

workspace/problem/:放题目。

workspace/data_raw/:放原始数据。

workspace/data_clean/:放清洗后的数据。

planning/:放读题、分类、符号表、假设。

methods/:放候选模型和最终模型说明。

code/:放代码。

results/:放结果、报告、冻结数字。

paper/:放论文相关内容。

scratch/:临时探索区,这里面的东西不一定保证可复现。

如果继续用厨房比喻:

workspace/data_raw/就是没动过的原始食材。

workspace/data_clean/就是洗好切好的食材。

planning/是菜单和备菜计划。

methods/是几种做法的试菜记录。

code/是正式烹饪步骤。

results/是每道菜做出来后的记录。

paper/是最后给评委看的菜单说明和成品介绍。

scratch/是临时试验台,里面可以乱一点,但不能把里面的东西直接当最终结果。


12.第一次启动ClaudeCode时怎么说

安装好Skill之后,用ClaudeCode打开当前项目文件夹。

新对话的第一句话不要问:

这个题怎么做?

这样太宽泛了,AI很容易直接开始给方案,甚至跳过读题和查数据。

更推荐按项目README给出的思路,先让它读规则,再调用流程总管。README中的中文开场示例是:

读一下 CLAUDE.md,然后调用 workflow-orchestrator。我们的题目在 workspace/problem/,按 gate 顺序走,不要跳步。

这个开场很重要。它相当于告诉AI:

先读项目规则。

先启动流程总管。

题目在workspace/problem/

按gate顺序走。

不要跳步。

也就是说,别让AI一进厨房就直接开火,先让它看菜谱、检查厨房、确认今天要做什么菜。


13.第一阶段:读题,不要急着建模

启动流程后,第一阶段应该是读题和分类。

这里对应的Skill包括:

problem-parser
problem-classifier
related-paper-analyzer
symbol-table-builder
model-assumptions-builder
data-auditor-cleaner

这些Skill主要做前期准备:题目到底问什么,每个子问题属于哪一类,有哪些数据可用,符号怎么统一,哪些假设是必要的,哪些假设只是为了简化。项目README也把这些放在第1阶段“前期准备”中。

你可以这样对ClaudeCode说:

请先按workflow-orchestrator的流程推进第一阶段。先调用problem-parser和problem-classifier,整理题目背景、每个子问题的目标、输入输出、约束条件、评价指标和可能的题型。不要写代码,不要直接推荐最终模型。

这一步的目标不是解决问题,而是确保大家理解的是同一个题目。

输出结果一般会落到planning/相关目录中。你们队伍应该认真看这部分,而不是直接跳过。尤其是:

每个问题到底要求输出什么。

有没有隐藏约束。

题目有没有指定评价标准。

每个附件对应哪个问题。

哪些地方需要自己做合理假设。

这一步做不好,后面代码写得再漂亮也没用。


14.第二阶段:查数据,让AI先看食材

读完题之后,下一步不要急着让AI写代码,而是先让它检查数据。

可以这样说:

请继续按workflow-orchestrator推进数据审计。调用data-auditor-cleaner检查workspace/data_raw/中的原始数据。请说明每个数据文件对应哪个子问题、字段含义、缺失值、异常值、单位、是否需要清洗,以及清洗后的数据应该保存到workspace/data_clean/。不要修改原始数据。

这一步相当于让厨师先检查食材:

食材有哪些?

有没有坏的?

够不够做这几道菜?

哪些要清洗?

哪些不能用?

哪些字段可能被理解错?

数学建模里很多错误都来自数据阶段。比如把单位看错,把年份当编号,把类别变量当连续变量,把缺失值当0,把某个附件用到了错误的问题里。

所以数据审计不能跳过。


15.第三阶段:让AI提出候选方法,但由人拍板

很多新手最容易犯的错误是:AI推荐一个模型,大家觉得听起来高级,就直接用了。

这很危险。

MathModeling-skills里面比较好的设计是:它不会让AI直接替你决定最终方法。method-selector会为每个子问题提出2到4个候选方法,并且每个候选方法都要配一个不超过30行的PoC,在真实清洗数据上跑出一个具体结果。PoC跑不通的方法会被标记为[REJECTED]并归档。最终选哪个方法、为什么选,仍然要由使用者在GateG2.5里写明。

你可以这样说:

请进入方法验证阶段。对每个子问题调用method-selector,提出2到4个候选方法。每个候选方法都要包含:适用原因、所需数据、预期输出、风险、不超过30行的PoC,以及在真实清洗数据上跑出的初步结果。不要替我们直接拍板最终方法。

这一步非常适合队伍讨论。

你们可以看AI给出的候选方法,然后自己判断:

哪个模型最容易解释?

哪个模型最容易跑通?

哪个模型对数据要求太高?

哪个模型适合放进论文?

哪个模型虽然高级,但可能不稳?

最后由人来写选择理由。

可以继续对ClaudeCode说:

我们选择Q1使用XXX方法,理由是:……请调用modeler-decision-logger记录这个决策。注意不要改写我们的理由,只做记录和格式整理。

这里不要偷懒。方法选择理由最好由人自己写。

因为评委真正看的不是“你用了多高级的模型”,而是“你为什么这么建模”。


16.第四阶段:生成代码,但必须审查

确定方法后,才进入代码阶段。

这时可以说:

请进入Q1的代码实现阶段。先调用model-code-analyzer规划实验目录和run_summary.json字段,再使用python-model-code-generator生成Python代码。代码应读取workspace/data_clean/中的数据,输出保存到results/Q1/experiments/round1/。生成后请运行代码,并记录运行日志。

如果你们使用MATLAB或者北太天元,也可以改成:

请进入Q1的代码实现阶段。目标语言使用MATLAB/北太天元。请调用matlab-model-code-generator生成兼容比赛环境的.m文件,避免使用LiveScript、AppDesigner等不一定支持的功能。

项目README中也写到,这套Skill同时支持Python和MATLAB/北太天元代码分支;其中python-model-code-generator会生成.pymatlab-model-code-generator会生成.m,并避免比赛环境可能不支持的MATLAB功能。

代码生成之后,不要直接相信。继续让它审查:

请调用code-reviewer审查刚才生成的Q1代码。要求输出具体审查文件,至少列出5条检查项,并标注对应的file:line。重点检查数据读取、变量含义、约束方向、随机种子、结果保存路径。

这一步对应厨房里的“试吃”和“检查火候”。不是做出来就完事,而是要看有没有夹生、有没有放错调料。


17.第五阶段:结果、稳健性和图表

代码跑通之后,不要急着把结果写进论文。

先让AI整理结果:

请调用result-report-generator整理Q1的实验结果。请比较不同方法或不同参数设置,标记[CHOSEN]、[BACKUP]、[REJECTED],并说明每个结果的含义和风险。

然后做稳健性分析:

请调用robustness-checker对Q1结果做稳健性分析。至少包括敏感性分析、误差分析、与baseline的对比。请把报告保存到robustness/Q1/q1_robustness_report.md。

再规划图表:

请调用figure-table-planner规划Q1论文中需要使用的图和表。请区分诊断图、对比图、论文图和附录图。诊断图不要放进论文正文。

最后生成论文图:

请调用math-figure-generator生成Q1论文图。要求图中文字不重叠、不超出画布,字号不能过小,生成后进行render_check。

项目README中提到,figure-table-planner会把图分成诊断、对比、论文、附录四类,诊断图不会进入论文;math-figure-generator会用matplotlib出图,并检查文字重叠、超出画布、字号过小等问题。

这一步很重要。很多论文不是模型差,而是图表混乱。图看不懂、字太小、图例挡住曲线、论文里没有解释图,这些都会影响评审观感。


18.第六阶段:冻结结果,再写论文

在写论文之前,先冻结数字。

可以这样说:

请调用solution-package-builder整理Q1的论文材料包,并生成frozen_numbers.json。之后论文中出现的关键数字必须从frozen_numbers.json中引用,不要手工编写或临时改动。

为什么要冻结数字?

因为数学建模最后经常出现这种情况:代码改了,结果变了,但是论文里的数字没改;或者论文手随手改了一个数,代码根本复现不出来。

frozen_numbers.json就是为了避免这种问题。它相当于成品菜的“称重记录”:论文里说这盘菜300克,就要能在记录里查到,不允许临时乱写。

冻结之后,再让AI辅助写论文:

请调用paper-section-writer,根据Q1的solution package和frozen_numbers.json起草Q1论文部分。注意:每个数值结果都要说明其意义,不能只报数字;不要夸大结论;需要人工判断的地方请标记为[需要人工填写]。

然后再润色:

请调用paper-polisher检查Q1论文部分,重点检查措辞是否过度、公式符号是否一致、结论是否有数据支撑。

如果涉及参考文献:

请调用reference-manager整理参考文献。要求核查引用真实性,不允许编造参考文献。

项目README中也说明,reference-manager会生成BibTeX并核查引用真实性,虚构引用会被判为blocking。

这一点一定要重视。AI编参考文献非常常见,而且编得很像真的。凡是论文里出现的文献,都必须能查到真实来源。


19.第七阶段:最终审计,不要自己感觉“差不多了”

数学建模最后阶段,最危险的想法就是:

“应该差不多了吧。”

这时候应该让Skill进入审计层:

所有Qx章节起草完毕。请依次运行consistency-auditor、completeness-auditor、quality-assurance-auditor。重点检查论文数字是否全部来自frozen_numbers.json,图表是否被正文引用,符号是否一致,所有问题是否回答完整,是否存在AI编造内容。

项目README中的常用后续指令也给了类似用法:所有Qx章节起草完毕后,依次跑consistency-auditorcompleteness-auditorquality-assurance-auditor

这三个审计可以理解成:

consistency-auditor:查前后是否一致。数字、文件名、符号有没有对不上。

completeness-auditor:查东西是否齐全。该有的review、audit、报告有没有漏。

quality-assurance-auditor:查整体质量。流程有没有跳步,有没有编造,有没有明显不靠谱的结论。

最终审计特别适合发现这类问题:

论文里写“如图3所示”,但图3不存在。

表格里的数字和代码结果不一致。

前面定义x_i,后面写成X_i

某个模型假设没有在后文使用。

某个结论没有数据支撑。

参考文献是AI编的。

摘要吹得太满。

某个小问没有真正回答。

这些问题不一定难,但非常容易扣分。


20.一套完整实战指令

下面给一套可以直接照着用的流程。注意,这里不再使用我们自己写的/modeling-pipeline,而是让现成项目里的workflow-orchestrator和各个Skill按阶段推进。

20.1开场

读一下CLAUDE.md,然后调用workflow-orchestrator。我们的题目在workspace/problem/,原始数据在workspace/data_raw/。请按gate顺序走,不要跳步。遇到需要人判断的地方,请先停下来问我们。

20.2读题

请调用problem-parser和problem-classifier,整理题目背景、每个子问题的目标、输入输出、约束条件、评价指标、可能题型和需要进一步确认的信息。不要写代码,不要直接推荐最终模型。

20.3整理符号和假设

请调用symbol-table-builder和model-assumptions-builder,建立全队统一的符号表,并区分必要假设和简化假设。请指出哪些假设需要我们人工确认。

20.4检查数据

请调用data-auditor-cleaner检查workspace/data_raw/中的数据。请说明每个文件对应哪个子问题、字段含义、缺失值、异常值、单位和清洗建议。不要修改原始数据,清洗后的数据保存到workspace/data_clean/。

20.5提出候选方法

请调用method-selector,为每个子问题提出2到4个候选方法。每个候选方法都要包含适用原因、所需数据、预期输出、风险、不超过30行的PoC,以及在真实清洗数据上跑出的初步结果。不要替我们直接决定最终方法。

20.6记录人工决策

我们决定Q1采用XXX方法,理由是:……请调用modeler-decision-logger记录这个决策。注意不要替我们重写理由,只做格式整理和追踪记录。

20.7生成代码

请调用model-code-analyzer规划Q1实验目录和run_summary.json字段,然后使用python-model-code-generator生成代码。代码读取workspace/data_clean/中的数据,结果保存到results/Q1/experiments/round1/。生成后请运行,并记录运行日志。

20.8审查代码

请调用code-reviewer审查Q1代码。要求生成审查文件,至少列出5条具体检查项,并标注file:line。重点检查数据读取、变量含义、约束方向、随机种子、结果保存路径。

20.9整理结果和稳健性分析

请调用result-report-generator整理Q1实验结果,并调用robustness-checker做敏感性分析、误差分析和baseline对比。请说明结果是否可信,以及是否需要迭代。

20.10生成图表

请调用figure-table-planner规划Q1图表,再调用math-figure-generator生成论文图。请区分诊断图、对比图、论文图和附录图,诊断图不要进入论文正文。

20.11冻结数字

请调用solution-package-builder生成Q1论文材料包和frozen_numbers.json。之后论文中出现的关键数字必须来自frozen_numbers.json,不允许手工编写或临时改动。

20.12写论文分节

请调用paper-section-writer,根据Q1的solution package和frozen_numbers.json起草Q1论文部分。每个数值结果都要解释其意义,不要只报数字。需要人工判断的地方请标记为[需要人工填写]。

20.13润色和文献检查

请调用paper-polisher检查措辞、公式、符号和结论是否一致。若涉及参考文献,请调用reference-manager核查引用真实性,不允许编造参考文献。

20.14最终审计

所有Qx章节起草完毕。请依次运行consistency-auditor、completeness-auditor、quality-assurance-auditor。重点检查论文数字是否全部来自frozen_numbers.json,图表是否被正文引用,符号是否一致,所有问题是否回答完整,是否存在AI编造内容。

21.新手最容易犯的几个错误

错误1:把Skill当成自动代写器

MathModeling-skills不是一键生成论文的工具。项目README里也明确写了,它不会一键生成整篇论文,不会编造数据、结果或引用,也不会在结果跑出来之前把数字写进论文。

正确理解应该是:

它是流程辅助工具,不是代写工具。

错误2:跳过workflow-orchestrator

很多人装完Skill以后,会直接调用某个Skill,比如上来就让python-model-code-generator写代码。

这不推荐。

最好先让workflow-orchestrator总管流程。因为数学建模不是单点任务,而是一整条链路。跳过前面的读题、数据审计、方法验证,后面代码再快也可能是错的。

错误3:不写人工选择理由

这套流程里有些gate是故意交给人的,比如方法选择和结果判定。AI可以建议,但人必须拍板。项目README里也强调,方法选择由使用者决定,AI只给候选和可行性结果;选择理由为空或照抄AI内容都不应通过GateG2.5。

所以不要偷懒。你们队伍要自己写:

为什么选这个模型?

为什么不用另一个模型?

这个结果为什么可信?

这个模型的局限是什么?

这些才是真正体现建模能力的地方。

错误4:修改原始数据

原始数据不要直接改。放在workspace/data_raw/里,后续清洗结果放到workspace/data_clean/

这就像实验里的原始记录,不能随便涂改。你可以生成处理后的副本,但不要动原件。

错误5:论文数字手动乱改

论文里的关键数字应该来自frozen_numbers.json。如果代码改了,结果变了,就重新生成和冻结,不要在论文里凭感觉改。

错误6:相信AI编的参考文献

任何参考文献都要能查到真实来源。不要因为AI写得像真的,就直接放进论文。

错误7:把APIKey发到群里

APIKey就像账号密码。不要截图发群,不要写进公开代码,不要上传到GitHub。


22.推荐的人机分工方式

使用ClaudeCode+DSV4Pro+MathModeling-skills,不代表队伍里的人可以躺平。

比较合理的分工是:

队长负责总逻辑:题目到底问什么,每个问题怎么接起来,论文主线怎么讲。

建模手负责模型判断:候选模型是否合理,假设是否过强,最终选哪个方法。

代码手负责运行验证:代码能不能跑,结果是否稳定,数据处理有没有错误。

论文手负责表达和排版:论文是否通顺,图表是否清楚,格式是否规范。

AI负责提高效率:读材料、列清单、写初版代码、解释报错、生成图表、润色段落、检查一致性。

一定要记住:

AI适合做快活、杂活、重复活。

人负责方向、判断、取舍和最终确认。


23.最后总结

这篇指南的核心其实就几句话。

网页AI像去餐馆吃饭,方便,但限制很多。

ClaudeCode像请厨师来你家做饭,它可以进入你的项目环境,用你的文件、数据和工具干活。

DSV4Pro是这个厨师背后的模型大脑,负责理解、规划、生成和解释。

项目文件夹是厨房,必须提前收拾干净。数据、代码、图片、论文要分开放。

数学建模Skill是一张固定菜谱,可以让AI按规范流程工作,避免一上来就乱建模、乱写代码、乱下结论。

真正的数学建模能力仍然属于人。AI能让你更快,但不能替你判断。会用AI的人,不是把任务丢给AI的人,而是能把AI放进正确流程里的人。

如果你刚上大一,电脑基础不太好,也不用害怕。你不需要一开始就成为程序员,也不需要马上理解所有命令。你只需要先记住这件事:

把项目整理好,把问题说清楚,把流程固定住,然后让AI一步一步干活。

这就是ClaudeCode+DSV4Pro在数学建模里最实用的打开方式。