Skip to main content

Overview

Enrichment rules let you enrich your knowledge graph after document ingestion is complete. Using prompt-based, LLM-powered rules, you can:
  • Add or update attributes on existing nodes (e.g., tag projects with domains from a taxonomy)
  • Create new nodes inferred from existing data (e.g., generate Obligation nodes from ContractClauses)
  • Create relationships between nodes (e.g., link Employees to Skills based on resume content)
  • Create nodes and relationships in one step (e.g., create Obligation and link it to the source)
Navigate to Admin > Graph > Rules.

How It Works

Each enrichment rule has three parts: The system processes each target node through the LLM and applies the results back to the graph.

Creating a Rule

  1. Click Create Rule
  2. Enter a name and optional description
  3. Configure the three sections below

Target Configuration

Input Configuration

Choose what data to send to the LLM for each node:

Prompt

Write a natural language prompt that guides the LLM. Placeholders are replaced with actual graph data before the prompt is sent.

Target node placeholders

Placeholder names must match the attribute names in your Input configuration. Use snake_case if your graph uses it. When Neighborhood is configured, you can reference related nodes: The Label in {related.Label} must match the target label from your neighborhood configuration (e.g., Resume, Skill, Status).

Taxonomy expansion

Use @TaxonomyName to inject taxonomy values into the prompt. The tag is replaced with a list of active leaf values from that taxonomy type. The LLM receives the full list, which helps it choose from valid options. Define taxonomies in Admin > Graph > Taxonomies before creating rules.

Example prompt

Output format

The system automatically appends format instructions based on your Output type. For attributes, nodes, and relationships, the LLM is instructed to return valid JSON only — no markdown, prose, or bullet points. You can add Output instructions per attribute to give the LLM extra guidance (e.g., “Use title case” or “Pick the most specific match”).
Prompts support the same @TaxonomyName syntax used in ingestion. Define your taxonomies before creating rules for best results.

Output Configuration

For relationships, specify the relationship type and target node label. The LLM will match or create target nodes based on your prompt.

Running Inference Jobs

  1. Save your rule
  2. Click Run Job (or use the dropdown on the rules list)
  3. Optionally enable Overwrite existing to re-process nodes that already have results
  4. Monitor progress in the Jobs tab

Job Status

Job Actions

  • View — See job details and results
  • Cancel — Stop a running job
  • Resume — Continue a failed or cancelled job from where it left off

Viewing Results

  • Per rule: Open a rule and go to the Jobs tab to see execution history
  • All jobs: Use the Executions tab on the Rules page to see all enrichment jobs across rules
  • Job details: Click any job to view processed nodes, errors, created/updated entities, and lineage record ids linking to graph audit entries when present

Graph lineage

Each successful enrichment write also creates a graph lineage record on the target node. Open the entity in the graph explorer to see which rule and model produced each attribute change. See Graph Lineage for details.

Flow Integration

Enrichment rules can be used as steps in Flows. Add an Enrichment node to your flow and select the rule to run. The enrichment step runs when the flow executes, either manually or on a schedule.

Configuration

Settings that affect enrichment (available in Admin > System Settings):

Best Practices

  • Start with taxonomy — Define taxonomies before creating rules; @TaxonomyName expansion improves classification accuracy
  • Test on a subset — Use a target filter to limit nodes when testing a new rule
  • Review results — Check job results after the first run to ensure the prompt produces expected output
  • Use specific prompts — Clear, specific prompts yield better results than vague instructions
Enrichment runs asynchronously via RabbitMQ. Ensure the enrichment worker is running (e.g., in Docker Compose) for jobs to process.