Skip to content

Limitación de tasa

Triggerfish incluye un limitador de tasa con ventana deslizante que previene alcanzar los límites de API de los proveedores LLM. Envuelve cualquier proveedor de forma transparente -- el bucle del agente no necesita conocer los límites de tasa. Cuando la capacidad se agota, las llamadas se retrasan automáticamente hasta que la ventana se desplace lo suficiente para liberar capacidad.

Cómo funciona

El limitador de tasa usa una ventana deslizante (predeterminado 60 segundos) para rastrear dos métricas:

  • Tokens por minuto (TPM) -- total de tokens consumidos (prompt + completación) dentro de la ventana
  • Solicitudes por minuto (RPM) -- total de llamadas API dentro de la ventana

Antes de cada llamada al LLM, el limitador comprueba la capacidad disponible contra ambos límites. Si cualquiera se agota, la llamada espera hasta que las entradas más antiguas se desplacen fuera de la ventana y liberen capacidad suficiente. Después de que cada llamada se completa, se registra el uso real de tokens.

Tanto las llamadas con streaming como sin streaming consumen del mismo presupuesto. Para las llamadas con streaming, el uso de tokens se registra cuando el stream finaliza.

Flujo del limitador de tasa: bucle del agente → limitador de tasa → comprobación de capacidad → reenviar al proveedor o esperar

Límites por nivel de OpenAI

El limitador de tasa incluye valores predeterminados integrados para los límites publicados por nivel de OpenAI:

NivelGPT-4o TPMGPT-4o RPMo1 TPMo1 RPM
Free30.00050030.000500
Tier 130.00050030.000500
Tier 2450.0005.000100.0001.000
Tier 3800.0005.000100.0001.000
Tier 42.000.00010.000200.00010.000
Tier 530.000.00010.000200.00010.000

Estos son valores predeterminados basados en los límites publicados de OpenAI. Sus límites reales dependen del nivel de su cuenta OpenAI y su historial de uso. Otros proveedores (Anthropic, Google) gestionan sus propios límites de tasa en el servidor -- el limitador es más útil para OpenAI donde la regulación del lado del cliente previene errores 429. :::

Configuración

La limitación de tasa es automática cuando se usa el proveedor envuelto. No se necesita configuración del usuario para el comportamiento predeterminado. El limitador detecta su proveedor y aplica los límites apropiados.

Los usuarios avanzados pueden personalizar los límites vía la configuración del proveedor en triggerfish.yaml:

yaml
models:
  providers:
    openai:
      model: gpt-4o
      rate_limit:
        tpm: 450000 # Tokens por minuto
        rpm: 5000 # Solicitudes por minuto
        window_ms: 60000 # Tamaño de ventana (predeterminado 60s)

La limitación de tasa le protege de errores 429 y facturas inesperadas. Funciona junto con la cadena de failover -- si los límites de tasa se alcanzan y el limitador no puede esperar (timeout), el failover se activa para intentar con el siguiente proveedor. :::

Monitorización del uso

El limitador de tasa expone una instantánea en tiempo real del uso actual:

{tokensUsed, requestsUsed, tpmLimit, rpmLimit, windowMs}

La barra de progreso de contexto en CLI y Tide Pool muestra el uso de contexto. El estado del límite de tasa es visible en los registros de depuración:

[DEBUG] [provider] Rate limiter: 12,450/30,000 TPM, 8/500 RPM (window: 60s)

Cuando el limitador retrasa una llamada, registra el tiempo de espera:

[INFO] [provider] Rate limited: waiting 4.2s for TPM capacity

Limitación de tasa de canal

Además de la limitación de tasa del proveedor LLM, Triggerfish aplica límites de tasa de mensajes por canal para prevenir la inundación de plataformas de mensajería. Cada adaptador de canal rastrea la frecuencia de mensajes salientes y retrasa envíos cuando se acercan los límites.

Esto protege contra:

  • Prohibiciones de API de la plataforma por volumen excesivo de mensajes
  • Spam accidental por bucles de agente descontrolados
  • Tormentas de mensajes activadas por webhook

Los límites de tasa de canal se aplican de forma transparente por el enrutador de canales. Si el agente genera salida más rápido de lo que el canal permite, los mensajes se encolan y se entregan a la tasa máxima permitida.

Relacionado