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)
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
- Click Create Rule
- Enter a name and optional description
- 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.
Related data placeholders
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
- Save your rule
- Click Run Job (or use the dropdown on the rules list)
- Optionally enable Overwrite existing to re-process nodes that already have results
- 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;
@TaxonomyNameexpansion 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