【摘要】​ 作为项目组长,首要任务是从全局视角规划系统。本文将阐述我们如何借鉴并发展CodePlus的先进架构,设计出服务于“学-练-评-战”闭环的AlgoTutor系统蓝图,并分享在Spring Boot + Vue 3 + Spring AI技术栈选型上的思考。

【正文】

在项目启动之初,我们面临的核心问题是如何构建一个支撑“AI判题”、“个性化学习”和“模拟面试”三大核心的稳健架构。在深入研究了CodePlus项目后,我们确定了三层解耦的微服务架构作为基石。

1. 总体架构设计

我们的系统由以下核心模块构成:

  • 前端层 (Vue 3 SPA):由德豪负责,提供用户交互界面,包括代码编辑器、学习看板和模拟面试房间。

  • 核心后端层 (Spring Boot):我(海波)和泽荣、玥晨共同负责。这是系统的大脑,内含:

    • JudgeAgent (AI判题引擎):基于Spring AI构建,采用ReAct模式,负责调度所有工具。

    • ToolRouter (工具路由):根据请求上下文动态为Agent提供工具集。

    • 业务服务:用户、题目、提交记录、面试流程管理等。

  • 代码沙箱层 (Spring Boot 微服务):由泽荣重点负责,一个完全独立的服务,通过MCP协议对外提供安全的代码执行能力。

  • 数据与智能层

    • Redis:用作缓存、向量数据库(RAG)和分布式会话存储。

    • MySQL:存储核心业务数据。

    • 大模型API:提供AI核心能力。

2. 技术选型决策与权衡

选择Spring Boot 4.1.0-M1和Spring AI 1.0.0-SNAPSHOT是一次前瞻性的决定。Spring Boot提供了成熟的后端生态,而Spring AI则极大地简化了大模型集成与Agent开发的工作量,使我们能快速构建智能判题逻辑,而非从零开始。

Vue 3的组合式API和响应式系统非常适合构建复杂的交互界面,如实时判题流和模拟面试房间。前后端通过定义清晰的REST API和SSE(Server-Sent Events)流进行通信,确保了交互的实时性。

3. 个人实践与思考

我的首要工作是确保各模块能无缝对接。在阅读CodePlus文档后,我绘制了详细的系统序列图和数据流图,并主持了多次接口定义会议。我们约定,沙箱服务与主服务的交互必须通过标准的MCP协议,这借鉴了CodePlus的优秀设计,实现了彻底的解耦。AI Agent与工具(如RAG检索、沙箱执行)之间的调用规范,是我们设计的重中之重。我模拟了多种判题场景,设计了一套通用的工具调用与结果返回格式,确保泽荣开发的沙箱和玥晨开发的RAG服务能以同样的“语言”与我的Agent对话。

下一步,我将深入Spring AI的官方文档,开始搭建JudgeAgent的原型,这是整个系统智能的核心,也是挑战的开始。

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