How to use
- Copy the installation command and review the source package before installing it in your own agent environment.
- Check the source document for required tools, credentials and supported hosts.
- Describe your input and desired deliverable; review the output against the source material.
npx skills add https://github.com/openbkn-ai/bkn-sdk --skill create-bknBefore you start
- Installation does not include a model subscription, API allowance or permission to access your files.
- Repository stars and installation counts describe activity, not an independent quality or security test.
Rendered from the source repository. Headings, examples, code, tables, links, and referenced images are preserved.
Create BKN
Generate well-formed BKN directories (Markdown + YAML frontmatter) per v2.0.1.
Works with the openbkn skill
create-bkn authors the .bkn tree; the openbkn skill runs openbkn auth login and openbkn bkn push / pull after files exist.
What is BKN
BKN is Markdown + YAML frontmatter for schema; one file per definition under typed subfolders. Details (sections, required tables, types) live in references/SPECIFICATION.llm.md.
Directory layout
{network_dir}/
├── SKILL.md
├── network.bkn
├── CHECKSUM # optional; SDK may generate
├── object_types/
├── relation_types/
├── action_types/
├── concept_groups/
└── data/ # optional sample data; not read by `openbkn bkn validate`/`push`Workflow
- Gather requirements — objects, relations, actions, optional concept groups
- Read spec — references/SPECIFICATION.llm.md (format rules, sections, frontmatter types)
- Pick templates — copy/adapt from assets/templates/ (
network_type.bkn.template,object_type.bkn.template, …) - Create `network.bkn` — root file; align with Network Overview
- Create `object_types/.bkn
** — one file per object,{id}.bkn` - Create `relation_types/.bkn`** — one file per relation
- Create `action_types/.bkn`** — one file per action
- Create `concept_groups/.bkn`** — optional
- Update `network.bkn` — list all IDs in Network Overview
- Add root `SKILL.md` in the BKN directory — same folder as
network.bkn(this is not the create-bkn skill file); agent-facing guide for that network (see Delivered BKN: root SKILL.md) - Review (MUST) — cross-check Validation checklist and Business rules placement; fix IDs, cross-refs, headings
- Validate (MUST) —
openbkn bkn validate <dir>(see Validation) - Import (optional) —
openbkn bkn push <dir>
Import (openbkn CLI)
Requires the openbkn CLI from @openbkn/bkn-sdk (npm install -g @openbkn/bkn-sdk; Node.js 22.19.0+). push uses tar; on macOS COPYFILE_DISABLE=1 is set by the tool.
- Platform auth — Don't pre-check with
openbkn auth status; runopenbkn bkn pushdirectly (validateis offline and needs no login). Only when it fails with 401 / not authorized, runopenbkn auth login <platform-url>and retry. - BKN validation — If workflow step 12 (
openbkn bkn validate <dir>) already succeeded for this directory, do not repeat validate beforepushunless you changed.bknfiles. If you have not validated yet, runvalidatebeforepush.
openbkn bkn push <dir> [--branch main]Export: openbkn bkn pull <kn-id> [<dir>]. More subcommands: openbkn bkn --help (see the openbkn skill if loaded).
Validation
openbkn bkn validate <dir> — must pass before delivery or upload. It loads network.bkn and sibling .bkn files. Success prints counts; on failure fix .bkn files and re-run.
A capabilities: section in network.bkn never fails validation or push. Read capabilities.skipped and the warnings instead: an entry listed there binds on no platform, and a malformed section is ignored whole. After push, the answer's capabilities.skipped names what this platform could not resolve.
Per-type reference
| Kind | Spec (section) | Template | Example (k8s) |
|---|---|---|---|
| Network | knowledge_network in spec | 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 |
Full rules and optional sections: references/SPECIFICATION.llm.md.
Naming conventions
- ID: lowercase, digits, underscores; file:
{id}.bknunder the matching folder - Headings:
#network title,##type block,###section,####logic property - Frontmatter: at least
type,id,name(see spec for each type)
Business rules placement
Rules must sit in spec-defined places so import persists them. Full wording: references/SPECIFICATION.llm.md.
- Network-level — prose in
network.bknright after# {title}(before structured sections like## Network Overview) - Type-level — prose in each type file after
## ObjectType:/## RelationType:/ … and before the first###; never in frontmatter - Property-level — in Data Properties table Description column
- No extra sections — do not add Markdown outside the standard sections; parsers may drop unparsed content on import
Validation checklist
- [ ]
network.bknat root; frontmatter matches spec - [ ] Every
.bknhas valid YAML frontmatter (type,id,name) - [ ] Files live under folders matching
type(object_types/,relation_types/, …); filename ={id}.bkn - [ ] Network Overview lists all definition IDs — no missing/extra
- [ ] Relations/actions reference existing object-type IDs; concept groups list only existing objects
- [ ] Parameter binding
Source∈property|input|const; YAML blocks (e.g. trigger) parse - [ ] Heading hierarchy has no skipped levels
- [ ] Business rules only in allowed places (see Business rules placement)
Output rules
- Emit raw
.bkncontent — do not wrap the whole file in a fencedmarkdownblock - Reuse IDs consistently across relations/actions
- IDs: lowercase + underscores; display text Chinese unless asked otherwise
- Keep heading order per spec
Examples
- references/examples/k8s-network/ — modular sample (objects, relations, actions, concept group)
Delivered BKN: root SKILL.md
When you build a knowledge network directory {network_dir}/, add {network_dir}/SKILL.md at the root (alongside network.bkn). Short overview + index tables with file paths (object | path | relation | path | action | path) so agents route to the right .bkn without scanning. Optional: topology sketch, usage scenarios. Example: references/examples/k8s-network/SKILL.md.


