docs(project): 建立中文模块文档体系

This commit is contained in:
2026-06-01 00:44:53 +08:00
parent 8701c80f90
commit 1e1c731c3f
5 changed files with 233 additions and 0 deletions

View File

@@ -0,0 +1,27 @@
# 前端模块总览
## 1. 当前原型入口
Studio 原型页面位于 `frontend/src/pages/studio/`,路由集中在 `frontend/src/router/index.ts`,模拟数据位于 `frontend/src/data/studioMock.ts`
## 2. 页面与模块映射
| 页面 | 模块 |
|------|------|
| `StudioDashboardPage.vue` | 工作台与发布就绪 |
| `KnowledgeWorkspacePage.vue` | 知识资产 |
| `IngestionPipelinePage.vue` | 文件解析管道 |
| `ModelWorkspacePage.vue` | 模型与路由 |
| `WorkflowBuilderPage.vue` | Workflow 编排 |
| `AgentWorkspacePage.vue` | Agent 对话调试 |
| `McpImportPage.vue` | MCP 能力接入 |
| `SkillWorkspacePage.vue` | Skill 编辑 |
| `ObservabilityPage.vue` | 运行观测 |
## 3. 前端实现原则
- 页面使用聚合 ViewModel避免页面直接拼多个低层接口。
- 已落地旧接口保持兼容,新 Studio 接口以聚合资源为主。
- Long ID 继续按字符串处理,避免 JS 精度问题。
- 枚举值按整型协议处理,页面展示通过枚举字典或常量映射。
- 管理后台保持信息密度、稳定布局和清晰状态提示。

View File

@@ -0,0 +1,36 @@
# 后端模块总览
## 1. 当前代码边界
当前后端已有 `common``rag``modelprovider``agent` 包。后续重新实现时,可以保留这些包作为技术分层落点,但业务文档按产品域拆分。
## 2. 后端实现原则
- Controller 不直接暴露实体。
- 请求使用 `XxxRequest`,响应使用 `XxxResponse`
- 统一返回 `RequestResult<T>`
- 实体继承 `BaseEntity`,保持审计字段和乐观锁字段。
- Mapper 继续使用 MyBatis-Plus `BaseMapper<T>`
- Service 负责业务校验、状态流转和跨表协调。
## 3. 模块落点建议
| 产品域 | 后端包建议 |
|--------|------------|
| 系统基础 | `com.bruce.common` |
| 知识资产与文件解析 | `com.bruce.rag` |
| 模型与路由 | `com.bruce.modelprovider` |
| Workflow 编排 | `com.bruce.workflow` |
| Agent 会话 | `com.bruce.agent` |
| MCP 能力接入 | `com.bruce.mcp` |
| Skill 编辑 | `com.bruce.skill` |
| 运行观测 | `com.bruce.observability` 或复用运行来源模块 |
## 4. 枚举实现约束
新增结构化枚举时,继续实现 `PersistableSysEnumDefinition`,并同步:
- Java 枚举定义。
- `sys_enum` 初始化测试。
- `script/sql/studio_enum.sql` 或对应模块枚举脚本。
- 前端枚举常量或字典接口。

View File

@@ -0,0 +1,54 @@
# 数据库与枚举总览
## 1. 文档目的
本文集中说明本轮数据库和枚举脚本的更新范围,避免需求文档、设计文档、前端文档、后端文档与 SQL 脚本出现冲突。
## 2. SQL 脚本分层
| 脚本位置 | 作用 |
|----------|------|
| `script/sql/` | 可执行的模块化建表或初始化脚本 |
| `docs/MODEL_PROVIDER_SCHEMA.sql` | 模型平台 schema 汇总 |
| `docs/STUDIO_PROTOTYPE_SCHEMA.sql` | Studio 原型 schema 汇总 |
模块化脚本是后续落库执行的优先参考,`docs/*SCHEMA.sql` 是完整设计快照。
## 3. 必须保持不变的内容
`script/sql/enum.sql``sys_enum` 表结构不变:
- `catalog`
- `type`
- `name`
- `value`
- `strvalue`
- `sort`
- `version`
- `create_time`
- `update_time`
- `remark`
- `create_by`
- `update_by`
Java 枚举契约 `PersistableSysEnumDefinition` 的格式不变。后续如果实现新枚举类,仍按现有 `getCatalog()``getType()``getValue()``getLabel()``getRemark()` 风格实现。
## 4. 本轮新增脚本
| 脚本 | 内容 |
|------|------|
| `script/sql/studio_project.sql` | Studio 项目空间表 |
| `script/sql/workflow.sql` | Workflow 定义、版本、运行、步骤日志 |
| `script/sql/mcp.sql` | MCP Server 与能力表 |
| `script/sql/skill.sql` | Skill 定义与版本表 |
| `script/sql/agent_session.sql` | Agent 会话与消息表 |
| `script/sql/agent_capability_binding.sql` | Agent/Workflow 与 MCP/Skill/知识能力绑定表 |
| `script/sql/studio_enum.sql` | Studio 相关枚举初始化 |
## 5. 校验规则
- 所有新增表必须包含 `id``version``create_time``update_time``remark``create_by``update_by`
- 需要唯一业务编码的表必须增加唯一约束。
- 需要跨模块引用的字段必须在文档中说明外键关系。
- JSON 扩展字段统一使用 `JSONB`
- 枚举初始化脚本必须使用 `ON CONFLICT (catalog, type, name) DO UPDATE`,与现有脚本风格一致。

