skills/skills.volces.com/knowledge-graph

knowledge-graph

SKILL.md

Knowledge Graph Skill

Personal KG stored as JSON, queried via CLI scripts. Produces a compact KGML summary for session context. Core instructions are in AGENTS.md (auto-injected by install). This file covers setup, advanced usage, and reference only.

First-Time Setup

node scripts/install.mjs [--workspace /path/to/workspace] [--platform openclaw|claude|gemini]

Auto-detects platform and patches the agent instructions file (AGENTS.md, CLAUDE.md, or GEMINI.md) with KG instructions + graph summary. Idempotent.

KGML Format Reference

#KGML v2 | <count>e <count>r | depth:<N> | <date>
[category]
Label(Alias):type — attr1,attr2
  ChildLabel(CA):type — attrs    ← indent = parent>child
%rels
A>verb>B C>verb>D                ← cross-branch relations (aliases)
%vault key1,key2                 ← vault key names (no values)

Advanced Query Commands

Beyond the basics in AGENTS.md (find, traverse, rels):

node scripts/query.mjs children <id>      # Direct children
node scripts/query.mjs type <type>         # All entities of a type
node scripts/query.mjs cat <category>      # All in category
node scripts/query.mjs orphans             # Unlinked entities
node scripts/query.mjs stats               # Graph statistics
node scripts/query.mjs recent [--days 7]   # Created/updated recently
node scripts/query.mjs timeline [--from YYYY-MM-DD] [--to YYYY-MM-DD]
node scripts/query.mjs changed             # Modified after creation
node scripts/query.mjs uncertain           # Confidence < 0.5

Merge

node scripts/merge.mjs --target <id> --source <id> --mode absorb|nest

Vault (secrets)

node scripts/vault.mjs set <key> <value> --note "description"
node scripts/vault.mjs get <key>          # Raw value (for piping)
node scripts/vault.mjs list               # Keys only
node scripts/vault.mjs del <key>

Depth Heuristic — How Many Layers to Extract

Before adding a rich knowledge item (article, paper, report, system description), assess complexity first:

# Score text content and get recommended depth + checklist:
node scripts/depth-check.mjs "paste text or summary here"
echo "article text" | node scripts/depth-check.mjs
node scripts/depth-check.mjs --file /path/to/article.txt
node scripts/depth-check.mjs --json    # machine-readable

# Score interpretation:
# 0-1 → 1 layer (root only)
# 2-3 → 2 layers (root + concepts)
# 4-5 → 3 layers (root → domains → mechanisms)
# 6-7 → 4+ layers (full extraction with orgs/events/policies + cross-relations)

Key rule: Never stop at 2 layers for complex content. If score ≥ 4, extract all named orgs, events, policies, and cross-relations — not just the top-level themes.

Visualization

node scripts/visualize.mjs                # → data/kg-viz.html
node scripts/visualize.mjs --output /tmp/graph.html

ALWAYS use this script. Do NOT write custom HTML. Output is self-contained, offline, no CDN.

Parent edges render as blue dashed arrows (60% opacity). Regular edges are red solid arrows.

Configuration

All settings have sensible defaults. Override only what you need — config stores only your changes.

node scripts/config.mjs                       # list all settings with current values
node scripts/config.mjs get <key>              # get a value (e.g. summary.tokenBudget)
node scripts/config.mjs set <key> <value>      # set a value
node scripts/config.mjs reset <key>            # reset single key to default
node scripts/config.mjs reset --all            # reset everything
node scripts/config.mjs --json                 # full config as JSON

Available Settings

Section Key Default Description
summary tokenBudget 5000 Max tokens for kg-summary.md
maxChildDepth auto Tree depth (null=auto: 3/<100, 2/100-400, 1/>400)
maxAttrLen 40 Max characters for attribute values
maxPerRoot 4 Max relations shown per root subtree
compactThreshold 400 Entity count for compact mode
mediumThreshold 200 Entity count for medium depth
validation minEntities 30 Min entities for extraction PASS
minRelationRatio 0.5 Relations per entity ratio
minDepth 3 Min hierarchy depth for PASS
minEvents 3 Min event nodes for PASS
depthCheck entityCapForEstimate 50 Cap NER count for target estimation
minEntitiesMultiplier 1.0 Named entities → min target multiplier
extraEntities 30 Added to min for max entity range
consolidation autoNest true Auto-nest single-relation orphans
mergeSuggestions true Suggest merges for similar labels
pruneEmptyAttrs true Remove empty/null attrs
levenshteinThreshold 2 Max edit distance for merge suggestions
visualization repulsion 5000 Physics repulsion force
edgeRestLength 160 Default edge rest length
overlapPenalty 3 Overlap repulsion multiplier
simulationSteps 500 Physics simulation iterations
initialSpread 1.5 Initial node spread multiplier
zoomAnimationMs 400 Zoom-to-node animation duration

Config file: data/kg-config.json (per-agent, gitignored).

Cross-Agent Access (read-only)

import { createReader } from '<path-to-skill>/lib/reader.mjs';
const kg = createReader();
kg.search("query"); kg.traverse("id", { depth: 2 }); kg.stats();

Or CLI: node scripts/export.mjs --format json --target /path/to/output.json

Memory Import

node scripts/import-memory.mjs            # dry-run
node scripts/import-memory.mjs --apply    # add with confidence 0.5

Then: node scripts/query.mjs uncertain to review auto-imported entities.

Knowledge Entity Guide

The knowledge type covers both declarative and procedural knowledge. Use attrs and tags to differentiate:

Kind Tags Key attrs Example
Fact/finding #fact, #til source, field, summary "LLMs use ~4 chars per token"
Research/paper #paper, #research source, field, summary, author AI alignment paper findings
Idea #idea summary, status "Build a CLI for KG queries"
How-to/procedure #howto, #procedure steps, context, summary "How to deploy on Pi"
Mental model #mental-model, #framework steps, context, summary "Debug network: ping→DNS→firewall"
Workflow #workflow steps, context, summary "Code review: tests first, then impl"

Attrs for procedural knowledge:

  • steps: ordered procedure as string (use or numbered: "1. Check logs → 2. Reproduce → 3. Fix → 4. Test")
  • context: when/where to apply this knowledge (e.g. "when network is down", "during code review")
  • summary: short description of what this knowledge is about

Consolidation

Run node scripts/consolidate.mjs weekly or when entity count > 80. Then summarize.mjs.

Security

  • NEVER print vault values in chat or log to memory/ files
  • vault.enc.json and .vault-key must never be in context
  • Other agents: read-only via reader.mjs, NO write access
Weekly Installs
3
First Seen
4 days ago
Installed on
openclaw3