Rate Limiting Kit

Protect APIs and models from overuse with configurable rate limiting algorithms.

Configuration

60
10

Tokens Available

60

Allowed

0

Denied

0

Request Stream

Start traffic to see rate limiting in action

Integration Code

import { createRateLimiter } from 'agent-tools-kit/execution'

const limiter = createRateLimiter({
  algorithm: 'token-bucket',
  maxRequests: 60,
  window: 60_000,  // 1 minute
  burstSize: 10,
  onLimit: (req) => {
    logger.warn('Rate limited', { endpoint: req.url })
    return { status: 429, retryAfter: limiter.getRetryAfter() }
  },
})

// Use as middleware
agent.use(limiter.middleware())

// Or check manually
if (await limiter.allow('api-call')) {
  await callApi()
} else {
  await queue.enqueue(request)  // defer to queue
}