0Pricing
MCP Academy · Lekcja

Bezpieczne kończenie bez zawieszania

Chroń aplikację przed limitami czasu i nieobsłużonymi wyjątkami.

Bezpieczne kończenie bez zawieszania to bezpłatna lekcja MCP Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej MCP Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs MCP Academy zawiera 4 lekcji w sumie.

Zawieszone narzędzie jest gorsze niż narzędzie, które zgłasza błąd

Narzędzie, które jasno zgłasza błąd, pozwala modelowi przejść dalej. Narzędzie, które się zawiesza, blokuje całe wywołanie, dlatego zawsze projektuj je tak, aby kończyło działanie na czas.

Przechwytuj nieoczekiwane problemy

Opakuj ryzykowne operacje tak, aby nieoczekiwany wyjątek stał się czytelnym błędem, a nie awarią. Serwer pozostanie uruchomiony, a model dowie się, co się nie powiodło.

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

Zawsze ustawiaj limit czasu

Każde połączenie sieciowe lub zewnętrzne wymaga ustawienia limitu czasu. Bez niego powolna usługa zewnętrzna może bezterminowo blokować narzędzie i zatrzymać klienta.

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

W przypadku operacji wejścia-wyjścia preferuj kod asynchroniczny

Narzędzia asynchroniczne pozwalają jednemu powolnemu żądaniu czekać bez blokowania pozostałych operacji, dzięki czemu serwer może w międzyczasie obsługiwać inne wywołania.

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

Respektuj anulowanie

Jeśli klient anuluje operację, szybko ją zatrzymaj. Respektowanie anulowania zwalnia zasoby i zapobiega wykonywaniu pracy, na którą nikt już nie czeka.

Ograniczaj pętle i ponowienia

Ustal limit każdej pętli i liczby ponowień. Nieograniczone ponawianie wywołania kończącego się błędem może trwać wiecznie, dlatego ustaw maksymalną liczbę prób, a następnie zakończ działanie w kontrolowany sposób.

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

Zwalniaj otwierane zasoby

Używaj bloków with lub finally, aby pliki i połączenia zawsze były zamykane, nawet gdy w trakcie działania funkcji wystąpi błąd.

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

Kończ działanie w kontrolowany sposób

Gdy część zadania się nie powiedzie, zwróć to, co udało się uzyskać, wraz z informacją, zamiast nie zwracać niczego. Częściowy wynik nadal pomaga modelowi podjąć decyzję.

Rejestruj niepowodzenia po stronie serwera

Zapisuj pełne szczegóły w dziennikach, a modelowi wysyłaj tylko bezpieczne podsumowanie. Możesz wtedy diagnozować problemy bez ujawniania szczegółów wewnętrznych.

Jedna awaria nie powinna kończyć działania serwera

Pojedyncze niepoprawne wywołanie nie może zatrzymać procesu. Izolowanie niepowodzeń poszczególnych narzędzi pozwala zachować dostępność wszystkich pozostałych funkcji dla klientów.

Zawsze coś zwracaj

Każda ścieżka wykonania narzędzia powinna kończyć się odpowiedzią — poprawną albo oznaczającą błąd. Brak odpowiedzi pozostawia klienta w oczekiwaniu, a model blokuje się.

Szybkie sprawdzenie

Jaki jest najważniejszy powód ustawienia limitu czasu dla zewnętrznego wywołania w narzędziu?

Podsumowanie

Działaj szybko i nigdy nie pozwalaj na zawieszenie: przechwytuj nieoczekiwane wyjątki, ustawiaj limity czasu, ograniczaj ponowienia, zwalniaj zasoby, bezpiecznie rejestruj informacje i zawsze zwracaj odpowiedź. ✅

Często zadawane pytania

Czy lekcja „Bezpieczne kończenie bez zawieszania” jest bezpłatna?

Tak — pełny tekst „Bezpieczne kończenie bez zawieszania” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu MCP Academy, przejdź na CoddyKit PRO. Kurs MCP Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Bezpieczne kończenie bez zawieszania”?

Chroń aplikację przed limitami czasu i nieobsłużonymi wyjątkami. Ćwiczysz MCP Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć MCP Academy?

Nie wymagamy żadnego doświadczenia. MCP Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „Bezpieczne kończenie bez zawieszania”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji MCP Academy?

Tak. Każda lekcja MCP Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Błędy narzędzi widoczne dla modelu
  2. Błędy protokołu a awarie narzędzi
  3. Sprawdzanie danych wejściowych przed działaniem
  4. Bezpieczne kończenie bez zawieszania
← Powrót do MCP Academy