View File

@@ -0,0 +1,50 @@
# Common Agent Studio 模块设计总览
## 1. 总体设计
Common Agent Studio 以一次 AI 应用发布旅程为主线知识接入、模型路由、Workflow 编排、Agent 调试、MCP/Skill 扩展和运行观测围绕同一个项目空间协作。
旧代码中的 `common``rag``modelprovider``agent` 仍作为实现包存在,但新文档按产品域组织,便于后续重新实现时形成更清晰的模块边界。
## 2. 产品域关系
```mermaid
flowchart LR
Common["系统基础"] --> Knowledge["知识资产与文件解析"]
Common --> Model["模型与路由"]
Knowledge --> Workflow["Workflow 编排"]
Model --> Workflow
Workflow --> Agent["Agent 会话"]
MCP["MCP 能力接入"] --> Workflow
Skill["Skill 编辑"] --> Workflow
Agent --> Observability["运行观测"]
Workflow --> Observability
Model --> Observability
```
## 3. 数据主线
| 主线 | 表 |
|------|------|
| 系统基础 | `sys_enum``sys_attachment` |
| 知识资产 | `rag_store``rag_document``rag_document_parse_result``rag_chunk``rag_chunk_embedding` |
| 模型路由 | `model_provider``model_config``model_route_rule``rag_store_model_config``model_call_log` |
| Studio 项目 | `studio_project` |
| Workflow | `workflow_definition``workflow_version``workflow_run``workflow_run_step` |
| Agent | `agent_definition``agent_session``agent_message``agent_capability_binding` |
| MCP | `mcp_server``mcp_capability` |
| Skill | `skill_definition``skill_version` |
## 4. 接口命名原则
- 已落地接口保持兼容,例如 `/api/rag/documents/query``/api/agents/{agentId}/chat`
- Studio 新接口使用聚合资源命名,例如 `/api/knowledge/workspaces/{storeId}``/api/workflows/{workflowId}/runs`
- 请求和响应继续使用 DTO不直接暴露实体。
- 统一返回体保持 `RequestResult<T>`
## 5. 状态设计原则
- 长期稳定状态使用结构化枚举。
- 枚举设计必须保留 `sys_enum` 当前格式。
- 数据库中状态字段允许继续使用 `VARCHAR` 保存枚举代码,前后端协议层对结构化枚举继续传整型值。
- 页面展示文案来自枚举定义或前端常量映射,不在业务逻辑中散落硬编码。

View File

@@ -0,0 +1,66 @@
# Common Agent Studio 模块总览
## 1. 文档目的
本文用于统一本轮文档重构的模块口径。后续需求分析、设计文档、前端实现文档、后端实现文档和数据库设计均以本文的产品域模块为准,不再直接按旧后端包名划分。
本轮只处理文档和 SQL 脚本,不修改 Java、Vue、测试代码。
## 2. 模块划分
| 序号 | 模块 | 范围 |
|------|------|------|
| 1 | 系统基础 | 系统枚举、附件、审计字段、统一返回体、文档解析抽象 |
| 2 | 知识资产与文件解析 | 知识库、知识文档、解析快照、切片、向量、索引任务 |
| 3 | 模型与路由 | 模型服务商、模型配置、任务路由、知识库模型绑定、调用日志 |
| 4 | Workflow 编排 | 项目空间、Workflow 定义、版本快照、运行记录、步骤日志 |
| 5 | Agent 会话 | Agent 定义、调试运行、会话、消息、引用切片 |
| 6 | MCP 能力接入 | MCP Server 导入、能力发现、能力启停用 |
| 7 | Skill 编辑 | Skill 定义、版本、Prompt/Code/Config、测试结果 |
| 8 | 运行观测 | Workflow Trace、模型调用日志、成本、延迟、异常排查 |
## 3. 目录规范
| 目录 | 用途 |
|------|------|
| `需求分析/` | 描述业务目标、角色、场景、范围和验收标准 |
| `设计文档/` | 描述领域模型、状态流转、模块依赖和接口形态 |
| `数据库设计/` | 描述表结构、枚举、脚本同步规则和跨模块关系 |
| `前端实现文档/` | 描述页面、ViewModel、API 调用和交互状态 |
| `后端实现文档/` | 描述 Controller、DTO、Service、Entity、Mapper 和校验规则 |
## 4. 脚本范围
本轮 SQL 脚本属于正式交付范围:
- `script/sql/*.sql`:面向落库执行的模块化脚本。
- `docs/MODEL_PROVIDER_SCHEMA.sql`:模型平台 schema 汇总。
- `docs/STUDIO_PROTOTYPE_SCHEMA.sql`Studio 原型 schema 汇总。
新增或调整数据库设计时,必须同步更新对应脚本。新增或调整枚举设计时,必须同步更新 `sys_enum` 初始化脚本。
## 5. 枚举约束
`sys_enum` 表结构保持不变Java 枚举契约保持现有格式不变:
- `catalog`
- `type`
- `name`
- `value`
- `strvalue`
- `sort`
- `remark`
前后端结构化枚举继续使用整型 `value` 作为协议值,不改成字符串协议。
## 6. 交叉引用规则
每个模块文档必须说明:
- 关联数据库表。
- 关联枚举组。
- 关联 SQL 脚本。
- 关联前端页面或原型 View。
- 关联后端接口草案。
最终以 `数据库设计/9.模块一致性校验.md` 统一检查跨模块冲突。