from splinter.control import RateLimiterlimiter = RateLimiter()# 20 calls per minute for this agentlimiter.set_agent_limit("researcher", calls=20, window_seconds=60)# Check before callingif limiter.check_agent("researcher"): # Make the call limiter.record_agent_call("researcher")
limiter = RateLimiter()# Researcher does lots of small callslimiter.set_agent_limit("researcher", calls=30, window_seconds=60)# Writer does fewer, larger callslimiter.set_agent_limit("writer", calls=10, window_seconds=60)# Reviewer is conservativelimiter.set_agent_limit("reviewer", calls=5, window_seconds=60)
limiter = RateLimiter()# Web search is expensivelimiter.set_tool_limit("web_search", calls=10, window_seconds=60)# File operations are cheaplimiter.set_tool_limit("read_file", calls=100, window_seconds=60)# Check tool accesslimiter.check_tool("web_search") # Raises if over limitlimiter.record_tool_call("web_search")
limiter = RateLimiter()# Overall API limitlimiter.set_global_limit(calls=100, window_seconds=60)# Per-agent limits still apply on toplimiter.set_agent_limit("researcher", calls=30, window_seconds=60)