with one click
bkn-relation-bind
基于对象绑定结果判定关系类型,绑定中间视图(data_view 类型)。
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
基于对象绑定结果判定关系类型,绑定中间视图(data_view 类型)。
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
数据权限管理技能:支持资源权限查询与权限申请。 先判定“查询权限”还是“申请权限”,再按资源类型执行对应接口。 当用户提出“申请权限”、“查是否有权限”、“给某资源授权”时使用。
Guides creation of BKN (Business Knowledge Network) definition files following v2.0.1 spec. Covers network, object_type, relation_type, action_type, concept_group. Use when creating knowledge networks, BKN files, object types, relation types, action types, concept groups, or when user asks to model business knowledge in BKN format. When kweaver-core is also loaded, use it to run kweaver CLI (auth, bkn push) after files exist.
数据分析员工(Data Analyst Agent)的唯一总入口:凡与数据资产、取数、指标、表/视图、 治理职责、知识网络等相关的问题,必须先经本 skill 做编排与路由,再进入找表或问数等子流程。 当用户提出数据类问题、需要知识网络选择、或需要在找表与问数之间切换时使用。
向飞书指定用户(通过 user_id)推送消息。 支持文本、卡片、图片、文件等多种消息类型。当用户需要给飞书用户发送推送消息时自动使用。
全局归档协议。只要任务需要写入任何文件(含 PLAN.md、报告、JSON 等归档物),必须按本技能执行 Session→ARCHIVE_ID、TIMESTAMP、双轨路径(根段须为 archives/)、回读校验与状态回执;WebUI 的 archive_grid 必须用 Markdown 中语言标识为 json 的围栏代码块输出。
KWeaver CLI 操作层 — 内化自 kweaver-core。 覆盖认证、平台业务域(config)、知识网络管理与查询、Agent CRUD 与对话、 数据源管理、数据视图、Skill 注册、Vega 可观测、context-loader 语义搜索、通用 API 调用。 仅由 bkn-creator pipeline 内部读取,不独立注册到宿主 skill 系统。
| name | bkn-relation-bind |
| description | 基于对象绑定结果判定关系类型,绑定中间视图(data_view 类型)。 |
公约:../_shared/contract.md
在对象类绑定完成后,分析已绑定对象的视图 schema,判定每条关系的类型(direct 或 data_view),并为 data_view 类型推荐/绑定中间视图。
在 bkn-bind 之后、bkn-map 之前执行。此时对象类已绑定到具体数据视图,可以分析视图间的关联关系。
binding_decision_list:bkn-bind 的输出(bound 对象列表)view_schema_map:各对象视图的字段 schema + 外键信息relation_list:关系清单(来自 bkn-extract)dataview_availability:可选,平台可用视图列表(用于中间视图推荐)满足以下条件之一:
| 条件 | 说明 |
|---|---|
| 起点视图有字段直接引用终点视图 | 外键关系:orders.product_code → products.product_code |
| 起点属性与终点属性同名且类型兼容 | 如 supplier_code 在两端都存在 |
| 单数据源内的主键-外键关系 | 同一数据库内可直接 JOIN |
满足以下条件之一:
| 条件 | 说明 |
|---|---|
| 起点视图无字段直接引用终点视图 | 需中间表做桥梁 |
| 跨数据源 | 起点对象和终点对象来自不同数据源 |
| 多对多关系的中间表 | 如"订单-产品"通过"订单明细"关联 |
| 业务描述提及中间实体 | 文本中有"订单明细"、"关联表"等线索 |
对每条关系执行:
1. 获取起点对象的 view_schema
2. 获取终点对象的 view_schema
3. 检查起点视图是否有字段直接引用终点视图(外键检查)
4. 检查起点属性名是否与终点属性名匹配(同名检查)
5. 判定类型:
- 有直接关联 → direct
- 无直接关联 → data_view
1. 提取 Mapping Rules:
- 从外键信息提取 Source Property → Target Property
- 或从同名属性提取映射
2. 输出到 direct_relations 列表
1. 中间视图推荐:
- 扫描 dataview_availability,找同时引用起点和终点视图的候选
- 或根据业务名称线索匹配(如"订单明细"、"关联表")
- 输出候选列表(最多 5 个)
2. 用户确认:
- 有候选 → 展示候选列表,用户选择或跳过
- 无候选 → 标记 pending,提示后续补绑
3. 确认后提取映射:
- Source Mapping: 起点属性 → 中间视图字段
- Target Mapping: 中间视图字段 → 终点属性
- 不阻断流程
- 输出到 pending_relations 列表
- 在 pipeline_state.yaml 记录
- 后续可通过 update pipeline 补绑
起点视图 → 找引用它的视图 → 这些视图是否也引用终点视图?
↓
中间候选
业务文本中提到的中间实体:
"订单包含多个产品" → 搜索名称含"订单明细"、"order_item"的视图
匹配规则:
- 起点对象名 + 终点对象名 → "订单产品"
- 起点对象名 + "明细" → "订单明细"
- 起点/终点的别名组合
起点视图所属数据源 → 扫描该数据源的关联表 → 找同时含起点主键和终点主键的表
relation_binding_result:
direct_relations:
- 关系ID: ""
关系名称: ""
源对象: ""
目标对象: ""
mapping_rules:
- source_property: ""
target_property: ""
判定依据: "" # 如"起点视图 product_code 外键引用终点视图"
confidence: high | medium | low
data_view_relations:
- 关系ID: ""
关系名称: ""
源对象: ""
目标对象: ""
intermediate_view_id: "" # 确认后填入
intermediate_view_name: "" # 确认后填入
intermediate_view_candidates: # 推荐候选
- view_id: ""
view_name: ""
match_reason: ""
confidence: high | medium | low
status: confirmed | pending | rejected
source_mapping_rules: # 确认后填入
- source_property: ""
view_property: ""
target_mapping_rules: # 确认后填入
- view_property: ""
target_property: ""
判定依据: "" # 如"跨数据源,需中间视图"
pending_relations:
- 关系ID: ""
关系名称: ""
原因: "" # 如"无匹配中间视图候选"
建议: "" # 如"请手动指定中间视图或后续补绑"
relation_binding_summary:
total_relations: 0
direct_count: 0
data_view_confirmed_count: 0
data_view_pending_count: 0
pending_count: 0
当存在 data_view 类型关系需要确认时,pipeline 会暂停并展示:
检测到 {n} 条关系需要中间视图绑定:
【{关系名称}】
起点对象: {源对象} → 已绑定视图: {起点视图名}
终点对象: {目标对象} → 已绑定视图: {终点视图名}
判定依据: {判定依据}
推荐中间视图:
1. {候选1名} ({候选1ID}) - 匹配原因: {原因1}
2. {候选2名} ({候选2ID}) - 匹配原因: {原因2}
...
请选择:
A. 选择推荐候选(输入序号 1-5)
B. 手动指定中间视图(输入 view_id 或 view_name)
C. 暂时跳过,标记为 pending(后续可补绑)
D. 改为 direct 类型(起点属性直接关联终点属性)
| Skill | 消费内容 |
|---|---|
bkn-map | direct_relations.mapping_rules + data_view_relations.source/target_mapping_rules(仅 confirmed) |
bkn-draft | 关系类型 + Mapping 结构(pending 关系生成占位符版本) |
bkn-backfill | 关系类 Mapping View + Source/Target Mapping 回填 |
bkn-bind 输出的 bound 对象涉及的关系pending 或 rejected 时,对应关系也标记为 pendingpending 关系不阻断流程,可后续补绑以下情况跳过本 skill:
bind_mode == deferred(无可用数据视图)relation_list 为空pending 或 rejected