File contents 对象关系提取
公约:../_shared/contract.md
做什么
给定业务文本和领域识别结果,提取对象类、关系类、动作候选,分组输出。
输入
source_text:业务文本
domain:bkn-domain 的识别结果
domain_reference(可选):对应领域参考文件路径
流程
按领域参考(或通用规则 ../bkn-domain/references/generic-extraction.md)提取
对象分为四组:
显式对象 (explicit):文本直接出现,有明确定义
推断对象 (inferred):领域闭环补全(每项必须含推断理由)
待确认对象 (pending):证据不足,需用户确认
排除候选 (rejected):复合表达/噪音/不适合建模的
对每个对象判定 存储位置 (platform 或 local):
platform :需要与外部系统/数据视图绑定的业务对象(如物料、订单、工单等),有实际数据源
local :仅用于模型内部逻辑推理、规则锚定、中间态表示的对象(如监控任务、状态标记、规则容器等),无外部数据源
判定依据:是否提及数据来源/系统对接/视图绑定;若无则为 local
不确定时默认标记为 platform,并在业务含义中备注
提取关系(name 用中文业务名)
提取动作候选
领域闭环完整性检查(缺失对象补入推断组)
质量校验:命名归一化、去重、引用完整性
输出
所有键名和分组标签使用中文,便于非技术人员阅读:
对象清单:
显式对象:
- 名称: ""
别名: []
业务含义: ""
候选主键: ""
来源证据: ""
存储位置: platform | local
推断对象:
- 名称: ""
别名: []
业务含义: ""
候选主键: ""
推断理由: ""
存储位置: platform | local
待确认对象:
- 名称: ""
不确定原因: ""
存储位置: platform | local
排除候选:
- 候选名: ""
排除原因: ""
关系清单:
- 名称: ""
关系ID: ""
源对象: ""
目标对象: ""
基数: ""
来源证据: ""
动作候选:
- 名称: ""
触发条件: ""
目标对象: ""
风险等级: 低 | 中 | 高
风险等级说明
等级
标签
含义
示例
低
低
只读或对单条记录的非破坏性操作
查询、生成报表
中
中
影响多条记录或触发下游流程
批量状态变更、MRP 计算
高
高
删除、跨系统推送、审批流触发、资金相关
删除网络、推送生产计划
升级条件
以下情况建议 pipeline 调用 bkn-doctor:
待确认对象 >= 3
关系方向冲突
主键缺失
清单质量不足
业务规则检查(阶段一末尾)
清单确认后,逐对象扫描规则:
规则类型
示例
主键规则
forecast 以 billno 为主键
外键规则
mrp.rootdemandbillno → forecast.billno
过滤规则
mrp 仅取 closestatus_title='正常'
状态枚举
采购状态 = normal / watch / abnormal
计算规则
coverage = (mapped + waived) / total
层级规则
BOM 多版本取 audit_date 最近
约束规则
alt_priority == 0 才参与 MRP
输出 rule_extraction_check,供后续 bkn-rules 直接消费:
rule_extraction_check:
- rule_id: "RE-001"
rule_type: 主键规则 | 外键规则 | 过滤规则 | 状态枚举 | 计算规则 | 层级规则 | 约束规则
description: ""
related_objects: [""]
source_evidence: ""
confidence: high | medium | low
risk_level: 低 | 中 | 高
1 --- 2 name: bkn-extract 3 description: Bkn Extract 4 --- 5 6 # 对象关系提取 7 8 公约:`../_shared/contract.md` 9 10 ## 做什么 11 12 给定业务文本和领域识别结果,提取对象类、关系类、动作候选,分组输出。 13 14 ## 输入 15 16 - `source_text`:业务文本 17 - `domain`:`bkn-domain` 的识别结果 18 - `domain_reference`(可选):对应领域参考文件路径 19 20 ## 流程 21 22 1. 按领域参考(或通用规则 `../bkn-domain/references/generic-extraction.md`)提取 23 2. 对象分为四组: 24 - **显式对象**(`explicit`):文本直接出现,有明确定义 25 - **推断对象**(`inferred`):领域闭环补全(每项必须含推断理由) 26 - **待确认对象**(`pending`):证据不足,需用户确认 27 - **排除候选**(`rejected`):复合表达/噪音/不适合建模的 28 3. 对每个对象判定 **存储位置**(`platform` 或 `local`): 29 - **`platform`**:需要与外部系统/数据视图绑定的业务对象(如物料、订单、工单等),有实际数据源 30 - **`local`**:仅用于模型内部逻辑推理、规则锚定、中间态表示的对象(如监控任务、状态标记、规则容器等),无外部数据源 31 - 判定依据:是否提及数据来源/系统对接/视图绑定;若无则为 `local` 32 - 不确定时默认标记为 `platform`,并在业务含义中备注 33 4. 提取关系(name 用中文业务名) 34 5. 提取动作候选 35 6. 领域闭环完整性检查(缺失对象补入推断组) 36 7. 质量校验:命名归一化、去重、引用完整性 37 38 ## 输出 39 40 所有键名和分组标签使用中文,便于非技术人员阅读: 41 42 ```yaml 43 对象清单: 44 显式对象: 45 - 名称: "" 46 别名: [] 47 业务含义: "" 48 候选主键: "" 49 来源证据: "" 50 存储位置: platform | local 51 推断对象: 52 - 名称: "" 53 别名: [] 54 业务含义: "" 55 候选主键: "" 56 推断理由: "" 57 存储位置: platform | local 58 待确认对象: 59 - 名称: "" 60 不确定原因: "" 61 存储位置: platform | local 62 排除候选: 63 - 候选名: "" 64 排除原因: "" 65 关系清单: 66 - 名称: "" 67 关系ID: "" 68 源对象: "" 69 目标对象: "" 70 基数: "" 71 来源证据: "" 72 动作候选: 73 - 名称: "" 74 触发条件: "" 75 目标对象: "" 76 风险等级: 低 | 中 | 高 77 ``` 78 79 ### 风险等级说明 80 81 | 等级 | 标签 | 含义 | 示例 | 82 |------|------|------|------| 83 | 低 | `低` | 只读或对单条记录的非破坏性操作 | 查询、生成报表 | 84 | 中 | `中` | 影响多条记录或触发下游流程 | 批量状态变更、MRP 计算 | 85 | 高 | `高` | 删除、跨系统推送、审批流触发、资金相关 | 删除网络、推送生产计划 | 86 87 ## 升级条件 88 89 以下情况建议 pipeline 调用 `bkn-doctor`: 90 - 待确认对象 >= 3 91 - 关系方向冲突 92 - 主键缺失 93 - 清单质量不足 94 95 ## 业务规则检查(阶段一末尾) 96 97 清单确认后,逐对象扫描规则: 98 99 | 规则类型 | 示例 | 100 |---------|------| 101 | 主键规则 | forecast 以 billno 为主键 | 102 | 外键规则 | mrp.rootdemandbillno → forecast.billno | 103 | 过滤规则 | mrp 仅取 closestatus_title='正常' | 104 | 状态枚举 | 采购状态 = normal / watch / abnormal | 105 | 计算规则 | coverage = (mapped + waived) / total | 106 | 层级规则 | BOM 多版本取 audit_date 最近 | 107 | 约束规则 | alt_priority == 0 才参与 MRP | 108 109 输出 `rule_extraction_check`,供后续 `bkn-rules` 直接消费: 110 111 ```yaml 112 rule_extraction_check: 113 - rule_id: "RE-001" 114 rule_type: 主键规则 | 外键规则 | 过滤规则 | 状态枚举 | 计算规则 | 层级规则 | 约束规则 115 description: "" 116 related_objects: [""] 117 source_evidence: "" 118 confidence: high | medium | low 119 risk_level: 低 | 中 | 高 120 ```
openbkn-ai/bkn-engineering/tree/main/skills/bkn-creator/internal/bkn-extract commit ce31dc9685
Frequently asked questions How do I install the Bkn Extract skill? Run npx skillmds@latest add openbkn-ai/bkn-extract in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
What does the Bkn Extract skill do? Bkn Extract It is listed under Coding & Dev Tools on SkillMD.
Is Bkn Extract safe to use? This skill has not completed SkillMD's automated safety review yet. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
Which AI agents work with Bkn Extract? This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Is Bkn Extract free to use? Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
Who published Bkn Extract? openbkn-ai (@openbkn-ai) published this skill. Their other Agent Skills are listed on their SkillMD profile.