examples/30_workloads/
tier is where the Basics and
Core APIs come together into applications you’d
actually ship. Each is a single runnable file with a heavily commented walkthrough.
The summaries below distil what each one teaches and the one call that carries it.
These workloads lean on VectorCypher’s knowledge graph, so they’re best on
PostgreSQL + Neo4j (
make dev). Pass --config examples/khora.standard.yaml to
point at that stack. They also run on the zero-infra embedded backend (pip install "khora[sqlite-lance]" + OPENAI_API_KEY), but entity vectors aren’t indexed there
yet, so write-time dedup and some graph reads degrade.| Workload | Teaches |
|---|---|
| Support-ticket graph | Vector search vs. multi-hop graph traversal |
| Namespace versioning | The dual-UUID model and the storage API |
| Resume search | Full extraction + cross-document entity resolution |
Support-ticket knowledge graph
Ingest ~100 support tickets, then ask two shapes of question. “Tickets about login failures” is a ranked-list problem. Vector search nails it. “Give me context around Acme Logistics” is a neighborhood problem. The answer is Acme’s tickets, the products Acme uses, the agents handling them, the error categories, and other customers on the same products. That’s a 2-hop graph walk, not a similarity search.ORGANIZATION, SKU = PRODUCT, error category =
CONCEPT, agent = PERSON) so the multi-hop walk has real structure to follow.
Namespace versioning
AMemoryNamespace carries two UUIDs: namespace_id is the stable id (same
across every version: hold this in your application code), and id is the
row primary key, distinct per version. The high-level facade
(kb.remember / kb.recall) takes the stable id and resolves to the active
version. The storage layer (kb.storage.*) takes a row id to address a specific
version.
Resume search
The entity-centric workload where dedup is the story: 50 résumés where “Stripe”, “Stripe Inc.”, “Stripe, Inc.” and “stripe.com” must resolve to one node, and “k8s” / “K8s” / “Kubernetes” to another, before you can answer “Stripe alumni who know Kubernetes.” It runs VectorCypher at full extraction (skeleton_core_ratio=1.0:
the documented replacement for the removed graphrag engine) with a domain-specific
ExpertiseConfig whose system prompt does the canonicalization.
ExpertiseConfig system prompt is the
stable API for taxonomies. Defaults to PostgreSQL + Neo4j. The embedded
backend has no entity-vector index, so similarity dedup can’t catch variants the LLM
didn’t already collapse.
Next steps
extension
Integrations
Wire these patterns into CrewAI, LangGraph, Google ADK, OpenAI Agents, or
LlamaIndex.
settings_input_component
VectorCypher
How the engine fuses vector, graph, and keyword search behind these examples.