Skip to content

LLM 제공자 및 페일오버

Triggerfish는 자동 페일오버, 에이전트별 모델 선택, 세션 수준 모델 전환을 가진 여러 LLM 제공자를 지원합니다. 단일 제공자에 대한 종속이 없습니다.

지원 제공자

제공자인증모델비고
AnthropicAPI 키Claude Opus, Sonnet, Haiku표준 Anthropic API
OpenAIAPI 키GPT-4o, o1, o3표준 OpenAI API
GoogleAPI 키Gemini Pro, FlashGoogle AI Studio API
Local없음Llama, Mistral 등Ollama 호환, OpenAI 형식
OpenRouterAPI 키OpenRouter의 모든 모델여러 제공자에 대한 통합 접근
Z.AIAPI 키GLM-4.7, GLM-4.5, GLM-5Z.AI Coding Plan, OpenAI 호환

LlmProvider 인터페이스

모든 제공자가 동일한 인터페이스를 구현합니다:

typescript
interface LlmProvider {
  /** 메시지 기록에서 완성을 생성합니다. */
  complete(
    messages: Message[],
    options?: CompletionOptions,
  ): Promise<CompletionResult>;

  /** 토큰별로 완성을 스트리밍합니다. */
  stream(
    messages: Message[],
    options?: CompletionOptions,
  ): AsyncIterable<StreamChunk>;

  /** 이 제공자가 도구/함수 호출을 지원하는지 여부입니다. */
  supportsTools: boolean;

  /** 모델 식별자 (예: "claude-sonnet-4-5", "gpt-4o"). */
  modelId: string;
}

이는 애플리케이션 로직을 변경하지 않고 제공자를 전환할 수 있음을 의미합니다. 에이전트 루프와 모든 도구 오케스트레이션은 어떤 제공자가 활성화되어 있든 동일하게 작동합니다.

구성

기본 설정

triggerfish.yaml에서 기본 모델과 제공자 자격 증명을 구성합니다:

yaml
models:
  primary:
    provider: anthropic
    model: claude-sonnet-4-5
  providers:
    anthropic:
      model: claude-sonnet-4-5
    openai:
      model: gpt-4o
    google:
      model: gemini-pro
    ollama:
      model: llama3
      baseUrl: "http://localhost:11434/v1" # Ollama 기본값
    openrouter:
      model: anthropic/claude-sonnet-4-5
    zai:
      model: glm-4.7

페일오버 체인

FailoverChain은 제공자가 사용 불가능할 때 자동 폴백을 제공합니다. 순서가 있는 폴백 모델 목록을 구성합니다:

yaml
models:
  primary:
    provider: anthropic
    model: claude-opus-4-5
  failover:
    - claude-sonnet-4-5 # 첫 번째 폴백
    - gpt-4o # 두 번째 폴백
    - ollama/llama3 # 로컬 폴백 (인터넷 불필요)

  failover_config:
    max_retries: 3
    retry_delay_ms: 1000
    conditions:
      - rate_limited
      - server_error
      - timeout

기본 모델이 구성된 조건(속도 제한, 서버 오류 또는 시간 초과)으로 실패하면 Triggerfish가 자동으로 체인의 다음 제공자를 시도합니다. 이것은 투명하게 발생합니다 -- 대화가 중단 없이 계속됩니다.

페일오버 조건

조건설명
rate_limited제공자가 429 속도 제한 응답을 반환
server_error제공자가 5xx 서버 오류를 반환
timeout요청이 구성된 시간 초과를 초과

에이전트별 모델 선택

멀티 에이전트 설정에서 각 에이전트는 역할에 최적화된 다른 모델을 사용할 수 있습니다:

yaml
agents:
  list:
    - id: research
      model: claude-opus-4-5 # 연구를 위한 최고의 추론
    - id: quick-tasks
      model: claude-haiku-4-5 # 간단한 작업을 위한 빠르고 저렴한 모델
    - id: coding
      model: claude-sonnet-4-5 # 코드를 위한 좋은 균형

세션 수준 모델 전환

에이전트는 비용 최적화를 위해 세션 중간에 모델을 전환할 수 있습니다. 간단한 쿼리에는 빠른 모델을 사용하고 복잡한 추론에는 더 능력 있는 모델로 에스컬레이션합니다. 이것은 session_status 도구를 통해 사용할 수 있습니다.

속도 제한

Triggerfish에는 제공자 API 한도에 도달하는 것을 방지하는 내장 슬라이딩 윈도우 속도 제한기가 포함되어 있습니다. 제한기는 모든 제공자를 투명하게 래핑합니다 -- 슬라이딩 윈도우에서 분당 토큰(TPM)과 분당 요청(RPM)을 추적하고 한도에 도달하면 호출을 지연합니다.

속도 제한은 페일오버와 함께 작동합니다: 제공자의 속도 제한이 소진되고 제한기가 시간 초과 내에 대기할 수 없으면 페일오버 체인이 활성화되어 다음 제공자를 시도합니다.

OpenAI 티어 한도를 포함한 전체 세부 사항은 속도 제한을 참조하십시오.

API 키는 구성 파일에 절대 저장되지 않습니다. triggerfish config set-secret을 통해 OS 키체인을 사용하십시오. 시크릿 관리에 대한 자세한 내용은 보안 모델을 참조하십시오. :::