Tier 1: Circuit Breakers

Safety mechanisms to prevent infinite loops.


Why Circuit Breakers?

Without limits, loops can:

  • Run forever
  • Burn API credits
  • Mask bugs

Configuration

from circuit_breaker import CircuitBreaker, CircuitBreakerConfig

config = CircuitBreakerConfig(
    max_iterations=50,      # Hard stop at 50 loops
    max_task_attempts=3,    # Max 3 tries per task
    similarity_threshold=3  # Stop if same error 3x
)
breaker = CircuitBreaker(config)

Trip Conditions

1. Max Iterations

if breaker.iterations >= config.max_iterations:
    raise CircuitBreakerTripped("Max iterations reached")

2. Repeated Errors

if same_error_count >= config.similarity_threshold:
    raise CircuitBreakerTripped("Repeated error detected")

3. Repeated Output

if output_hash in recent_outputs:
    raise CircuitBreakerTripped("Identical output detected")

Usage in Loop

while not breaker.tripped():
    breaker.record_iteration()

    task = manager.get_next_pending()
    if not task:
        break

    result = executor.execute(task)
    breaker.record_output(result)

    if result.error:
        breaker.record_error(result.error)

Best Practices

  1. Always set limits - Never run unlimited
  2. Log breaker events - Debug why it tripped
  3. Tune thresholds - Adjust based on task type

Next Steps


← Back to Tutorials

Back to top

8me Showcase - AI Agent Orchestration Learning Platform

This site uses Just the Docs, a documentation theme for Jekyll.