class Riffer::Agent::Config
rbs_inline: enabled
Constants
- DEFAULT_MAX_STEPS
Attributes
@rbs @tool_runtime: (singleton(Riffer::Tools::Runtime) | Riffer::Tools::Runtime | Proc)?
Public Class Methods
Source
# File lib/riffer/agent/config.rb, line 34 def initialize( identifier: nil, model: nil, instructions: nil, model_options: {}, structured_output: nil, max_steps: DEFAULT_MAX_STEPS, tools_config: nil, mcp_configs: [], tool_runtime: nil, skills_config: nil, guardrails: { before: [], after: [] } ) @model_options = model_options @max_steps = max_steps @tools_config = tools_config @mcp_configs = mcp_configs @skills_config = skills_config @guardrails = guardrails self.identifier = identifier self.model = model self.instructions = instructions self.structured_output = structured_output self.tool_runtime = tool_runtime if tool_runtime end
Public Instance Methods
Source
# File lib/riffer/agent/config.rb, line 121 def add_guardrail(phase, klass:, options: {}) valid_phases = [*Riffer::Guardrails::PHASES, :around] raise Riffer::ArgumentError, "Invalid guardrail phase: #{phase}" unless valid_phases.include?(phase) unless klass.is_a?(Class) && klass <= Riffer::Guardrail raise Riffer::ArgumentError, "Guardrail must be a Riffer::Guardrail subclass" end cfg = { class: klass, options: options } case phase when :before @guardrails[:before] << cfg when :after @guardrails[:after] << cfg when :around @guardrails[:before] << cfg @guardrails[:after] << cfg end end
Source
# File lib/riffer/agent/config.rb, line 113 def add_mcp(tag, progressive: true) raise Riffer::ArgumentError, "progressive must be a boolean" unless [true, false].include?(progressive) @mcp_configs << { tags: [tag.to_sym], progressive: progressive } end
Source
# File lib/riffer/agent/config.rb, line 143 def guardrails_for(phase) @guardrails[phase] || [] end
Source
# File lib/riffer/agent/config.rb, line 62 def identifier=(value) @identifier = value&.to_s end
Source
# File lib/riffer/agent/config.rb, line 106 def instructions=(value) validate_string_or_proc!(value, "instructions") @instructions = value end
Source
# File lib/riffer/agent/config.rb, line 99 def model=(value) validate_string_or_proc!(value, "model") @model = value end
Source
# File lib/riffer/agent/config.rb, line 68 def structured_output=(value) unless value.nil? || value.is_a?(Riffer::Params) raise Riffer::ArgumentError, "structured_output must be a Riffer::Params" end @structured_output = value end
Source
# File lib/riffer/agent/config.rb, line 78 def tool_runtime # Resolved here rather than at construction so a copy can tell an inherited # runtime from a defaulted one. @tool_runtime || Riffer.config.tool_runtime end
Source
# File lib/riffer/agent/config.rb, line 86 def tool_runtime=(value) valid = (value.is_a?(Class) && value < Riffer::Tools::Runtime) || value.is_a?(Riffer::Tools::Runtime) || value.is_a?(Proc) unless valid raise Riffer::ArgumentError, "tool_runtime must be a Riffer::Tools::Runtime subclass, instance, or a Proc" end @tool_runtime = value end