| name | bkn-draft |
| description | 将确认后的建模清单生成 .bkn 文件。 |
BKN 草案落盘
公约:../_shared/contract.md
委托技能
| 技能 | 用途 | 必须 |
|---|
bkn-archive | 归档路径生成、ARCHIVE_ID/TIMESTAMP、回读校验 | 是 |
bkn-kweaver | kweaver bkn validate 结构校验 | 是 |
执行前必须读取 references/SPECIFICATION.llm.md 获取规范模板,不可凭记忆生成 .bkn 格式。
落盘路径必须走 bkn-archive,确保双轨路径(根段 archives/)和回读校验。
做什么
将用户确认的对象/关系/动作清单转化为 .bkn 文件目录,落盘到归档路径。
输入
- 已确认的对象/关系/动作清单(含
存储位置 标记)
network_context:网络名称、领域
mode:create(新建) | patch(更新) | copy(复制)
流程
- 读取
../bkn-archive/SKILL.md,获取 ARCHIVE_ID + TIMESTAMP + 归档路径
- 读取
references/SPECIFICATION.llm.md,按 BKN v2.0.1 规范生成 .bkn 文件
- 业务规则放置:遵循
references/SPECIFICATION.llm.md 的"业务规则放置"章节
- 输出规则:遵循
references/SPECIFICATION.llm.md 的"输出规则"章节
- 落盘到
{network_dir}/bkn/(即 archives/{ARCHIVE_ID}/{TIMESTAMP}/{NETWORK_DIR_NAME}/bkn/)
network.bkn 放入 bkn/ 根
object_types/、relation_types/、action_types/、concept_groups/ 等子目录均在 bkn/ 下创建
network.bkn 的 id 使用 {network_name} 的 slug 化形式(中文转拼音或英文直用,全小写、连字符分隔,如 bu-profit-settlement),补齐 icon: icon-dip-graph、color: #0e5fc5
- 推送后若平台返回新
kn_id,委托 bkn-backfill 回填更新 network.bkn 中的 id
- 禁止使用空字符串
"" 作为 id,平台 validator 会拒绝
- 对象类分配随机颜色
- 存储位置处理:
platform 对象:生成完整 BKN 格式(含 Data Source、Logic Properties 等)
local 对象(仅用于模型内部逻辑推理,无外部数据源):
- 省略
### Data Source 节
- 省略
Mapped Field 列(Data Properties 表格中不生成此列)
- 省略
### Logic Properties 节
- 省略
Incremental Key
- 仅保留
Data Properties(定义对象的基本属性结构)
- 注意:
relation_types 和 action_types 中的关系/动作可以引用 local 对象的属性,draft 阶段照常生成对应关系/动作文件
- Data Source 处理(仅 platform 对象):
- 若此时已完成视图绑定(有
binding_decision_list)→ 写入真实 view_id
- 若尚未绑定 → 省略整个
### Data Source 小节,不写占位符
- 禁止写
待绑定 或任何占位文本,平台会将其解析为 view ID 导致推送失败
Mapped Field 同理:无绑定时写 -,不写占位
- Description 仅写稳定业务语义
- 关系映射属性交叉验证(生成关系文件后必须执行):
- 遍历所有
relation_types/*.bkn,对每个关系文件:
- 解析 Endpoint 中的 Source 对象 ID 和 Target 对象 ID
- 解析 Mapping Rules 中的 Source Property 和 Target Property
- 确认 Source Property 存在于 Source 对象
object_types/{source_id}.bkn 的 Data Properties 中
- 确认 Target Property 存在于 Target 对象
object_types/{target_id}.bkn 的 Data Properties 中
- 若任一属性不存在 → 修正映射规则中的属性名使其与目标对象 Data Properties 中的实际属性名一致;若无法确定正确属性名,记录错误并提示
- 对
action_types/*.bkn 同理:确认 Parameter Binding 中引用的属性存在于 Bound Object 的 Data Properties 中
- 委托
bkn-kweaver 执行 kweaver bkn validate {network_dir}/bkn/
- 对照校验清单复核
- 用户复核
输出
.bkn 文件目录(位于 {network_dir}/bkn/)
- validate 结果
- root SKILL.md(可选):在 BKN 目录根添加
{network_dir}/SKILL.md(与 network.bkn 同级),包含简短概述 + 索引表(object | path | relation | path | action | path),方便 agent 定位 .bkn 文件
校验清单
生成后必须逐项检查:
数据类型选型
生成 Data Properties 时,Type 必须从规范合法类型中选择:
| 语义 | 选型 |
|---|
| 数量、金额、单价 | decimal |
| 计数、序号、版本号 | integer |
| 比率、百分比 | float |
禁止使用 number——平台不认识此类型,推送时报 InvalidParameter。
Action Type 选型
Bound Object 表的 Action Type 列只允许三个值:
| 值 | 语义 |
|---|
add | 新增(不可写 create,是后端保留字) |
modify | 修改(不可写 update,是后端保留字) |
delete | 删除 |
当前平台版本不支持 query。如有只读操作需求,暂用 modify 并在 Description 标注。
资源索引
| 类型 | 规范章节 | 模板 | 示例 |
|---|
| Network | knowledge_network | assets/templates/network_type.bkn.template | references/examples/k8s-network/network.bkn |
| Object | object_type | assets/templates/object_type.bkn.template | references/examples/k8s-network/object_types/pod.bkn |
| Relation | relation_type | assets/templates/relation_type.bkn.template | references/examples/k8s-network/relation_types/pod_belongs_node.bkn |
| Action | action_type | assets/templates/action_type.bkn.template | references/examples/k8s-network/action_types/restart_pod.bkn |
| Concept group | concept_group | assets/templates/concept_group.bkn.template | references/examples/k8s-network/concept_groups/k8s.bkn |
完整规范:references/SPECIFICATION.llm.md。
约束
- 本 skill 不做建模决策,只做清单 → 文件的转换
- Description 不写映射猜测信息
- 不写任何占位符文本("待绑定"/"待确认"/"TBD"等),占位值会被平台当作真实 ID 解析