AGENT.md、README.md、ARCHITECTURE.md、ROADMAP.md 已根据最新代码更新: - 补充 DTO 层、统一返回体、全局异常处理、审计自动填充等已完成项 - 更新前端控制台架构描述与页面实现状态 - 调整 RAG 模块状态描述(元数据层已完成,业务闭环待建设) - 移除 docs 目录的 .gitignore 排除规则 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
6.4 KiB
6.4 KiB
Common Agent 当前代码架构说明
1. 文档目的
本文档描述 common_agent 当前已经落地的前后端架构,用于帮助快速理解代码边界、模块职责和扩展点。
2. 总体分层
后端分层
采用标准 Spring Boot + MyBatis-Plus 分层:
- controller:对外暴露 REST API,统一使用 DTO 交互,返回
RequestResult<T>。 - service:接口 + 实现,继承 MyBatis-Plus
IService/ServiceImpl。 - mapper:继承
BaseMapper<T>,无 XML,全部使用lambdaQuery()类型安全查询。 - entity:数据库实体模型,继承
BaseEntity。 - dto/request|response:请求/响应 DTO,响应 DTO 提供
fromEntity()静态转换。 - config / constant / enums / handler:模块级配置、常量、枚举和全局异常处理。
前端架构
- 入口:
main.ts挂载 Vue App,注册 Pinia、Vue Router、Element Plus。 - 布局:
AdminLayout.vue管理后台壳布局(侧边栏菜单 + 主内容区)。 - 页面:各业务页面位于
pages/,使用 Composition API +<script setup lang="ts">。 - API 层:
api/request.ts封装 Axios,统一/api前缀,RequestResult<T>信封解包,大整数安全解析。 - 路由:
router/index.ts使用 HTML5 history 模式,所有页面作为 AdminLayout 子路由。 - 状态:
stores/app.tsPinia 状态管理(当前为环境名占位)。 - 样式:
styles/global.css定义全局 CSS 变量和布局,各页面使用 scoped style。
3. 已实现模块
3.1 公共基础模块
包路径:com.bruce.common
职责:
- 提供实体基类
BaseEntity(主键、审计字段、乐观锁)。 - 统一 API 返回体
RequestResult<T>。 - 全局异常处理
GlobalExceptionHandler。 - MyBatis-Plus 审计自动填充
EntityAuditMetaObjectHandler。 - 附件本地存储配置
AttachmentProperties。 - 系统枚举管理能力(CRUD + 批量新增 + 管理端查询)。
- 附件上传能力(本地磁盘 + 元数据持久化)。
关键类:
| 类 | 路径 |
|---|---|
| BaseEntity | common/domain/model/BaseEntity.java |
| RequestResult | common/domain/model/RequestResult.java |
| GlobalExceptionHandler | common/handler/GlobalExceptionHandler.java |
| EntityAuditMetaObjectHandler | common/config/EntityAuditMetaObjectHandler.java |
| AttachmentProperties | common/config/AttachmentProperties.java |
| SysEnum | common/domain/entity/SysEnum.java |
| SysAttachment | common/domain/entity/SysAttachment.java |
| SysEnumController | common/controller/SysEnumController.java |
| SysAttachmentController | common/controller/SysAttachmentController.java |
| SysEnumServiceImpl | common/service/impl/SysEnumServiceImpl.java |
| SysAttachmentServiceImpl | common/service/impl/SysAttachmentServiceImpl.java |
| CommonStatusEnum | common/enums/CommonStatusEnum.java |
| EnableStatusEnum | common/enums/EnableStatusEnum.java |
接口列表:
| 方法 | 路径 | 说明 |
|---|---|---|
| POST | /api/sys-enum/queryForManagement |
管理端枚举查询(支持关键词搜索) |
| GET | /api/sys-enum/detail |
获取单个枚举 |
| POST | /api/sys-enum/save |
新增/更新枚举 |
| POST | /api/sys-enum/batchSave |
批量新增枚举 |
| POST | /api/sys-enum/delete |
删除枚举 |
| POST | /api/attachments/upload |
上传附件 |
3.2 RAG 知识库模块
包路径:com.bruce.rag
职责:
- 维护 RAG 知识库主数据(CRUD + 编码唯一性校验)。
- 维护知识库文档与附件的关联关系。
- 定义解析状态、索引状态和 RAG 相关来源常量。
关键类:
| 类 | 路径 |
|---|---|
| RagStore | rag/entity/RagStore.java |
| RagDocument | rag/entity/RagDocument.java |
| RagStoreController | rag/controller/RagStoreController.java |
| RagDocumentController | rag/controller/RagDocumentController.java |
| RagStoreServiceImpl | rag/service/impl/RagStoreServiceImpl.java |
| RagDocumentServiceImpl | rag/service/impl/RagDocumentServiceImpl.java |
| RagParseStatusEnum | rag/enums/RagParseStatusEnum.java |
| RagIndexStatusEnum | rag/enums/RagIndexStatusEnum.java |
| RagSystemConstants | rag/constant/RagSystemConstants.java |
接口列表:
| 方法 | 路径 | 说明 |
|---|---|---|
| POST | /api/rag/store/query |
知识库条件查询 |
| GET | /api/rag/store/detail |
获取知识库详情 |
| POST | /api/rag/store/save |
新增/更新知识库 |
| POST | /api/rag/store/delete |
删除知识库 |
| POST | /api/rag/documents/query |
知识文档条件查询 |
当前边界:
- 元数据管理层已完成(知识库 CRUD、文档查询)。
- 尚未实现"文档上传后自动建档"、"解析入库"、"切片向量化"、"检索问答"等业务流程。
4. 数据模型关系
当前核心表关系如下:
| 表名 | 说明 | 关联 |
|---|---|---|
sys_enum |
系统枚举配置 | 独立 |
sys_attachment |
附件元数据 | 独立,被 rag_document 引用 |
rag_store |
知识库主表 | 独立 |
rag_document |
知识库文档表 | 关联 rag_store.id 和 sys_attachment.id |
rag_document 是 RAG 模块与附件模块的连接点。
5. 配置与运行
关键配置文件:
| 文件 | 说明 |
|---|---|
application.yaml |
环境选择(当前 active: dev) |
application-dev.yaml |
开发环境配置(PostgreSQL 数据源、MyBatis-Plus、附件目录) |
application-template.yaml |
配置模板 |
6. 测试策略
- 后端测试:围绕结构约束的单元测试(Mapper/Service/Controller 继承体系、实体字段注解、方法签名验证)。
- 前端测试:Vitest + @vue/test-utils,覆盖路由定义、布局组件、页面渲染、API 调用和 Long 类型解析。
7. 当前不足
- RAG 尚未进入"可用链路",只有元数据管理层。
- Agent 运行时相关模型与服务尚未开始建设。
- 前端部分页面(工作台、附件管理、知识文档)为占位状态。
- 缺少鉴权、租户、操作日志。
8. 建议演进方向
- 补 RAG 最小闭环:上传附件 → 建立文档 → 状态流转 → 解析占位。
- 接入 Spring AI,实现最小模型调用链路。
- 建设 Agent 域模型:Agent、Session、Message、Tool、Task。
- 补齐前端占位页面的表单与联调。
- 衔接模型供应商、工作流编排和前端管理台。