285 lines
6.2 KiB
Markdown
285 lines
6.2 KiB
Markdown
# AR01 — 后端架构
|
|
|
|
> 状态:当前有效
|
|
> 最后更新:2026-09-21
|
|
>
|
|
> 说明:
|
|
> 本文档描述当前后端的真实架构口径。
|
|
> 历史培训系统版本已归档至 `Historical_Records/AR01_后端架构-培训系统旧稿.md`。
|
|
|
|
---
|
|
|
|
## 1. 当前后端定位
|
|
|
|
当前后端定位为一个**对象目录与任务运行并列成立、以知识底座支撑、并兼容旧业务域的本地数字员工平台后端**。
|
|
|
|
当前统一主轴有三条:
|
|
|
|
1. **对象主轴**
|
|
- specialist
|
|
- skill
|
|
- xapp
|
|
- connector
|
|
- action
|
|
|
|
2. **运行主轴**
|
|
- task
|
|
- project
|
|
- task_run
|
|
- task_artifact
|
|
- specialist runtime
|
|
|
|
3. **支撑主轴**
|
|
- knowledge
|
|
- 权限与治理
|
|
|
|
培训、考试、产品知识、课程等能力当前继续在系统中运行,并作为兼容业务域存在。
|
|
|
|
## 2. 当前代码分层
|
|
|
|
后端当前主体位于:
|
|
|
|
`eai_agentplatform/backend-go/internal`
|
|
|
|
主要按“基础设施层 + 对象域 + 业务域”组织:
|
|
|
|
### 2.1 基础设施层
|
|
|
|
- `api`
|
|
- `auth`
|
|
- `middleware`
|
|
- `config`
|
|
- `store`
|
|
- `dal`
|
|
- `web`
|
|
- `ai`
|
|
|
|
职责:
|
|
|
|
- 路由注册
|
|
- 认证鉴权
|
|
- 配置装载
|
|
- 数据存取
|
|
- 统一响应与错误处理
|
|
- AI 调用支撑
|
|
|
|
### 2.2 对象域
|
|
|
|
- `specialists`
|
|
- `skills`
|
|
- `xapps`
|
|
- `connectors`
|
|
|
|
这几类目录已经体现出当前对象化拆分方向。
|
|
|
|
说明:
|
|
|
|
- 文档统一口径对外称 `App`
|
|
- 当前代码与表命名中仍保留 `xapp`
|
|
- 因此当前应理解为:`App = 代码中的 xapp 域`
|
|
- `xapp` 当前是一等对象和成品入口壳,但还不是运行主记录的主键
|
|
|
|
### 2.3 兼容业务域
|
|
|
|
当前后端仍保留以下运行中业务域:
|
|
|
|
- `company-train`
|
|
- `products`
|
|
- `courses`
|
|
- `exam`
|
|
- `knowledge`
|
|
- `media`
|
|
- `report`
|
|
- `document`
|
|
- `notes`
|
|
- `points`
|
|
|
|
这些目录构成当前平台的兼容业务面。
|
|
|
|
## 3. 当前路由骨架
|
|
|
|
当前路由注册集中在:
|
|
|
|
`backend-go/internal/api/router.go`
|
|
|
|
当前可以归纳为六类入口:
|
|
|
|
### 3.1 认证与系统入口
|
|
|
|
- `/api/auth/*`
|
|
- `/api/health`
|
|
|
|
### 3.2 对象目录入口
|
|
|
|
- `/api/specialists`
|
|
- `/api/skills`
|
|
- `/api/xapps`
|
|
- `/api/connectors`
|
|
- `/api/actions`
|
|
|
|
这是当前对象中心最明确的一层。
|
|
|
|
### 3.3 任务与项目入口
|
|
|
|
- `/api/tasks`
|
|
- `/api/my/tasks`
|
|
- `/api/projects`
|
|
- `/api/artifacts/:id`
|
|
- `/api/workbench/overview`
|
|
|
|
这是当前运行中心的主骨架。
|
|
|
|
### 3.4 知识与素材入口
|
|
|
|
- `/api/media/*`
|
|
- `/api/knowledge/*`
|
|
|
|
知识库当前仍是平台的组织级基础能力,不是外围附件。
|
|
|
|
### 3.5 AI 与技能执行入口
|
|
|
|
- `/api/ai-chat/*`
|
|
- `/api/chat/message`
|
|
- `/api/skills/office/*`
|
|
- `/api/report/*`
|
|
- `/api/document/*`
|
|
- `/api/contract/review`
|
|
- `/api/audio/transcribe`
|
|
|
|
这部分目前存在一定历史兼容痕迹,但总体都服务于任务、对象或知识底座。
|
|
|
|
### 3.6 兼容业务域入口
|
|
|
|
- `/api/company-train`
|
|
- `/api/products`
|
|
- `/api/courses`
|
|
- `/api/exam/*`
|
|
- `/api/points/*`
|
|
- `/api/my/profile`
|
|
|
|
这批接口说明平台仍处于“新主轴已形成,旧业务面仍在运行”的混合阶段。
|
|
|
|
## 4. 当前核心运行模型
|
|
|
|
后端当前的核心运行模型由以下三层组成:
|
|
|
|
### 4.1 对象定义层
|
|
|
|
- `specialist`
|
|
- `skill_definition`
|
|
- `xapp_definition`
|
|
- `action_definition`
|
|
|
|
这些对象定义的是:
|
|
|
|
- 谁能协作
|
|
- 能做什么
|
|
- 用户从哪里进入
|
|
- 哪些是可治理动作
|
|
|
|
这里需要特别区分:
|
|
|
|
- `specialist` 是当前运行时的主要执行人格对象
|
|
- `xapp` 是对象目录中的成品入口壳对象
|
|
- `skill` 是能力定义对象
|
|
- `action` 是动作定义与治理对象
|
|
|
|
### 4.2 任务运行层
|
|
|
|
- `task_record`
|
|
- `task_run`
|
|
- `task_artifact`
|
|
- `project`
|
|
|
|
这几张表承接的是:
|
|
|
|
- 一个工作实例
|
|
- 它的执行记录
|
|
- 它的输出物
|
|
- 它与项目容器的关系
|
|
|
|
当前运行层的关键事实是:
|
|
|
|
- `task_record` 当前以 `specialist_key` 作为主要执行挂载点
|
|
- `project` 是任务容器,不是执行主语
|
|
- `xapp` 当前不直接作为运行主键进入这条链
|
|
|
|
### 4.3 知识底座层
|
|
|
|
- `knowledge_space`
|
|
- `knowledge_source`
|
|
- `knowledge_chunk`
|
|
- `knowledge_faq`
|
|
- `media_file`
|
|
|
|
这层负责:
|
|
|
|
- 组织知识沉淀
|
|
- 素材接入
|
|
- 文本切片
|
|
- 检索支撑
|
|
- 审批前置
|
|
|
|
## 5. 当前对象口径与代码现实
|
|
|
|
当前文档层口径已经收敛为:
|
|
|
|
- 专家
|
|
- 技能
|
|
- App
|
|
- 连接器
|
|
|
|
但代码现实仍有两个过渡痕迹:
|
|
|
|
1. `specialist` 仍作为专家对象的实现命名存在
|
|
2. `xapp` 仍作为 App 对象的实现命名存在
|
|
|
|
因此当前后端应采用以下理解方式:
|
|
|
|
- `专家 = specialist`
|
|
- `App = xapp`
|
|
|
|
同时还要补上一条运行边界:
|
|
|
|
- `当前运行主语 = specialist-driven task`
|
|
- `当前入口壳对象 = xapp`
|
|
|
|
这是当前代码命名、对象口径和运行现实之间最重要的映射关系。
|
|
|
|
## 6. 当前架构判断
|
|
|
|
### 6.1 已经符合当前方向的部分
|
|
|
|
- 对象域已独立成目录
|
|
- 路由已有对象入口
|
|
- 任务/项目已形成运行主轴
|
|
- specialist 已成为当前任务运行的主要执行主语
|
|
- 知识库仍作为底座能力存在
|
|
- 后台治理与对象治理已进入统一后端
|
|
|
|
### 6.2 仍未完全收口的部分
|
|
|
|
- 培训、考试、课程、产品等旧业务域仍在主路由中并行存在
|
|
- `ai-chat`、`chat/message` 两套对话入口仍并存
|
|
- 对象命名在文档与代码之间仍有 `专家/specialist`、`App/xapp` 过渡
|
|
- `xapp` 已完成对象化,但尚未成为 task runtime 的主键级对象
|
|
|
|
## 7. 当前后端设计原则
|
|
|
|
后续后端整理应继续遵守以下原则:
|
|
|
|
1. 任务是运行中心,当前执行主语是 specialist
|
|
2. 对象定义与对象运行要继续解耦
|
|
3. `xapp` 继续作为成品入口壳演进,但不能提前写成当前运行主键
|
|
4. 培训/考试等业务域优先向 `App + task` 结构收敛
|
|
5. 新增能力优先进入 `specialists / skills / xapps / connectors` 对象域,而不是继续扩张旧业务模块
|
|
6. 历史兼容接口可以保留,但不能再主导新的架构描述
|
|
|
|
## 8. 建议阅读
|
|
|
|
1. `docs/01_System_Overall/SY21_统一角色技能动作架构.md`
|
|
2. `docs/01_System_Overall/SY22_角色技能应用统一任务架构.md`
|
|
3. `docs/02_Architecture/AR02_前端架构.md`
|
|
4. `docs/02_Architecture/AR03_数据库架构.md`
|
|
5. `docs/04_Backend/01_平台治理底座/BG01_后端总体分层与路由总表.md`
|