class Riffer::Guardrail
Base class for guardrails that process input and output in the agent pipeline.
class MyGuardrail < Riffer::Guardrail def process_input(messages, context:) # Return pass(messages), transform(modified_messages), or block(reason) pass(messages) end def process_output(response, messages:, context:) # Return pass(response), transform(modified_response), or block(reason) pass(response) end end
Public Instance Methods
Source
# File lib/riffer/guardrail.rb, line 38 def name Riffer::Helpers::ClassNameConverter.convert(self.class.name) end
Returns the guardrail’s identifier, used as the tracing span suffix and the riffer.guardrail.name attribute; override to label the span.
Source
# File lib/riffer/guardrail.rb, line 22 def process_input(messages, context:) pass(messages) end
Processes input messages before they’re sent to the LLM; override in subclasses.
Source
# File lib/riffer/guardrail.rb, line 30 def process_output(response, messages:, context:) pass(response) end
Processes the output response after it’s received from the LLM; override in subclasses.
Protected Instance Methods
Source
# File lib/riffer/guardrail.rb, line 61 def block(reason, metadata: nil) Riffer::Guardrails::Result.block(reason, metadata: metadata) end
Creates a block result that halts execution.
Source
# File lib/riffer/guardrail.rb, line 47 def pass(data) Riffer::Guardrails::Result.pass(data) end
Creates a pass result that continues with unchanged data.
Source
# File lib/riffer/guardrail.rb, line 54 def transform(data) Riffer::Guardrails::Result.transform(data) end
Creates a transform result that continues with transformed data.