$npx -y skills add kweaver-ai/kweaver-dip --skill bkn-extract从文本提取对象/关系/动作,输出四分组结构化清单。
| 1 | # 对象关系提取 |
| 2 | |
| 3 | 公约:`../_shared/contract.md` |
| 4 | |
| 5 | ## 做什么 |
| 6 | |
| 7 | 给定业务文本和领域识别结果,提取对象类、关系类、动作候选,分组输出。 |
| 8 | |
| 9 | ## 输入 |
| 10 | |
| 11 | - `source_text`:业务文本 |
| 12 | - `domain`:`bkn-domain` 的识别结果 |
| 13 | - `domain_reference`(可选):对应领域参考文件路径 |
| 14 | |
| 15 | ## 流程 |
| 16 | |
| 17 | 1. 按领域参考(或通用规则 `../bkn-domain/references/generic-extraction.md`)提取 |
| 18 | 2. 对象分为四组: |
| 19 | - **显式对象**(`explicit`):文本直接出现,有明确定义 |
| 20 | - **推断对象**(`inferred`):领域闭环补全(每项必须含推断理由) |
| 21 | - **待确认对象**(`pending`):证据不足,需用户确认 |
| 22 | - **排除候选**(`rejected`):复合表达/噪音/不适合建模的 |
| 23 | 3. 对每个对象判定 **存储位置**(`platform` 或 `local`): |
| 24 | - **`platform`**:需要与外部系统/数据视图绑定的业务对象(如物料、订单、工单等),有实际数据源 |
| 25 | - **`local`**:仅用于模型内部逻辑推理、规则锚定、中间态表示的对象(如监控任务、状态标记、规则容器等),无外部数据源 |
| 26 | - 判定依据:是否提及数据来源/系统对接/视图绑定;若无则为 `local` |
| 27 | - 不确定时默认标记为 `platform`,并在业务含义中备注 |
| 28 | 4. 提取关系(name 用中文业务名) |
| 29 | 5. 提取动作候选 |
| 30 | 6. 领域闭环完整性检查(缺失对象补入推断组) |
| 31 | 7. 质量校验:命名归一化、去重、引用完整性 |
| 32 | |
| 33 | ## 输出 |
| 34 | |
| 35 | 所有键名和分组标签使用中文,便于非技术人员阅读: |
| 36 | |
| 37 | ```yaml |
| 38 | 对象清单: |
| 39 | 显式对象: |
| 40 | - 名称: "" |
| 41 | 别名: [] |
| 42 | 业务含义: "" |
| 43 | 候选主键: "" |
| 44 | 来源证据: "" |
| 45 | 存储位置: platform | local |
| 46 | 推断对象: |
| 47 | - 名称: "" |
| 48 | 别名: [] |
| 49 | 业务含义: "" |
| 50 | 候选主键: "" |
| 51 | 推断理由: "" |
| 52 | 存储位置: platform | local |
| 53 | 待确认对象: |
| 54 | - 名称: "" |
| 55 | 不确定原因: "" |
| 56 | 存储位置: platform | local |
| 57 | 排除候选: |
| 58 | - 候选名: "" |
| 59 | 排除原因: "" |
| 60 | 关系清单: |
| 61 | - 名称: "" |
| 62 | 关系ID: "" |
| 63 | 源对象: "" |
| 64 | 目标对象: "" |
| 65 | 基数: "" |
| 66 | 来源证据: "" |
| 67 | 动作候选: |
| 68 | - 名称: "" |
| 69 | 触发条件: "" |
| 70 | 目标对象: "" |
| 71 | 风险等级: 低 | 中 | 高 |
| 72 | ``` |
| 73 | |
| 74 | ### 风险等级说明 |
| 75 | |
| 76 | | 等级 | 标签 | 含义 | 示例 | |
| 77 | |------|------|------|------| |
| 78 | | 低 | `低` | 只读或对单条记录的非破坏性操作 | 查询、生成报表 | |
| 79 | | 中 | `中` | 影响多条记录或触发下游流程 | 批量状态变更、MRP 计算 | |
| 80 | | 高 | `高` | 删除、跨系统推送、审批流触发、资金相关 | 删除网络、推送生产计划 | |
| 81 | |
| 82 | ## 升级条件 |
| 83 | |
| 84 | 以下情况建议 pipeline 调用 `bkn-doctor`: |
| 85 | - 待确认对象 >= 3 |
| 86 | - 关系方向冲突 |
| 87 | - 主键缺失 |
| 88 | - 清单质量不足 |
| 89 | |
| 90 | ## 业务规则检查(阶段一末尾) |
| 91 | |
| 92 | 清单确认后,逐对象扫描规则: |
| 93 | |
| 94 | | 规则类型 | 示例 | |
| 95 | |---------|------| |
| 96 | | 主键规则 | forecast 以 billno 为主键 | |
| 97 | | 外键规则 | mrp.rootdemandbillno → forecast.billno | |
| 98 | | 过滤规则 | mrp 仅取 closestatus_title='正常' | |
| 99 | | 状态枚举 | 采购状态 = normal / watch / abnormal | |
| 100 | | 计算规则 | coverage = (mapped + waived) / total | |
| 101 | | 层级规则 | BOM 多版本取 audit_date 最近 | |
| 102 | | 约束规则 | alt_priority == 0 才参与 MRP | |
| 103 | |
| 104 | 输出 `rule_extraction_check`,供后续 `bkn-rules` 直接消费: |
| 105 | |
| 106 | ```yaml |
| 107 | rule_extraction_check: |
| 108 | - rule_id: "RE-001" |
| 109 | rule_type: 主键规则 | 外键规则 | 过滤规则 | 状态枚举 | 计算规则 | 层级规则 | 约束规则 |
| 110 | description: "" |
| 111 | related_objects: [""] |
| 112 | source_evidence: "" |
| 113 | confidence: high | medium | low |
| 114 | risk_level: 低 | 中 | 高 |
| 115 | ``` |