0Pricing
AI Agents · Lektion

Rate-Limiting und Quotenverwaltung

Legen Sie Quoten pro Benutzer, Organisation und Endpunkt fest, damit ein einzelner Mandant Ihr OpenAI-Budget nicht aufbrauchen kann.

Rate-Limiting und Quotenverwaltung ist eine kostenlose AI Agents-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des AI Agents-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der AI Agents-Kurs umfasst insgesamt 4 Lektionen.

Teile dieser Lektion wurden noch nicht übersetzt und werden auf Englisch angezeigt.

Warum Limits?

Ohne Limits kann ein einzelner missbräuchlicher Client:

  • Ihr OpenAI-Budget aufbrauchen
  • Andere Benutzer verdrängen
  • Ihren Dienst per DDoS-Angriff lahmlegen

Rate-Limits und Kontingente schützen Kosten, Latenz und Fairness.

Rate-Limit oder Kontingent

  • Rate-Limit — Requests pro Sekunde/Minute (kurzfristig)
  • Kontingent — Gesamtbudget pro Tag/Monat (langfristig)

Sie benötigen beides.

Token-Bucket-Algorithmus

Der klassische Algorithmus: Jeder Benutzer hat einen „Bucket“, der sich mit einer festen Rate auffüllt. Jeder Request verbraucht ein Token. Keine Tokens, kein Dienst.

Redis Token Bucket Example

def allow(user_id, rate=10, capacity=30):
    key = f'rate:{user_id}'
    now = time.time()
    pipe = redis.pipeline()
    pipe.hgetall(key)
    state, _ = pipe.execute()
    tokens = float(state.get('tokens', capacity))
    last = float(state.get('last', now))
    tokens = min(capacity, tokens + (now - last) * rate)
    if tokens < 1:
        return False
    tokens -= 1
    redis.hset(key, mapping={'tokens': tokens, 'last': now})
    redis.expire(key, 60)
    return True

FastAPI Integration with slowapi

# pip install slowapi
from slowapi import Limiter
from slowapi.util import get_remote_address

limiter = Limiter(key_func=get_remote_address)
app.state.limiter = limiter

@app.post('/agents/qa')
@limiter.limit('10/minute')
def qa(req: AgentRequest):
    ...

Different Limits Per Tier

class User:
    def __init__(self, is_pro):
        self.is_pro = is_pro

class State:
    def __init__(self, is_pro):
        self.user = User(is_pro)

class Req:
    def __init__(self, is_pro):
        self.state = State(is_pro)

def limit_for(req):
    return '100/minute' if req.state.user.is_pro else '10/minute'

def qa(req):
    limit = limit_for(req)
    print(f'user is_pro={req.state.user.is_pro} -> rate limit {limit}')
    return limit

qa(Req(is_pro=True))
qa(Req(is_pro=False))

Kostenbasierte Kontingente

Begrenzen Sie die Kosten, nicht nur die Anzahl der Requests:

def check_budget(user_id, predicted_cost):
    key = f'cost:{user_id}:{date.today()}'
    spent = float(redis.get(key) or 0)
    if spent + predicted_cost > daily_budget(user_id):
        raise HTTPException(429, 'Daily budget exceeded')

# After the call:
redis.incrbyfloat(key, actual_cost)
redis.expireat(key, midnight_tomorrow_ts)

Limits für Nebenläufigkeit

Begrenzen Sie außerdem die Anzahl laufender Requests pro Benutzer:

key = f'inflight:{user_id}'
redis.sadd(key, request_id)
if redis.scard(key) > 3:
    raise HTTPException(429, 'Too many concurrent requests')
# Remove from set when the request finishes.

Globales Rate-Limit

Schützen Sie nachgelagerte LLM-APIs vor Ihrem eigenen Dienst:

global_key = 'rate:global:llm'
if redis.incr(global_key) > 60:   # 60 calls per second
    raise HTTPException(503, 'Service overloaded')
redis.expire(global_key, 1)

Return Useful Errors

headers = {
    'X-RateLimit-Limit': '60',
    'X-RateLimit-Remaining': '0',
    'X-RateLimit-Reset': str(reset_time),
    'Retry-After': '30'
}
return JSONResponse({'error': 'rate-limited'}, status_code=429, headers=headers)

Verteilte Rate-Limits

Wenn Sie mehrere API-Server betreiben, müssen Rate-Limits gemeinsam genutzt werden. Redis ist das Standard-Backend; Cloudflare und Kong bieten verwaltete Alternativen.

Burst-Spielraum

Die tatsächliche Nutzung erfolgt in Bursts. Erlauben Sie einen kleinen Burst, z. B. 30 Requests gleichzeitig bei einer Rate von 10 pro Sekunde. Token-Bucket-Implementierungen unterstützen das mit einer höheren `capacity` ganz natürlich.

Alarmierung

Alarmieren Sie, wenn:

  • Auslösungen des globalen Rate-Limits mehr als X-mal pro Minute auftreten
  • Ein Benutzer dauerhaft sein Limit erreicht (wahrscheinlich benötigt er ein Upgrade oder es liegt ein Fehler vor)
  • Sich das Tagesbudget 80 % nähert

Schutz auf zwei Ebenen

Warum sollten Sie SOWOHL Rate-Limits ALS AUCH Kontingente verwenden?

Zusammenfassung

Token-Bucket für Rate-Limits, Kostenzähler für Kontingente, Limits für Nebenläufigkeit pro Benutzer, globaler Circuit Breaker, hilfreiche 429-Antworten mit Retry-After.

Häufig gestellte Fragen

Ist die Lektion „Rate-Limiting und Quotenverwaltung“ kostenlos?

Ja — der vollständige Text von „Rate-Limiting und Quotenverwaltung“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des AI Agents-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der AI Agents-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Rate-Limiting und Quotenverwaltung“?

Legen Sie Quoten pro Benutzer, Organisation und Endpunkt fest, damit ein einzelner Mandant Ihr OpenAI-Budget nicht aufbrauchen kann. Du übst AI Agents mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um AI Agents zu starten?

Keine Vorkenntnisse erforderlich. AI Agents auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „Rate-Limiting und Quotenverwaltung“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser AI Agents-Lektion Code schreiben und ausführen?

Ja. Jede AI Agents-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Agents hinter einer API bereitstellen
  2. Asynchrone Workflows und Hintergrundjobs
  3. Rate-Limiting und Quotenverwaltung
  4. Blue-Green- und Canary-Deployments für Agents
← Zurück zu AI Agents