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文件
校验清单
生成后必须逐项检查:
-
network.bkn在根目录;frontmatter 符合规范(type: knowledge_network、id、name) - 每个
.bkn有有效的 YAML frontmatter(type、id、name) - 文件放在与
type匹配的文件夹下(object_types/、relation_types/、action_types/、concept_groups/);文件名 ={id}.bkn - Network Overview 列出所有定义 ID — 无遗漏/多余
- 关系/动作引用已存在的 object-type ID;概念分组只列出已存在的对象
- 关系映射属性存在性:所有 relation_types 的 Mapping Rules 中 Source/Target Property 在对应对象 Data Properties 中存在
- 动作参数属性存在性:所有 action_types 的 Parameter Binding 中引用的属性在 Bound Object 的 Data Properties 中存在
- Parameter binding 的
Source∈property|input|const;YAML 块(如 trigger)可解析 - 标题层级无跳跃(
#→##→###→####) - 业务规则只在允许位置(见
references/SPECIFICATION.llm.md的"业务规则放置"章节)
数据类型选型
生成 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 解析