Enrichment blocks
Embed
Turn each chunk’s text into a dense vector. Pick the embedding provider that fits your data (multilingual for non-English, longer-context for large chunks, smaller-dim for cost). The picker shows dimension, context window, and per-1k-token cost so you can compare. Embedding is what makes semantic search work — vectors closer in space are more relevant to each other. Every chunk gets avector field written to the Output store.
Auto-tag (LLM)
Ask a small model to tag each chunk. Give it a list of possible tags and a short instruction. Common uses:- Domain:
billing,auth,pricing,security - Audience:
internal,customer,developer - Content type:
how-to,reference,troubleshooting
Entity extraction
Detect and normalize named entities:- People, organizations, locations.
- Products, SKUs, project codes.
- Dates and durations.
- Custom entities via regex or a small classifier.
Language detection
Detects the chunk’s language and writes it as a metadata field. Enables per-Agent language filters.Summary generator
Adds a one-paragraph summary of each chunk. Retrieval can search on the summary in addition to the full chunk — sometimes better recall for short, keyword-heavy queries.Sentiment / toxicity
Adds sentiment score and toxicity flags. Useful when your knowledge includes customer messages and you want to filter or route by emotional signal.Custom enricher (inline)
JS/Python inline function. Takes the chunk, returns extra metadata to attach. Good for calling your own scoring services.Cost management
Enrichment is where cost adds up — every LLM call, every embedding. Two levers:- Batch size — embedding APIs are much cheaper in batches. Default 100.
- Skip if unchanged — on by default. A chunk with the same content hash won’t be re-enriched even if the pipeline re-runs.