MathModelAgent数据模型全解:Pydantic Schemas请求响应与枚举完整清单
MathModelAgent数据模型全解Pydantic Schemas请求响应与枚举完整清单【免费下载链接】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/MathModelAgentMathModelAgent 是一款专为数学建模设计的 AI Agent 工具可自动完成建模并生成一份可直接提交的完整论文。本文带你快速看懂 MathModelAgent 数据模型基于 Pydantic Schemas 的请求响应结构与 4 组完整枚举清单一次搞懂协调者、建模手、代码手、写作手这 4 个 Agent 之间是如何传递数据的。项目速览一次建模任务的数据流转 MathModelAgent 的核心是一个四 Agent 流水线协调者CoordinatorAgent拆解题目、分配问题建模手ModelerAgent设计模型与求解方案代码手CoderAgent编写并执行代码、生成图表写作手WriterAgent按章节撰写论文、处理参考文献。所有跨模块、跨 Agent 的数据交换都靠 backend/app/schemas/ 目录下的 Pydantic 模型来定型前端再通过 WebSocket 实时接收消息推送。提交界面里的竞赛模板和输出格式两个下拉框对应的正是下一节介绍的枚举类型——这是新手理解整个数据模型的最佳切入点。枚举清单4 组枚举决定整个流程 全部枚举定义在 enums.py 中一共 4 组枚举取值用途CompTemplate竞赛模板CHINA国赛、AMERICAN美赛决定论文排版模板FormatOutPut输出格式Markdown、LaTeX决定最终论文生成方式AgentTypeAgent 类型CoordinatorAgent、ModelerAgent、CoderAgent、WriterAgent、SystemAgent标识消息来自哪个 AgentAgentStatus执行状态start、working、done、error、success任务与 Agent 生命周期状态 这 4 组枚举全部继承自str, Enum意味着它们在 JSON 序列化时自动变成字符串前端无需任何额外转换即可直接使用。请求模型提交建模任务只需 4 个字段 请求侧模型集中在 request.py真正驱动全流程的是Problem模型字段类型默认值说明task_idstr必填任务唯一标识ques_allstr完整题目文本comp_templateCompTemplateCHINA竞赛模板format_outputFormatOutPutMarkdown输出格式两个细节值得注意Problem.model_dump 重写了序列化逻辑把枚举统一转成字符串值再落库保证 Redis 里存的是纯字符串前端实际提交走的是 modeling_router.py 中的POST /modeling接口表单 文件上传后台再组装成Problem交给工作流而 POST /example 则用ExampleRequest直接复现内置示例题。同文件中还有 ExampleRequest用于一键运行 app/example/ 下的示例赛题。此外modeling_router.py 内还内联了 API Key 校验ValidateApiKeyRequest/Response、配置保存SaveApiConfigRequest、任务取消CancelTaskResponse等接口模型构成完整的请求响应清单。响应消息WebSocket 推送的 10 种消息类型 响应侧的主力是 response.py 中的消息模型族以Message基类为根MessageL9-L13包含自动生成的idUUID4、msg_type、content三个基础字段SystemMessage系统提示type限定为info / warning / success / error前端据此渲染不同颜色的提示条UserMessage用户发言AgentMessageAgent 发言携带agent_type字段区分是哪个 Agent 在说话ToolMessage工具调用消息tool_name限定为execute_code执行代码或search_scholar学术检索ApprovalMessageL109-L125HIL 人工审批消息可触发前端审批对话框默认选项为confirm / edit / regenerate / ask / skip / abort超时 300 秒。聊天页面里每一种气泡都能在 MessageType 这个联合类型中找到对应模型——核心消息类型共 10 种SystemMessage、UserMessage、AgentMessage、ToolMessage、ScholarMessage、InterpreterMessage、CoderMessage、WriterMessage、ModelerMessage、CoordinatorMessage。代码执行结果4 种输出如何被前端渲染 ️代码手执行代码后结果统一由CodeExecution模型族描述L45-L83模型res_type额外字段含义StdOutModelstdout—标准输出StdErrModelstderr—标准错误ResultModelresultformattext / html / markdown / png / jpeg / svg / pdf / latex / json / javascript富结果可内嵌图片与图表ErrorModelerrorname、value、traceback异常信息四者组成 OutputItem 联合类型被InterpreterMessage.output字段持有。这也解释了为什么ResultModel.format要覆盖png / svg / latex等十种格式——建模论文里的每张图、每段公式都是通过这些字段流向前端渲染的。Agent 间通信A2A 数据接力棒 Agent 之间的交接不走前端而是由 A2A.py 中 4 个轻量模型定义CoordinatorToModeler协调者 → 建模手传递questions问题字典与ques_countModelerToCoder建模手 → 代码手传递questions_solution每个问题的建模方案CoderToWriter代码手 → 写作手传递code_response、code_output与created_images生成的图表列表WriterResponse写作手的产出包含response_content与footnotes。写作手的WriterResponse最终被 user_output.py 中的UserOutput类按问题重述 → 问题分析 → 模型假设 → 数据预处理 → 逐题建模 → 灵敏度分析 → 评价改进的固定顺序拼接并自动去重、编号参考文献产出可直接提交的res.md论文。工具调用结果一个通用返回结构 ✅所有工具代码解释器、学术检索等的调用结果统一收敛为 tool_result.py 中的ToolResult三字段结构success是否成功、message提示信息、data任意数据让上层调用方只需一种方式处理成功与失败。相关文件路径速查表 文件说明backend/app/schemas/enums.py4 组枚举类型完整清单backend/app/schemas/request.py请求模型Problem、ExampleRequestbackend/app/schemas/response.py消息模型族与代码执行结果模型backend/app/schemas/A2A.pyAgent 间通信数据模型backend/app/schemas/tool_result.py工具调用通用返回结构backend/app/routers/modeling_router.py建模任务接口与内联请求/响应模型backend/app/models/user_output.py论文结果拼接与参考文献处理backend/app/services/ws_manager.pyWebSocket 消息推送服务 总结MathModelAgent 的数据模型设计思路非常清晰——枚举管配置、请求管输入、响应管推送、A2A 管协作、ToolResult 管工具。读懂 backend/app/schemas/ 这 5 个文件你就掌握了这条题目进、论文出流水线的全部数据脉络也能为二次开发或接入自己的前端打下坚实基础。【免费下载链接】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),仅供参考