Bkn draft
Skill kweaver-ai/kweaver-dip/skills/bkn-creator/internal/bkn-draft
KWeaver DIP is an enterprise-level digital employee platform, built on KWeaver Core. It provides an AI-native environment for developing and managing digital employees on business knowledge networks—for enterprise intelligence that is understandable, executable, and governable.
npx -y skills add kweaver-ai/kweaver-dip --skill bkn-draftAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
What its author says it does
Copied from the file, not written here
将确认后的建模清单生成 .bkn 文件。
SKILL.md
7.1 KB, as published. Nobody here has run it
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 解析