Class: Rubino::Agent::IterationBudget
- Inherits:
-
Object
- Object
- Rubino::Agent::IterationBudget
- Defined in:
- lib/rubino/agent/iteration_budget.rb
Overview
Manages turn and iteration budgets to prevent runaway loops.
Instance Method Summary collapse
-
#can_continue?(iteration) ⇒ Boolean
Returns true if the agent can continue iterating.
-
#initialize(config: nil, max_tool_iterations: nil) ⇒ IterationBudget
constructor
A new instance of IterationBudget.
Constructor Details
#initialize(config: nil, max_tool_iterations: nil) ⇒ IterationBudget
Returns a new instance of IterationBudget.
7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/rubino/agent/iteration_budget.rb', line 7 def initialize(config: nil, max_tool_iterations: nil) @config = config || Rubino.configuration @max_turns = @config.agent_max_turns # An explicit override (the CLI `--max-turns N` flag, threaded through # Runner → Lifecycle) wins over the config default so the documented # control knob actually caps tool iterations (#141). A nil/blank # override falls back to the configured budget, unchanged. @max_tool_iterations = positive_int(max_tool_iterations) || @config.agent_max_tool_iterations @max_turn_seconds = @config.agent_max_turn_seconds @turn_started_at = Time.now end |
Instance Method Details
#can_continue?(iteration) ⇒ Boolean
Returns true if the agent can continue iterating
20 21 22 |
# File 'lib/rubino/agent/iteration_budget.rb', line 20 def can_continue?(iteration) within_iteration_limit?(iteration) && within_time_limit? end |