# 元数据职责分层模块边界(Scope) ## 1. 模块边界说明 ### 1.1 覆盖范围 本模块聚焦于**元数据字段的职责分层与运行时消费解耦**,具体包括: 1. **字段职责分层** - 为元数据字段引入 `field_roles` 多选属性 - 支持四种职责角色:`resource_filter`、`slot`、`prompt_var`、`routing_signal` - 单个字段可同时承担多种职责 2. **分层视图能力** - 后端提供按 role 查询字段的能力 - 工具与模块按 role 消费,不再全量混用 3. **槽位模型增强** - 引入独立的槽位定义模型(可复用元数据字段但有独立运行时语义) - 支持 `slot_key/type/required/extract_strategy/validation_rule/ask_back_prompt` - 运行时值包含 `source/confidence/updated_at` 4. **工具协同改造** - `kb_search_dynamic` 只消费 `resource_filter` 角色 - `memory_recall` 只消费 `slot` 角色 - `intent_hint/high_risk_check` 只消费 `routing_signal` 角色 - prompt 渲染只消费 `prompt_var` 角色 5. **管理端可配置能力** - 元数据字段编辑界面增加 `field_roles` 配置 - 提供"按 role 过滤查看"能力 - 允许删除重建配置(无需迁移兼容) ### 1.2 不覆盖范围 - **历史数据迁移**:本迭代不负责历史数据的自动迁移,允许删除重建配置 - **向量引擎替换**:不涉及 Qdrant 或其他向量引擎的替换 - **LLM 模型切换**:不涉及模型供应商或模型选型的变更 - **渠道端实现**:不覆盖渠道侧 SegmentDispatcher/InterruptManager 等具体实现 - **元数据字段类型扩展**:不新增字段类型(string/number/boolean/enum/array_enum 保持不变) --- ## 2. 依赖盘点 ### 2.1 内部依赖 | 依赖模块 | 用途说明 | 接口 | |---------|---------|------| | `metadata-governance` | 元数据字段定义基础能力 | `/admin/metadata-schemas` | | `intent-driven-mid-platform` | 中台运行时工具链 | `kb_search_dynamic`, `memory_recall`, `intent_hint`, `high_risk_check` | | `ai-service-admin` | 管理端前端页面 | 元数据配置界面 | ### 2.2 外部依赖 | 依赖服务 | 用途说明 | |---------|---------| | PostgreSQL | 元数据字段定义、槽位定义存储 | | Redis | 运行时缓存 | --- ## 3. 依赖接口清单 ### 3.1 本模块依赖的外部接口(Consumer) | 接口 | 来源模块 | 用途 | |------|---------|------| | `GET /admin/metadata-schemas` | metadata-governance | 获取元数据字段列表 | | `POST /admin/metadata-schemas` | metadata-governance | 创建元数据字段 | | `PUT /admin/metadata-schemas/{id}` | metadata-governance | 更新元数据字段 | | `DELETE /admin/metadata-schemas/{id}` | metadata-governance | 删除元数据字段 | ### 3.2 本模块对外提供的接口(Provider) | 接口 | 用途 | |------|------| | `GET /admin/metadata-schemas/by-role` | 按 role 查询字段定义 | | `GET /admin/slot-definitions` | 获取槽位定义列表 | | `POST /admin/slot-definitions` | 创建槽位定义 | | `PUT /admin/slot-definitions/{id}` | 更新槽位定义 | | `DELETE /admin/slot-definitions/{id}` | 删除槽位定义 | | `GET /mid/slots/by-role` | 运行时按 role 获取槽位定义 | --- ## 4. 数据模型边界 ### 4.1 新增模型 | 模型名 | 说明 | |-------|------| | `SlotDefinition` | 槽位定义表(独立于 MetadataFieldDefinition) | ### 4.2 扩展模型 | 模型名 | 扩展字段 | |-------|---------| | `MetadataFieldDefinition` | 新增 `field_roles: list[str]` 字段 | --- ## 5. 工具消费关系 ``` ┌─────────────────────────────────────────────────────────────────┐ │ 元数据字段职责分层 │ ├─────────────────────────────────────────────────────────────────┤ │ │ │ MetadataFieldDefinition │ │ └── field_roles: [resource_filter, slot, prompt_var, │ │ routing_signal] │ │ │ └─────────────────────────────────────────────────────────────────┘ │ ┌─────────────────────┼─────────────────────┐ ▼ ▼ ▼ ┌───────────────┐ ┌───────────────┐ ┌───────────────┐ │resource_filter│ │ slot │ │ prompt_var │ └───────┬───────┘ └───────┬───────┘ └───────┬───────┘ │ │ │ ▼ ▼ ▼ ┌───────────────┐ ┌───────────────┐ ┌───────────────┐ │kb_search_ │ │memory_recall │ │template_engine│ │dynamic │ │ │ │ │ └───────────────┘ └───────────────┘ └───────────────┘ ┌─────────────────────────────────────────────────────────────────┐ │ routing_signal │ └───────┬─────────────────────────────────────────────────────────┘ │ ├───────────────┐ ▼ ▼ ┌───────────────┐ ┌───────────────┐ │intent_hint │ │high_risk_check│ └───────────────┘ └───────────────┘ ``` --- ## 6. 版本与迭代 - 当前版本:`v0.1.0` - AC 范围:`AC-MRS-01 ~ AC-MRS-16` - 迭代策略:允许删除重建配置,不考虑历史数据迁移