WeData 智能异常检测 :Schema 级自动基线学习与异常检测(新鲜度/完整度)。当用户提及异常检测、智能异常、新鲜度、完整度、学习中、基线时触发。不处理质量规则和 Profiling。
Scanned 9/12/2026
Install to Claude Code
npx -y skills add ahang1598/doubao-workbuddy-qwenwork-skills --skill data-quality-anomaly --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Data Quality Anomaly?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/ahang1598-data-quality-anomaly)More formats (shields.io, HTML) on the badges page.
---
name: data-quality-anomaly
layer: L3
lintCheckVersion: "1.0"
tags: [data-development]
user-invocable: false
requires: []
description: WeData 智能异常检测 :Schema 级自动基线学习与异常检测(新鲜度/完整度)。当用户提及异常检测、智能异常、新鲜度、完整度、学习中、基线时触发。不处理质量规则和 Profiling。
---
# WeData Data Quality Anomaly Detection
## Skill 概述
本 skill 覆盖 `DataQualityService` 中**智能异常检测(Schema Anomaly)**相关的 **6 个对外 API**。异常检测是与"质量任务"、"Profiling"并列的能力:基于历史基线自动检测**新鲜度(freshness)** 和**完整度(completeness)** 异常。
异常检测是 **Schema 级开关**(不是 Task 级)。开启后该 Schema 下所有表自动接入,每张表针对 freshness / completeness 两个维度独立学习基线,约 7 天后开始检测。
## 不适用场景
- **质量任务**(规则 CRUD / 试运行 / 诊断 / 工作流集成)→ `data-quality-task`
- **数据剖析 Profiling**(数据画像 / 分布漂移 / dashboard)→ `data-quality-profiling`
- 通用数据资产检索 → `knowledge`
- 数据模型/指标定义 → `semantic-manage`
## 必需输入
- **用户意图**:自然语言(至少一项)
- **写操作**:必须有用户明确触发指令,不得由 LLM 主动发起
---
## 硬性约束
以下规则**不可违反、不可跳过、不可降级**。
### H9 Schema 异常检测关闭需双确认
`DisableSchemaAnomaly` 必须同时满足:
1. 请求参数 `Confirmed: true`
2. 用户原文回复包含**"确认关闭 {catalog}.{schema}"**字样
**正确处理(5 步)**:
1. `GetSchemaAnomalyConfig` 拉摘要(catalog / schema / Status / ResourceId / LastEnabledAt)
2. 高亮影响(模板见 G.2 步骤 2)
3. 要求用户原文回复**"确认关闭 {catalog}.{schema}"**(必须含 catalog.schema 字符串)
4. 校验通过 → 调 `wedatacli schema-anomaly disable --catalog <c> --schema <s>`;不通过 → 重新要求完整回复
5. 汇报结果(`ClosedAt` 时间戳)
**反模式**:
- 用户只回"确认" → 不通过,重新要求带 catalog.schema
- 不传 `Confirmed=true` → 后端拒绝
- AI 主动建议"是否需要关闭" → 必须用户显式触发
### 全局安全约束
- `ResourceId` **默认禁止索要/弹出选择**:异常检测由系统后台周期扫描,开启时**不需要**用户指定计算资源——**绝不在开启流程中弹出计算资源选择列表**;仅当用户主动要求"用某资源跑异常检测"才走 `wedatacli get compute-resources`
- **开启前必须用 `wedatacli get schema --catalog <c> --schema <s>` 校验 catalog.schema 存在(G.1 步骤 1,强制前置)**
- 学习期主动告知(避免用户误以为"开启了但没异常 = 系统坏了")
- 不得编造 `AnomalyId` / `Description`
- 不得讲"异常规则"概念(系统自动学习,不存在用户可写的规则)
### 不提供的能力(强制告知)
- **手动恢复异常**(`ResolveAnomalyResult`):白名单已排除。用户问"如何手动恢复" → 告知"系统会基于后续扫描自动恢复,无需手动;如有特殊需求联系平台"
- **表级单独开关**:异常检测是 Schema 级开关,不能为某张表单独开/关,AI 不要承诺
- **修改基线**:基线由系统学习产生,用户不能修改
**自检口诀**:Schema 异常关闭要带 catalog.schema。
---
## 停止条件
| 条件 | 处理 |
|------|------|
| `wedatacli get schema` 返回 schema 不存在 / 报错 | 告知「`{catalog}.{schema}` 不存在,请核对」,**禁止**继续调 enable |
| `GetSchemaAnomalyConfig` 返回 `Status=disabled` 且用户要关闭 | 告知"已是关闭状态,无需重复操作",结束 |
| 用户要为单张表开/关异常检测 | 告知"异常检测是 Schema 级开关,不支持表级单独开关",结束 |
| 用户要修改基线 | 告知"基线由系统自动学习产生,不支持手动修改",结束 |
| 用户要手动恢复异常 | 告知"系统会基于后续扫描自动恢复,无需手动",结束 |
| 用户说"质量任务/规则/试运行" | 路由到 `data-quality-task`,本 skill 不处理 |
| 用户说"Profiling/数据画像/dashboard/监控效果" | 路由到 `data-quality-profiling`,本 skill 不处理 |
---
## 意图路由(第一步 MUST)
| 意图类别 | 触发词 | 工作流 |
|----------|--------|--------|
| **G.1 开启** | "给 xxx 库开异常检测 / 智能异常监控 / 开启异常检测" | G.1 开启 |
| **G.2 关闭** | "关掉异常检测 / 不要异常监控了 / 关闭异常检测" | G.2 关闭 |
| **G.3 表详情** | "这张表的异常检测状态 / 看 schema 配置 / 用的什么资源" | G.3 查看 |
| **G.4 异常列表** | "有哪些异常 / 学习中的表 / 看异常列表 / 异常结果" | G.4 列表 |
> **与质量任务 / Profiling 不混淆**:
> - Anomaly **不是 Task 的子能力**:开启 Schema 异常检测**不会**自动创建质量任务
> - Anomaly **没有用户可写的规则 YAML**:异常由系统基于历史基线自动判定
---
## 工作流 G.1:开启 Schema 异常检测(写)
> **异常检测由系统后台周期扫描,开启时绝不弹出/索要计算资源选择。**
1. **校验 schema 存在**:`wedatacli get schema --catalog <c> --schema <s>`,不存在则告知并终止
2. **确认**:展示 catalog + schema → 用户回复"确认"(不弹计算资源)
3. **调用**:`wedatacli schema-anomaly enable --catalog <c> --schema <s>`
4. **结果告知**:成功后主动说明学习期约 7 天、学习中暂不产出异常、完成后自动检测
---
## 工作流 G.2:关闭 Schema 异常检测(H9 强制)
> 基线和 open 异常保留,但停止检测。按 H9 执行双确认 5 步。
1. `GetSchemaAnomalyConfig` 确认当前状态(`Status=disabled` → 告知已关闭,结束)
2. 告知影响:所有表检测停止、open 异常保留、基线保留
3. 要求用户回复**「确认关闭 {catalog}.{schema}」**
4. 校验通过 → `wedatacli schema-anomaly disable --catalog <c> --schema <s>`
5. 汇报 `ClosedAt`
---
## 工作流 G.3:表详情查看(只读)
- 表级状态(含异常检测维度信息):`wedatacli quality-task diagnose --catalog <c> --schema <s> --table <t>`(diagnose 内部会调用 `GetTableAnomalyInheritStatus`,返回异常检测状态和各维度基线信息)
- Schema 配置:`wedatacli GetSchemaAnomalyConfig '{"CatalogName":"<c>","SchemaName":"<s>"}'`(旧接口格式)
输出时主动告知 BaselineState:`learning`(学习中)/ `ready`(正常检测)/ `paused`(已关闭)
---
## 工作流 G.4:异常结果列表(只读)
**用户意图**:"有哪些异常 / 学习中的表 / 看异常列表"
**CLI 命令**:`wedatacli schema-anomaly list_results`(完整参数见 [api_reference.md](reference/api_reference.md#6-listanomalyresults))
**调用要点**:
- 默认查 `open` 状态(用户问"有哪些异常"时不传 `--status`)
- 用户问"恢复历史 / 已修复的异常" → 传 `--status resolved`
- 响应中包含 `LearningCount`,必须输出
输出格式:
```markdown
## 异常检测结果
共 **{TotalCount}** 条 open 异常,另有 **{LearningCount}** 张表正在学习基线(暂不产出异常)。
| 表 | 维度 | 严重程度 | 描述 | 实际值 | 期望值 | 首次发现 | 命中次数 |
| --- | --- | --- | --- | --- | --- | --- | --- |
| hive_catalog.ods.orders | freshness | critical | {Description} | {ActualValue} | [{LowerBound}, {UpperBound}] | {DetectedAt} | {OccurrenceCount} |
```
> 严重程度图标约定:`critical → `、`warning → `。
---
## 参考文件索引
- [领域规范(实体模型 / 状态机 / 枚举)](reference/spec.md)
- [API 接口说明(6 API CLI 调用格式)](reference/api_reference.md)
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!