0Pricing
MCP Academy · Lezione

Fallire in sicurezza senza bloccarsi

Prevenga timeout ed eccezioni non gestite.

Fallire in sicurezza senza bloccarsi è una lezione MCP Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento MCP Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso MCP Academy include 4 lezioni in totale.

Uno strumento bloccato è peggio di uno non riuscito

Uno strumento che segnala chiaramente un errore consente al modello di procedere. Uno strumento che si blocca congela l’intera chiamata: progetti quindi sempre un’uscita tempestiva.

Gestire gli imprevisti

Avvolga le operazioni rischiose in modo che un’eccezione imprevista diventi un errore gestito, non un crash. Il server resta attivo e il modello apprende cosa non ha funzionato.

try:
    data = parse(raw)
except Exception as e:
    raise ValueError("could not parse input")

Impostare sempre un timeout

Ogni chiamata di rete o esterna richiede un timeout. Senza di esso, un servizio upstream lento può mantenere aperto lo strumento indefinitamente e bloccare il client.

import httpx
r = httpx.get(url, timeout=10.0)

Preferire l’asincronia per l’I/O

Gli strumenti asincroni consentono a una richiesta lenta di attendere senza bloccare tutto il resto, così il server continua nel frattempo a gestire altre chiamate.

@mcp.tool()
async def fetch(url: str) -> str:
    async with httpx.AsyncClient() as c:
        r = await c.get(url, timeout=10)

Rispettare la cancellazione

Se il client annulla la richiesta, si fermi tempestivamente. Rispettare la cancellazione libera risorse ed evita di svolgere attività che nessuno attende più.

Limitare cicli e tentativi

Imposti un limite per ogni ciclo o tentativo. Un nuovo tentativo senza limiti verso un’API in errore può continuare all’infinito: stabilisca quindi un numero massimo di tentativi e poi interrompa l’operazione correttamente.

for attempt in range(3):
    if try_call():
        break

Rilasciare ciò che si apre

Utilizzi blocchi with o finally affinché file e connessioni vengano sempre chiusi, anche quando si verifica un errore a metà della funzione.

with open(path) as f:
    return f.read()

Gestire elegantemente i problemi

Quando una parte di un’operazione non riesce, restituisca ciò che ha con una nota invece di non restituire nulla. Un risultato parziale aiuta comunque il modello a decidere.

Registrare l’errore sul server

Registri tutti i dettagli nei Suoi log, inviando al modello solo un riepilogo sicuro. Potrà eseguire il debug senza divulgare dettagli interni.

Un singolo crash non dovrebbe arrestare il server

Una sola chiamata errata non deve arrestare il processo. Isolare gli errori per ogni strumento mantiene disponibili tutte le altre funzionalità per i client.

Restituire sempre qualcosa

Ogni percorso dello strumento dovrebbe terminare con una risposta, di successo o di errore. Il silenzio lascia il client in attesa e il modello bloccato.

Verifica rapida

Qual è il motivo principale per aggiungere un timeout a una chiamata esterna in uno strumento?

Riepilogo

Fallisca rapidamente e non si blocchi mai: gestisca gli imprevisti, imposti i timeout, limiti i tentativi, rilasci le risorse, registri i dati in modo sicuro e restituisca sempre una risposta. ✅

Domande Frequenti

La lezione «Fallire in sicurezza senza bloccarsi» è gratuita?

Sì — il testo completo di «Fallire in sicurezza senza bloccarsi» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso MCP Academy, passa a CoddyKit PRO. Il corso MCP Academy include 4 lezioni in totale.

Cosa imparerò in «Fallire in sicurezza senza bloccarsi»?

Prevenga timeout ed eccezioni non gestite. Eserciti MCP Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare MCP Academy?

Non è richiesta alcuna esperienza precedente. MCP Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «Fallire in sicurezza senza bloccarsi»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione MCP Academy?

Sì. Ogni lezione MCP Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Errori degli strumenti visibili al modello
  2. Errori di protocollo e fallimenti degli strumenti
  3. Convalidare gli input prima di agire
  4. Fallire in sicurezza senza bloccarsi
← Torna a MCP Academy