Skip to content

속도 제한

Triggerfish에는 LLM 제공자 API 한도에 도달하는 것을 방지하는 슬라이딩 윈도우 속도 제한기가 포함되어 있습니다. 모든 제공자를 투명하게 래핑합니다 -- 에이전트 루프는 속도 제한에 대해 알 필요가 없습니다. 용량이 소진되면 윈도우가 충분히 슬라이딩하여 용량을 확보할 때까지 호출이 자동으로 지연됩니다.

작동 방식

속도 제한기는 슬라이딩 윈도우(기본값 60초)를 사용하여 두 가지 메트릭을 추적합니다:

  • 분당 토큰(TPM) -- 윈도우 내 소비된 총 토큰(프롬프트 + 완성)
  • 분당 요청(RPM) -- 윈도우 내 총 API 호출

각 LLM 호출 전에 제한기가 두 한도 모두에 대해 사용 가능한 용량을 확인합니다. 둘 중 하나가 소진되면 가장 오래된 항목이 윈도우에서 슬라이딩 아웃되어 충분한 용량이 확보될 때까지 호출이 대기합니다. 각 호출 완료 후 실제 토큰 사용량이 기록됩니다.

스트리밍 및 비스트리밍 호출 모두 동일한 예산에서 소비합니다. 스트리밍 호출의 경우 토큰 사용량은 스트림이 완료될 때 기록됩니다.

속도 제한기 흐름: 에이전트 루프 → 속도 제한기 → 용량 확인 → 제공자로 전달 또는 대기

OpenAI 티어 한도

속도 제한기는 OpenAI의 게시된 티어 한도에 대한 내장 기본값을 제공합니다:

티어GPT-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

이것은 OpenAI의 게시된 한도에 기반한 기본값입니다. 실제 한도는 OpenAI 계정 티어 및 사용 이력에 따라 다릅니다. 다른 제공자(Anthropic, Google)는 서버 측에서 자체 속도 제한을 관리합니다 -- 제한기는 클라이언트 측 스로틀링이 429 오류를 방지하는 OpenAI에서 가장 유용합니다. :::

구성

속도 제한은 래핑된 제공자를 사용할 때 자동입니다. 기본 동작에 사용자 구성이 필요하지 않습니다. 제한기가 제공자를 감지하고 적절한 한도를 적용합니다.

고급 사용자는 triggerfish.yaml의 제공자 구성을 통해 한도를 사용자 정의할 수 있습니다:

yaml
models:
  providers:
    openai:
      model: gpt-4o
      rate_limit:
        tpm: 450000 # 분당 토큰
        rpm: 5000 # 분당 요청
        window_ms: 60000 # 윈도우 크기 (기본값 60초)

속도 제한은 429 오류와 예기치 않은 청구서로부터 보호합니다. 페일오버 체인과 함께 작동합니다 -- 속도 제한에 도달하고 제한기가 시간 초과 내에 대기할 수 없으면 페일오버가 작동하여 다음 제공자를 시도합니다. :::

사용량 모니터링

속도 제한기는 현재 사용량의 실시간 스냅샷을 노출합니다:

{tokensUsed, requestsUsed, tpmLimit, rpmLimit, windowMs}

CLI 및 Tide Pool의 컨텍스트 진행 바가 컨텍스트 사용량을 보여줍니다. 속도 제한 상태는 디버그 로그에서 확인할 수 있습니다:

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

제한기가 호출을 지연하면 대기 시간을 로깅합니다:

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

채널 속도 제한

LLM 제공자 속도 제한 외에도 Triggerfish는 메시징 플랫폼 범람을 방지하기 위해 채널별 메시지 속도 제한을 시행합니다. 각 채널 어댑터는 아웃바운드 메시지 빈도를 추적하고 한도에 도달하면 전송을 지연합니다.

이는 다음으로부터 보호합니다:

  • 과도한 메시지 볼륨으로 인한 플랫폼 API 차단
  • 통제 불능 에이전트 루프로 인한 우발적 스팸
  • Webhook 트리거 메시지 폭풍

채널 속도 제한은 채널 라우터에 의해 투명하게 시행됩니다. 에이전트가 채널이 허용하는 것보다 빠르게 출력을 생성하면 메시지가 대기열에 넣어지고 허용된 최대 속도로 전달됩니다.

관련