RAGGuardrails

org.llm4s.agent.guardrails.rag.RAGGuardrails
object RAGGuardrails

Preset configurations for RAG guardrails.

RAGGuardrails provides convenient preset combinations of guardrails for common RAG (Retrieval-Augmented Generation) use cases. Each preset balances security, quality, and latency differently.

Preset Levels:

  • minimal: Basic safety only (PII, input length)
  • standard: Balanced protection for production use
  • strict: Maximum safety with comprehensive validation
  • monitoring: Full validation in warn mode (no blocking)

Example usage:

// Get standard guardrails for production
val (inputGuardrails, outputGuardrails, ragGuardrails) =
 RAGGuardrails.standard(llmClient)

// Use in agent
agent.run(
 query = userQuery,
 tools = tools,
 inputGuardrails = inputGuardrails,
 outputGuardrails = outputGuardrails
)

// Use RAG guardrails separately
ragGuardrails.foreach { guardrail =>
 guardrail.validateWithContext(response, ragContext)
}

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Members list

Type members

Classlikes

final case class GuardrailConfig(inputGuardrails: Seq[InputGuardrail], outputGuardrails: Seq[OutputGuardrail], ragGuardrails: Seq[RAGGuardrail])

Result type for guardrail configurations.

Result type for guardrail configurations.

Value parameters

inputGuardrails

Guardrails applied to user input

outputGuardrails

Guardrails applied to LLM output

ragGuardrails

RAG-specific guardrails with context awareness

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

Value members

Concrete methods

def allGuardrails(config: GuardrailConfig): Seq[Guardrail[String]]

Get all guardrails as a flat sequence (for compatibility).

Get all guardrails as a flat sequence (for compatibility).

Value parameters

config

The guardrail configuration

Attributes

Returns

All guardrails as a sequence

def custom(inputGuardrails: Seq[InputGuardrail], outputGuardrails: Seq[OutputGuardrail], ragGuardrails: Seq[RAGGuardrail]): GuardrailConfig

Create a custom configuration by combining existing presets.

Create a custom configuration by combining existing presets.

Value parameters

inputGuardrails

Input guardrails to use

outputGuardrails

Output guardrails to use

ragGuardrails

RAG guardrails to use

Attributes

def customerSupport(llmClient: LLMClient, productTopics: Seq[String]): GuardrailConfig

Configuration for customer support applications.

Configuration for customer support applications.

Optimized for:

  • Keeping conversations on-topic
  • Ensuring accurate responses
  • Protecting customer PII

Value parameters

llmClient

LLM client for LLM-as-judge guardrails

productTopics

Topics related to your product/service

Attributes

def financial(llmClient: LLMClient, allowedTopics: Seq[String]): GuardrailConfig

Configuration for financial applications.

Configuration for financial applications.

Optimized for:

  • Strict PII/financial data protection
  • High accuracy requirements
  • Regulatory compliance

Value parameters

allowedTopics

Financial topics allowed

llmClient

LLM client for LLM-as-judge guardrails

Attributes

Minimal safety configuration.

Minimal safety configuration.

Includes only essential protections with low latency impact:

  • PII detection (no LLM calls)
  • Prompt injection detection (no LLM calls)

Best for: Low-latency applications, internal tools, testing

Attributes

Monitoring configuration.

Monitoring configuration.

Full validation in warn mode (never blocks):

  • All checks enabled
  • Warnings logged but processing continues
  • Useful for measuring quality without impacting users

Best for: Development, quality measurement, gradual rollout

Value parameters

llmClient

LLM client for LLM-as-judge guardrails

Attributes

Configuration for research assistants.

Configuration for research assistants.

Optimized for:

  • High accuracy and grounding
  • Proper source attribution
  • Lenient topic boundaries (research is broad)

Value parameters

llmClient

LLM client for LLM-as-judge guardrails

Attributes

Configuration for software documentation assistants.

Configuration for software documentation assistants.

Optimized for:

  • Technical accuracy
  • Source attribution for code examples
  • Staying within programming topics

Value parameters

llmClient

LLM client for LLM-as-judge guardrails

Attributes

Standard protection configuration.

Standard protection configuration.

Balanced set of guardrails for production use:

  • Input: PII detection, prompt injection, topic boundary
  • Output: PII masking, grounding validation
  • RAG: Context relevance, source attribution

Note: LLM-based guardrails require the llmClient parameter.

Best for: Production RAG applications

Value parameters

llmClient

LLM client for LLM-as-judge guardrails

Attributes

def standardWithTopics(llmClient: LLMClient, allowedTopics: Seq[String]): GuardrailConfig

Standard protection with topic restrictions.

Standard protection with topic restrictions.

Same as standard but adds topic boundary validation.

Value parameters

allowedTopics

Topics that queries should relate to

llmClient

LLM client for LLM-as-judge guardrails

Attributes

def strict(llmClient: LLMClient, allowedTopics: Seq[String]): GuardrailConfig

Strict protection configuration.

Strict protection configuration.

Maximum safety with comprehensive validation:

  • Input: Strict PII detection, high-sensitivity injection detection, topic boundary
  • Output: PII masking, strict grounding
  • RAG: Strict context relevance, source attribution required

Note: Higher latency due to multiple LLM calls.

Best for: High-stakes applications, regulated industries

Value parameters

allowedTopics

Topics that queries should relate to

llmClient

LLM client for LLM-as-judge guardrails

Attributes