Class: RubyLLM::Agents::Pipeline::Middleware::Reliability
- Defined in:
- lib/ruby_llm/agents/pipeline/middleware/reliability.rb
Overview
Handles retries, fallbacks, and circuit breakers.
This middleware provides reliability features for agent executions:
-
Retries with configurable backoff (constant or exponential)
-
Model fallbacks when primary model fails
-
Circuit breaker protection per model
-
Total timeout across all attempts
Reliability is enabled via the agent’s reliability DSL:
class MyAgent < ApplicationAgent
reliability do
retries max: 3, backoff: :exponential
fallback_models "gpt-4o-mini"
total_timeout 30
circuit_breaker errors: 5, within: 60
end
end
Constant Summary
Constants inherited from Base
Instance Method Summary collapse
-
#call(context) ⇒ Context
Process with reliability features.
Methods inherited from Base
Constructor Details
This class inherits a constructor from RubyLLM::Agents::Pipeline::Middleware::Base
Instance Method Details
#call(context) ⇒ Context
Process with reliability features
41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/ruby_llm/agents/pipeline/middleware/reliability.rb', line 41 def call(context) return @app.call(context) unless reliability_enabled? trace(context) do config = reliability_config models_to_try = build_models_list(context, config) total_deadline = calculate_deadline(config) execute_with_reliability(context, models_to_try, config, total_deadline) end end |