Skip to content

LLM-leverandører og failover

Triggerfish støtter flere LLM-leverandører med automatisk failover, per-agent modellvalg og sesjons-nivå modellbytte. Ingen innlåsing hos enkelt leverandør.

Støttede leverandører

LeverandørAutentiseringModellerMerknader
AnthropicAPI-nøkkelClaude Opus, Sonnet, HaikuStandard Anthropic API
OpenAIAPI-nøkkelGPT-4o, o1, o3Standard OpenAI API
GoogleAPI-nøkkelGemini Pro, FlashGoogle AI Studio API
LocalIngenLlama, Mistral, osv.Ollama-kompatibel, OpenAI-format
OpenRouterAPI-nøkkelAlle modeller på OpenRouterSamlet tilgang til mange leverandører
Z.AIAPI-nøkkelGLM-4.7, GLM-4.5, GLM-5Z.AI Coding Plan, OpenAI-kompatibel

LlmProvider-grensesnitt

Alle leverandører implementerer det samme grensesnittet:

typescript
interface LlmProvider {
  /** Generate a completion from a message history. */
  complete(
    messages: Message[],
    options?: CompletionOptions,
  ): Promise<CompletionResult>;

  /** Stream a completion token-by-token. */
  stream(
    messages: Message[],
    options?: CompletionOptions,
  ): AsyncIterable<StreamChunk>;

  /** Whether this provider supports tool/function calling. */
  supportsTools: boolean;

  /** The model identifier (e.g., "claude-sonnet-4-5", "gpt-4o"). */
  modelId: string;
}

Dette betyr at du kan bytte leverandører uten å endre noen applikasjonslogikk. Agentløkken og all verktøyorkestrering fungerer identisk uavhengig av hvilken leverandør som er aktiv.

Konfigurasjon

Grunnleggende oppsett

Konfigurer din primærmodell og leverandørlegitimasjon i 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 standard
    openrouter:
      model: anthropic/claude-sonnet-4-5
    zai:
      model: glm-4.7

Failover-kjede

FailoverChain gir automatisk tilbakefall når en leverandør er utilgjengelig. Konfigurer en ordnet liste over reservemodeller:

yaml
models:
  primary:
    provider: anthropic
    model: claude-opus-4-5
  failover:
    - claude-sonnet-4-5 # Første reserve
    - gpt-4o # Andre reserve
    - ollama/llama3 # Lokal reserve (krever ikke internett)

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

Når primærmodellen feiler på grunn av en konfigurert betingelse (hastighetsbegrensning, serverfeil eller tidsavbrudd), prøver Triggerfish automatisk neste leverandør i kjeden. Dette skjer transparent — samtalen fortsetter uten avbrudd.

Failover-betingelser

BetingelseBeskrivelse
rate_limitedLeverandøren returnerer et 429 hastighetsbegrenset svar
server_errorLeverandøren returnerer en 5xx-serverfeil
timeoutForespørselen overskrider det konfigurerte tidsavbruddet

Per-agent modellvalg

I et multi-agent-oppsett kan hver agent bruke en annen modell optimalisert for rollen sin:

yaml
agents:
  list:
    - id: research
      model: claude-opus-4-5 # Beste resonnering for forskning
    - id: quick-tasks
      model: claude-haiku-4-5 # Rask og billig for enkle oppgaver
    - id: coding
      model: claude-sonnet-4-5 # God balanse for kode

Sesjons-nivå modellbytte

Agenten kan bytte modeller midt i en sesjon for kostnadsoptimalisering. Bruk en rask modell for enkle spørringer og eskaler til en mer kapabel modell for kompleks resonnering. Dette er tilgjengelig via session_status-verktøyet.

Hastighetsbegrensning

Triggerfish inkluderer en innebygd glidende-vindu hastighetsbegrenser som forhindrer å treffe leverandørens API-grenser. Begrenseren omslutter enhver leverandør transparent — den sporer tokens-per-minutt (TPM) og forespørsler-per-minutt (RPM) i et glidende vindu og forsinker kall når grenser nærmes.

Hastighetsbegrensning fungerer sammen med failover: hvis en leverandørs hastighetsbegrensning er oppbrukt og begrenseren ikke kan vente innenfor tidsavbruddet, aktiveres failover-kjeden og prøver neste leverandør.

Se Hastighetsbegrensning for fullstendige detaljer inkludert OpenAI-tiernivågrenser.

API-nøkler lagres aldri i konfigurasjonsfiler. Bruk OS-nøkkelringen

via triggerfish config set-secret. Se Sikkerhetsmodellen for detaljer om hemmelighetsadministrasjon. :::