When you run the same enrichment across multiple AI models, Entity Enricher can fuse the results into a single, high-confidence output. Fusion detects conflicts between model outputs and resolves them using deterministic rules or LLM-powered arbitration.
The conflict detector compares every field across all model outputs. Fields where all models agree pass through unchanged. Fields where models disagree are flagged as conflicts that need resolution.
| Type | How Compared | Agreement Means |
|---|---|---|
| Scalar | Normalized exact match (trimmed, lowercased, rounded) | All values equal after normalization |
| Multilingual | Per-language comparison | Each language key matches across models |
| Array | Set comparison (order-independent) | Same items regardless of order |
| Object | Recursive per-property | All nested properties match |
| Null | Null equals missing | Treated as equivalent |
Conflicts are resolved using one of two methods, depending on whether you selected an arbitration model in the sidebar.
Deterministic rules are applied based on each field's data type. No additional LLM calls are needed — resolution is instant and free.
| Field Type | Rule | Rationale |
|---|---|---|
| String | Majority vote; tie goes to the longest value | More detail is usually better |
| Number | Median value | Robust to outliers |
| Boolean | Majority; true wins ties | Conservative default |
| Multilingual | Per-language majority vote | Each language resolved independently |
| Array | Union of all items | Preserve all information |
| Object | Recursive per-field | Apply rules to nested fields |
| Null vs Value | Prefer non-null | Missing data is worse than any value |
Tie-breaker: When votes are tied, the value from the higher-priced model wins (as a proxy for capability), followed by alphabetical model name ordering.
When you select an arbitration model in the sidebar, conflicts are sent to an LLM for intelligent resolution. The arbitrator receives the entity context, schema field descriptions, and all conflicting values, then makes reasoned decisions.
Fallback: If the arbitration model fails (timeout, error), the system automatically falls back to rule-based merge so you always get a result.
After conflict resolution, the system builds a single merged result and stores it as an “arbitration” record in the database. Every merged result includes an audit trail so you can trace how each conflict was resolved.
Every merged result includes metadata that documents the fusion process:
After fusion completes, the “Merged” tab in the results panel shows:
In batch enrichment, fusion happens automatically when you select two or more models. You do not need to click “Merge Results” manually — as soon as all models complete for an entity, fusion runs and the merged result appears alongside the individual model outputs.
fusion_started, conflicts_detected, and fusion_completed events in real-time.