knowledge_graph_skill
Skill for searching and evolving the SQLite-backed Knowledge Graph. Use this when you need structured fact/concept/link search across one or more teams, NPCs, or directory scopes.
The Knowledge Graph (KG) is stored in the application's database (not YAML). It is scoped by (team_name, npc_name, directory_path). Facts and concepts carry generation numbers and origin tags.
Search methods (choose the right one):
Keyword search — fast substring match over fact statements.
kg_search_facts(engine_or_kg, "keyword") → List[str]
Embedding search — semantic cosine similarity via vector embeddings.
kg_embedding_search(engine_or_kg, query="...", embedding_model="nomic-embed-text", embedding_provider="ollama", similarity_threshold=0.6, max_results=20)
→ List[dict] with 'content', 'type', 'score'
Link search — graph traversal (BFS/DFS) starting from keyword-matched seeds.
kg_link_search(engine_or_kg, query="...", max_depth=2, breadth_per_step=5, strategy="bfs", max_results=20)
→ List[dict] with 'content', 'type', 'depth', 'path', 'score'
Hybrid search — combines keyword + embedding + link, boosting results
found by multiple methods.
kg_hybrid_search(engine_or_kg, query="...", mode="all", max_depth=2, similarity_threshold=0.6, max_results=20)
→ List[dict] with 'content', 'type', 'score', 'source'
Graph evolution (use sparingly, usually in background): - kg_initial(content, model, provider) — build a new KG from text - kg_evolve_incremental(existing_kg, new_content_text, ...) — add content - kg_sleep_process(existing_kg, model, provider) — prune/deepen/consolidate - kg_dream_process(existing_kg, model, provider, num_seeds) — speculative synthesis
When a user asks a question that spans facts, concepts, and their relationships, prefer hybrid search. For pure semantic similarity without graph structure, use embedding search. For exploring connected neighborhoods, use link search with BFS.
Inputs
name (default: 'search_method')
description (default: 'keyword | embedding | link | hybrid')
name (default: 'query')
description (default: "The user's query or topic to search")
name (default: 'scope_team')
description (default: 'Team name to scope the search (optional)')
name (default: 'scope_npc')
description (default: 'NPC name to scope the search (optional)')
name (default: 'scope_directory')
description (default: 'Directory path to scope the search (optional)')
Steps
Usage
/run_jinx jinx_ref=knowledge_graph_skill input_values={"name": "scope_directory", "description": "Directory path to scope the search (optional)"}
1---2name: knowledge-graph-skill3description: Skill for searching and evolving the SQLite-backed Knowledge Graph. Use this when you need structured fact/concept/link search across one or more teams, NPCs, or directory scopes. The Knowledge Graph (KG) is stored in the application's database (not YAML). It is scoped by (team_name, npc_name, directory_path). Facts and concepts carry generation numbers and origin tags. Search methods (choose the right one): 1. Keyword search — fast substring match over fact statements. `kg_search_facts(engine_or_kg, "keyword")` → List[str] 2. Embedding search — semantic cosine similarity via vector embeddings. `kg_embedding_search(engine_or_kg, query="...", embedding_model="nomic-embed-text", embedding_provider="ollama", similarity_threshold=0.6, max_results=20)` → List[dict] with 'content', 'type', 'score' 3. Link search — graph traversal (BFS/DFS) starting from keyword-matched seeds. `kg_link_search(engine_or_kg, query="...", max_depth=2, breadth_per_step=5, strategy="bfs", max_results=20)` → List[dict] with 'content', 'ty4---56# knowledge_graph_skill78Skill for searching and evolving the SQLite-backed Knowledge Graph. Use this when you need structured fact/concept/link search across one or more teams, NPCs, or directory scopes.9The Knowledge Graph (KG) is stored in the application's database (not YAML). It is scoped by (team_name, npc_name, directory_path). Facts and concepts carry generation numbers and origin tags.10Search methods (choose the right one):111. Keyword search — fast substring match over fact statements.12 `kg_search_facts(engine_or_kg, "keyword")` → List[str]13142. Embedding search — semantic cosine similarity via vector embeddings.15 `kg_embedding_search(engine_or_kg, query="...", embedding_model="nomic-embed-text",16 embedding_provider="ollama", similarity_threshold=0.6, max_results=20)`17 → List[dict] with 'content', 'type', 'score'18193. Link search — graph traversal (BFS/DFS) starting from keyword-matched seeds.20 `kg_link_search(engine_or_kg, query="...", max_depth=2, breadth_per_step=5,21 strategy="bfs", max_results=20)`22 → List[dict] with 'content', 'type', 'depth', 'path', 'score'23244. Hybrid search — combines keyword + embedding + link, boosting results25 found by multiple methods.26 `kg_hybrid_search(engine_or_kg, query="...", mode="all", max_depth=2,27 similarity_threshold=0.6, max_results=20)`28 → List[dict] with 'content', 'type', 'score', 'source'2930Graph evolution (use sparingly, usually in background): - `kg_initial(content, model, provider)` — build a new KG from text - `kg_evolve_incremental(existing_kg, new_content_text, ...)` — add content - `kg_sleep_process(existing_kg, model, provider)` — prune/deepen/consolidate - `kg_dream_process(existing_kg, model, provider, num_seeds)` — speculative synthesis31When a user asks a question that spans facts, concepts, and their relationships, prefer hybrid search. For pure semantic similarity without graph structure, use embedding search. For exploring connected neighborhoods, use link search with BFS.3233## Inputs3435- `name` (default: `'search_method'`)36- `description` (default: `'keyword | embedding | link | hybrid'`)37- `name` (default: `'query'`)38- `description` (default: `"The user's query or topic to search"`)39- `name` (default: `'scope_team'`)40- `description` (default: `'Team name to scope the search (optional)'`)41- `name` (default: `'scope_npc'`)42- `description` (default: `'NPC name to scope the search (optional)'`)43- `name` (default: `'scope_directory'`)44- `description` (default: `'Directory path to scope the search (optional)'`)4546## Steps4748- `instruct` → [`instruct.py`](./instruct.py)4950## Usage5152```53/run_jinx jinx_ref=knowledge_graph_skill input_values={"name": "scope_directory", "description": "Directory path to scope the search (optional)"}54```