如何构建MathModelAgent桌面版?Electron打包macOS与Windows完整指南
【免费下载链接】MathModelAgent🤖📐专为数学建模设计的 Agent & skills ,自动完成数学建模,生成一份完整的可以直接提交的论文。 An Agent Designed for Mathematical Modeling ,Automatically complete mathmodel and generate a complete paper ready for submission.项目地址: https://gitcode.com/GitHub_Trending/ma/MathModelAgent
MathModelAgent 桌面版是专为数学建模设计的一体化 AI Agent:上传赛题后自动完成问题分析、建模、编码、绘图,最后生成一篇排版精良、可直接提交的论文。本文带你完整走一遍 MathModelAgent 桌面版的构建路线:先认识它的三服务架构,再本地跑通 Web 版,最后用 Electron + electron-builder 分别打包出 macOS 的 .dmg 安装包和 Windows 的 .exe 安装包。
为什么需要 MathModelAgent 桌面版?
在开源社区,MathModelAgent 的常规部署需要手动准备 Python、Node.js、Redis 三套环境,对新手并不友好。而官方桌面版把整套环境打包进一个安装包:
- 📦开箱即用:无需安装 Python / Node.js / Redis,装好后填一个模型 API Key 即可开始建模;
- 🤖内置建模能力:预装全套 SKILLS(自动建模、代码纠错、论文撰写),一条命令跑完全流程;
- 📄17 套论文模板:覆盖国赛、华数杯、华为杯、MCM/ICM 等主流赛事。
💡 最省事的做法:直接从官方Releases页面下载对应系统的桌面版(macOS 支持 arm64 / x64 双架构,Windows 为 64 位 .exe),安装后应用会自动检查更新。
下面的构建指南适合两类读者:想理解桌面版内部结构的学习者,以及想自行打包分发的开发者。
先搞懂技术架构:打包之前必看
MathModelAgent 是一个「前后端分离」项目,桌面版本质上是用 Electron 把 Web 前端包进原生窗口,再托管后端服务。三服务的职责如下:
| 服务 | 技术栈 | 端口 | 说明 |
|---|---|---|---|
| 前端 | Vue 3 + Vite + TailwindCSS | 5173 | 聊天、论文预览、Notebook 渲染 |
| 后端 | FastAPI + Uvicorn | 8000 | Agent 工作流、代码解释器、论文生成 |
| 缓存/消息 | Redis | 6379 | 任务状态与会话管理 |
关键配置文件:
- 后端模型配置:backend/app/config/model_config.toml,每个 Agent(建模手、代码手、论文手)可分别指定不同模型;
- 环境变量模板:backend/.env.example;
- 提示词模板(Prompt Inject):backend/app/config/md_template.toml。
建模流程由 skills/ 目录下的分阶段 Skill 驱动:1start-mathmodel启动 →2analysis-modeling分析建模 →3coding-visual编码绘图 →5writing撰写论文 →6verity九步验收,可参考 skills/1start-mathmodel/SKILL.md。
第一步:本地跑通 Web 版
打包的前提是能本地运行,按顺序完成下面三步即可。
克隆代码
git clone https://gitcode.com/GitHub_Trending/ma/MathModelAgent安装依赖
前端(参考 frontend/package.json):
cd frontend npm install -g pnpm pnpm i后端(使用 uv 管理,参考 backend/pyproject.toml):
cd backend pip install uv uv sync别忘了安装 Redis,并把backend/.env.example复制为backend/.env.dev,按 README.md 教程设置REDIS_URL=redis://localhost:6379/0。
一键启动三个服务
Windows 用户直接双击根目录的 win_start.bat 即可同时拉起 Redis、后端、前端;macOS / Linux 手动分别在三个终端执行redis-server、uvicorn app.main:app --host 0.0.0.0 --port 8000、pnpm run dev(前端入口配置见 frontend/vite.config.ts)。
启动后访问 http://localhost:5173 ,在「侧边栏 → 头像 → API Key」填入模型密钥,看到对话界面出现,说明核心链路已通。也可以不用手写命令,直接用 docker-compose.yml 一键容器化部署来验证环境。
第二步:用 Electron 包裹前端
仓库本身不包含 Electron 工程(官方桌面版在独立构建流水线中产出),因此我们需要在frontend之外新建一个壳工程:
npm create electron-app@latest mma-desktop # 选择 Vite + TypeScript 模板核心思路只有三点,代码量很小:
- main.js 主进程:创建 BrowserWindow 时指向本地后端(
http://localhost:5173),生产环境则加载打包后的静态文件frontend/dist; - 托管三服务:在
app.whenReady()中用child_process.spawn依次启动 Redis、uvicorn(端口 8000)、vite preview(端口 4173),app.quit时统一 kill 子进程——这样桌面版才是真正「零依赖」的; - WebSocket 转发:MathModelAgent 的任务进度通过 WebSocket 推送,Electron 需保持
webPreferences: { contextIsolation: true }并放行 8000 端口的 ws 连接(后端 WS 心跳参数可参考 backend/app/main.py)。
配置完成后npm run dev即可在桌面窗口中体验完整功能。
macOS 桌面版打包:electron-builder 与公证
在electron-builder的build配置中声明 macOS 双架构:
"mac": { "target": [ { "target": "dmg", "arch": ["arm64"] }, { "target": "dmg", "arch": ["x64"] } ] }执行npm run dist:mac后,产出与官方一致的两种安装包:
| 芯片 | 安装包 |
|---|---|
| Apple M 系列 | mathmodel-<version>-arm64.dmg |
| Intel | mathmodel-<version>-x64.dmg |
📌 用户不确定自己 Mac 的芯片?「关于本机」中显示 Apple M 系列选 arm64,显示 Intel 选 x64。
签名是 macOS 分发的关键一步:
- 在 Apple Developer 计划(个人 99 美元/年)申请Developer ID Application证书;
- 用
CSC_LINK/CSC_KEY_PASSWORD环境变量让 electron-builder 自动签名; - 配置
notarize: true(提供 Apple ID 与 App 专用密码)完成公证,避免用户双击提示「已损坏」; - 更新渠道可接入 electron-updater,配合发布页实现自动更新。
Windows 桌面版打包:NSIS 安装器
Windows 侧配置更简单:
"win": { "target": [{ "target": "nsis", "arch": ["x64"] }] }npm run dist:win将生成mathmodel-<version>-x64.exe安装器,NSIS 会处理图标、快捷方式与卸载逻辑。两点提醒:
- ⚠️ 未签名的 .exe 首次运行会触发Microsoft Defender SmartScreen蓝色警告,属正常现象,选择「更多信息 → 仍要运行」即可。想要消除提示需购买 EV 代码签名证书;
- 打包机必须使用 Windows(或在 CI 中提供 Windows Runner),electron-builder 不支持在 Linux 上直接打 .exe;
- 由于主进程托管了 uvicorn,注意把后端
.venv与 win_start.bat 中的启动逻辑整合进spawn参数,路径中避免中文。
常见问题速查
| 问题 | 解决思路 |
|---|---|
| 端口被占用 | 8000 / 5173 被占时,先lsof -i:8000排查 |
| Redis 连不上 | 确认.env.dev中REDIS_URL与本地实例一致,详见 backend/.env.example |
| 论文输出在哪 | 结果保存在backend/project/work_dir/xxx/下的 notebook 与 res.md |
| 想换赛事模板 | 编辑 skills/5writing/templates/ 下的 Typst 模板 |
| 完整部署细节 | 参考官方教程 docs/md/tutorial.md |
总结
回顾一下整条构建路径:理解三服务架构 → 本地跑通 Web 版 → Electron 主进程托管服务 → electron-builder 分别产出 macOS dmg(arm64/x64 + 签名公证)与 Windows exe(NSIS)。整个方案的核心收益在于:用户无需任何环境准备,装好填 Key 即可让 MathModelAgent 在本地自动完成数学建模并产出可提交论文。如果你在打包过程中遇到问题,不妨先对照 README.md 的部署章节逐服务自检,这是最快的排障路径。🚀
【免费下载链接】MathModelAgent🤖📐专为数学建模设计的 Agent & skills ,自动完成数学建模,生成一份完整的可以直接提交的论文。 An Agent Designed for Mathematical Modeling ,Automatically complete mathmodel and generate a complete paper ready for submission.项目地址: https://gitcode.com/GitHub_Trending/ma/MathModelAgent
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考