AI-agenter · Lektion

Tidsgränser och circuit breakers

Begränsa LLM- och verktygsanrop med strikta tidsgränser och använd circuit breakers för att sluta överbelasta en felande beroendetjänst.

Lektion 3 av 415 steg

Tidsgränser och circuit breakers är en gratis lektion i AI-agenter på CoddyKit. Detta är lektion 3 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för AI-agenter, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i AI-agenter innehåller totalt 4 lektioner.

Delar av den här lektionen har ännu inte översatts och visas på engelska.

Begränsa varje externt anrop

Alla nätverksanrop måste ha en timeout. Utan en sådan kan en anslutning som hängt sig frysa hela agenten.

HTTP Timeouts

import requests
response = requests.get(url, timeout=(3, 10))   # 3s connect, 10s read

LLM Timeouts

from openai import OpenAI
client = OpenAI(timeout=30.0)

# Or per call:
response = client.chat.completions.create(
    model='gpt-4o-mini',
    messages=messages,
    timeout=30.0
)

Välj realistiska timeouts

Mät p99-latens i verkligheten och lägg till 25 %. Om du ställer in timeout = 3 s när p99 är 4 s uppstår ständiga falska fel.

Total timeout för agenten

Omslut hela agentkörningen med en tidsgräns:

import asyncio

async def run_agent_with_deadline(query, deadline_s=60):
    try:
        return await asyncio.wait_for(run_agent(query), timeout=deadline_s)
    except asyncio.TimeoutError:
        return 'Sorry, this is taking too long. Please try again.'

Vad är en circuit breaker?

Mönster: när en nedströms tjänst börjar fallera öppnar du kretsen — sluta anropa den ett tag. Återställ automatiskt efter en nedkylningsperiod.

Tillstånd: CLOSED (normalt) -> OPEN (fail fast) -> HALF_OPEN (probning) -> CLOSED (återställt).

Implementing with pybreaker

# pip install pybreaker
import pybreaker

breaker = pybreaker.CircuitBreaker(fail_max=5, reset_timeout=60)

@breaker
def fragile_call():
    return requests.get(url, timeout=5).json()

Efter 5 fel

När fail_max fel har inträffat i följd öppnas kretsbrytaren. Alla efterföljande anrop misslyckas omedelbart under reset_timeout sekunder — så att du slipper överbelasta en sjuk tjänst.

Returnera rimliga reservlösningar

När kretsbrytaren är öppen returnerar du en graciös reservlösning i stället för att krascha agenten:

try:
    result = fragile_call()
except pybreaker.CircuitBreakerError:
    result = {'error': 'service-unavailable', 'fallback': 'cached or stale data'}

Kretsbrytare per verktyg

Varje extern beroendekomponent bör ha sin egen kretsbrytare — en felande tjänst ska inte påverka anrop till en fungerande tjänst.

Bulkheads

Begränsa antalet samtidiga anrop till ett enskilt verktyg med ett semaphore-objekt — det förhindrar att ett långsamt beroende förbrukar alla workers:

from asyncio import Semaphore
search_sem = Semaphore(10)

async def search(query):
    async with search_sem:
        return await tavily_search(query)

Hälsokontroller

Pinga varje verktyg regelbundet för att upptäcka problem innan användarna gör det:

async def health_check():
    for tool in [tavily, openai, vector_db]:
        try:
            await tool.ping()
        except Exception as e:
            alert(f'{tool.name} unhealthy: {e}')

Visa status för användarna

När ett kritiskt verktyg ligger nere informerar du användaren:

if tavily_breaker.current_state == 'open':
    return 'Web search is temporarily unavailable.'

Varför använda circuit breakers?

Varför använda en circuit breaker för en instabil extern tjänst?

Sammanfattning

Timeouts för varje anrop. Kretsbrytare per verktyg. Bulkheads för samtidighet. Hälsokontroller. Graciösa reservmeddelanden.

Gratis att börja

Lär dig AI-agenter med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
60
Lektioner
239

Vanliga frågor

Är lektionen ”Tidsgränser och circuit breakers” gratis?

Ja – hela texten till ”Tidsgränser och circuit breakers” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i AI-agenter, kan Ni uppgradera till CoddyKit PRO. Kursen i AI-agenter innehåller totalt 4 lektioner.

Vad lär jag mig i ”Tidsgränser och circuit breakers”?

Begränsa LLM- och verktygsanrop med strikta tidsgränser och använd circuit breakers för att sluta överbelasta en felande beroendetjänst. Ni övar på AI-agenter med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig AI-agenter?

Du behöver inga förkunskaper. Utbildningen i AI-agenter på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.

Hur lång tid tar lektionen ”Tidsgränser och circuit breakers”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här AI-agenter-lektionen?

Ja. Varje AI-agenter-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Idempotenta verktyg och sidoeffekter
  2. Omförsök med exponentiell backoff
  3. Tidsgränser och circuit breakers
  4. Validera verktygsutdata (Pydantic)
← Tillbaka till AI-agenter