Class: Riffer::Config

Inherits:
Object
  • Object
show all
Defined in:
lib/riffer/config.rb

Overview

Configuration for the Riffer framework.

Provides configuration options for AI providers and other settings.

Riffer.config.openai.api_key = "sk-..."

Riffer.config.amazon_bedrock.region = "us-east-1"
Riffer.config.amazon_bedrock.api_token = "..."

Riffer.config.anthropic.api_key = "sk-ant-..."

Riffer.config.evals.judge_model = "anthropic/claude-sonnet-4-20250514"

Defined Under Namespace

Classes: AmazonBedrock, Anthropic, AzureOpenAI, Evals, Gemini, Mcp, OpenAI, Skills

Constant Summary collapse

VALID_MESSAGE_ID_STRATEGIES =
%i[none uuid uuidv7].freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfig

– : () -> void



156
157
158
159
160
161
162
163
164
165
166
167
# File 'lib/riffer/config.rb', line 156

def initialize
  @amazon_bedrock = AmazonBedrock.new
  @anthropic = Anthropic.new
  @azure_openai = AzureOpenAI.new
  @gemini = Gemini.new
  @openai = OpenAI.new
  @evals = Evals.new
  @mcp = Mcp.new(credentials: nil, discovery_runner: Riffer::Runner::Sequential.new)
  @tool_runtime = Riffer::ToolRuntime::Inline.new
  @skills = Skills.new
  @message_id_strategy = :none
end

Instance Attribute Details

#amazon_bedrockObject (readonly)

Amazon Bedrock configuration (Struct with api_token and region).



80
81
82
# File 'lib/riffer/config.rb', line 80

def amazon_bedrock
  @amazon_bedrock
end

#anthropicObject (readonly)

Anthropic configuration (Struct with api_key).



83
84
85
# File 'lib/riffer/config.rb', line 83

def anthropic
  @anthropic
end

#azure_openaiObject (readonly)

Azure OpenAI configuration (Struct with api_key and endpoint).



86
87
88
# File 'lib/riffer/config.rb', line 86

def azure_openai
  @azure_openai
end

#evalsObject (readonly)

Evals configuration (Struct with judge_model).



95
96
97
# File 'lib/riffer/config.rb', line 95

def evals
  @evals
end

#geminiObject (readonly)

Google Gemini configuration (Struct with api_key, open_timeout, and read_timeout).



89
90
91
# File 'lib/riffer/config.rb', line 89

def gemini
  @gemini
end

#mcpObject (readonly)

MCP configuration (Struct with credentials and discovery_runner).

credentials is an optional Proc for per-run MCP tools/call HTTP headers. Signature: ->(manifest:, matched_tags:, context:) { Hash or nil }. nil from the proc at tool-resolution time omits that server’s tools; nil at tool-call time raises Riffer::Mcp::CredentialsDeniedError.

discovery_runner is the Riffer::Runner used to execute tool discovery (default Runner::Sequential).



106
107
108
# File 'lib/riffer/config.rb', line 106

def mcp
  @mcp
end

#message_id_strategyObject

Strategy for auto-generating message ids. One of :none (default, no id), :uuid (UUIDv4), or :uuidv7 (time-ordered UUIDv7).

When set to anything other than :none, each Riffer::Messages::Base instance gets an id populated at construction time, and seeded messages passed to Riffer::Agent#generate must carry their own :id.



137
138
139
# File 'lib/riffer/config.rb', line 137

def message_id_strategy
  @message_id_strategy
end

#openaiObject (readonly)

OpenAI configuration (Struct with api_key).



92
93
94
# File 'lib/riffer/config.rb', line 92

def openai
  @openai
end

#skillsObject (readonly)

Skills-related global configuration. Returns a Riffer::Config::Skills object — see Riffer.config.skills.default_activate_tool.



129
130
131
# File 'lib/riffer/config.rb', line 129

def skills
  @skills
end

#tool_runtimeObject

Global tool runtime configuration (experimental).

Accepts a Riffer::ToolRuntime subclass, a Riffer::ToolRuntime instance, or a Proc. Defaults to Riffer::ToolRuntime::Inline.new.



112
113
114
# File 'lib/riffer/config.rb', line 112

def tool_runtime
  @tool_runtime
end