Przejdź do głównej zawartości

Odzyskiwanie po błędach

Codex właśnie uruchomił npm install i nie powiodło się bo twój projekt używa pnpm. Próbował zaimportować moduł który nie istnieje. Wszedł w króliczą norę coraz bardziej złych poprawek błędu typów. Albo po prostu przestał odpowiadać w trakcie zadania. To nie są przypadki brzegowe — to normalne części pracy z agentem AI, a sposób w jaki odzyskujesz kontrolę decyduje o tym, czy Codex pozostaje produktywny czy marnuje twoje popołudnie.

  • Mentalny model pięciu najczęstszych kategorii awarii Codex
  • Techniki odzyskiwania dla każdego typu awarii na wszystkich powierzchniach
  • System cofania i strategia checkpointów Git dla bezpiecznego wycofywania
  • Wzorce wychodzenia z pętli błędów
  • Szablony promptów do szybkiego przywrócenia Codex na właściwe tory

Każda awaria Codex wpada do jednego z tych kubłów:

KategoriaCo się stałoTypowy objaw
Sandbox/UprawnieniaCodex próbował uzyskać dostęp do czegoś poza dozwolonym zakresem”Permission denied,” “Sandboxed operation blocked”
Wykonanie poleceniaPolecenie shell nie powiodło sięBłędy npm, nieudane testy, błędy kompilacji
Zły kierunekCodex zaimplementował złe podejście lub źle zrozumiał zadanieKod który się kompiluje ale nie spełnia wymagań
Przepełnienie kontekstuKonwersacja rozrosła się zbyt długo i Codex zgubił wcześniejsze instrukcjePowtarzanie pracy, zaprzeczanie wcześniejszym decyzjom
Sieć/PołączenieSerwer MCP padł, API przekroczyło timeout lub token uwierzytelniania wygasł”Connection reset,” “Server not responding,” wstrzymany postęp

Codex działa w sandboxie który ogranicza dostęp do systemu plików i sieci. W trybie workspace-write (domyślnym) Codex może zapisywać tylko w katalogu twojego projektu. Jeśli zadanie wymaga zapisywania gdzie indziej lub wykonywania połączeń sieciowych, sandbox je blokuje.

Jeśli zadanie uprawnione wymaga szerszego dostępu, dostosuj sandbox w config.toml:

# Pozwól na pełny dostęp do systemu plików i sieci (używaj ostrożnie)
sandbox_mode = "danger-full-access"

Lub nadpisz dla pojedynczej sesji:

Okno terminala
codex --sandbox-mode danger-full-access

Codex uruchamia polecenie i nie powiedzie się. Może npm install nie powiódł się bo projekt używa pnpm. Może python manage.py test nie powiódł się bo baza danych nie działa. Może błąd kompilacji kaskadował w nieudane testy.

  1. Przeczytaj wyjście błędu. Codex pokazuje pełne stderr. Często komunikat błędu mówi dokładnie co jest nie tak.

  2. Pozwól Codex próbować naprawić. W wielu przypadkach Codex automatycznie czyta błąd, diagnozuje przyczynę i proponuje poprawkę. Pozwól mu raz ziterować zanim interweniujesz.

  3. Podaj brakujący kontekst. Jeśli Codex zgadł zły menedżer pakietów lub runner testów, powiedz mu wprost:

    This project uses pnpm, not npm. The test command is "pnpm vitest", not "npm test".
    Update your approach and try again.
  4. Zaktualizuj AGENTS.md. Jeśli to powtarzający się błąd, dodaj poprawne polecenia do AGENTS.md aby Codex dobrze trafił następnym razem.

To najtrudniejsza awaria. Codex nie zgłosił błędu — kod się kompiluje, może nawet przechodzi testy — ale zaimplementował coś złego. Użył Express zamiast Fastify. Dodał endpoint REST gdy chciałeś GraphQL. Zrestrukturyzował kod w sposób który działa ale nie pasuje do twojej architektury.

Panel przeglądu Aplikacji Codex pozwala cofnąć na dowolnym poziomie szczegółowości:

  • Revert all: Odrzuć wszystko i zacznij od nowa.
  • Revert file: Zachowaj dobre pliki, odrzuć złe.
  • Revert hunk: Zachowaj dobre zmiany w pliku, odrzuć konkretne hunki.

Po cofnięciu wyślij wiadomość kontynuującą z jaśniejszymi ograniczeniami.

Kluczem do odzyskiwania po złym kierunku jest wczesne wyłapanie. Przejrzyj kilka pierwszych edycji plików zanim Codex zakończy całe zadanie. Jeśli idzie w złym kierunku, przerwij (Esc w CLI, stop w Aplikacji) i przekieruj natychmiast zamiast czekać na ukończony ale zły rezultat.

Po długiej konwersacji Codex zaczyna zapominać wcześniejsze instrukcje, powtarzać pracę którą już wykonał lub zaprzeczać decyzjom z wcześniejszej części wątku. Okno kontekstu się zapełniło i starsze wiadomości są kompresowane lub odrzucane.

  1. Zapisz stan do AGENTS.md lub pliku podsumowania:

    Summarize everything we have accomplished in this session: decisions made,
    files changed, patterns established. Save this summary to docs/session-state.md.
  2. Rozpocznij nowy wątek (Aplikacja) lub rozpocznij świeżą konwersację (CLI):

    /new
  3. Wznów z zapisanym kontekstem:

    Read docs/session-state.md for context from our previous session. Continue
    from where we left off -- the next task is implementing the payment webhook handler.

Jeśli serwer MCP przestaje odpowiadać:

Okno terminala
# Sprawdź status serwera
codex mcp list
# Serwer może potrzebować restartu -- zamknij i otwórz ponownie Codex
# Lub wyłącz uszkodzony serwer i kontynuuj bez niego

W Aplikacji przejdź do Ustawienia > MCP i przełącz serwer z wyłączonego na włączony.

Jeśli sam Codex przestaje odpowiadać (timeout API modelu):

  • CLI: Naciśnij Esc aby anulować bieżące żądanie, a następnie ponów prompt.
  • Aplikacja: Kliknij przycisk stop na wątku, poczekaj chwilę, a następnie wyślij kontynuację.
  • Rozszerzenie IDE: Anuluj zadanie i spróbuj ponownie.

Jeśli timeouty się utrzymują, sprawdź połączenie sieciowe. Codex wymaga stabilnego połączenia internetowego do komunikacji z API OpenAI.

Jeśli pojawiają się błędy uwierzytelniania w trakcie sesji:

Okno terminala
# CLI: Ponownie uwierzytelnij
codex login
# Aplikacja: Powinna automatycznie poprosić o ponowne uwierzytelnienie

Najbardziej niezawodna siatka bezpieczeństwa to częste commity Git. Przed każdym ryzykownym zadaniem Codex:

Okno terminala
git add -A && git commit -m "checkpoint: before codex refactoring"

Daje to czysty punkt wycofania. Jeśli Codex pójdzie w złym kierunku, zawsze możesz:

Okno terminala
git reset --hard HEAD

W Aplikacji Codex użyj trybu Worktree aby automatycznie izolować zmiany. Worktree tworzą oddzielny checkout Git, więc twój główny katalog roboczy pozostaje czysty niezależnie od tego co robi Codex.

Najbardziej frustrująca awaria: Codex próbuje naprawić błąd, poprawka tworzy nowy błąd, próbuje naprawić tamten, co tworzy kolejny błąd, i cykl się powtarza. Oto jak się z tego wydostać:

  1. Zatrzymaj pętlę. Naciśnij Esc (CLI), kliknij Stop (Aplikacja) lub anuluj (IDE).

  2. Cofnij wszystkie iteracje pętli:

    /undo

    Lub cofnij w panelu przeglądu. Wróć do stanu sprzed rozpoczęcia pętli.

  3. Zdiagnozuj przyczynę sam. Przeczytaj oryginalny błąd który rozpoczął pętlę.

  4. Daj Codex jawne ograniczenia:

    The original error was [paste error]. You tried [approach] which created a
    cascade of new errors. Instead, take this approach: [your idea]. Do not modify
    any files outside of src/auth/. Run the tests after each change to catch
    regressions early.
  5. Podziel zadanie na mniejsze kroki. Zamiast jednego dużego zadania, daj Codex trzy małe.

Cofanie nie działa: Funkcja undo opiera się na zrzutach Git per-tura. Jeśli wyłączyłeś flagę funkcji undo lub projekt nie jest repozytorium Git, cofanie jest niedostępne. Użyj git checkout -- . jako zapasowego rozwiązania.

Codex ignoruje twoją poprawkę: Wyczyść kontekst i rozpocznij nowy wątek. W długiej konwersacji poprawka w środku może nie nadpisać wcześniejszych (niepoprawnych) instrukcji które mają większą wagę.

Prompty odzyskiwania są ignorowane: Model może być w stanie gdzie ciągle próbuje tego samego podejścia. Rozpocznij zupełnie nową sesję (nowy wątek w Aplikacji, nowe wywołanie codex w CLI) z czystym promptem zawierającym wszystkie ograniczenia od początku.

Zadań Cloud nie można zatrzymać: Zadania Cloud działają asynchronicznie. Jeśli zadanie w chmurze idzie w złym kierunku, nie możesz go przerwać w trakcie wykonywania. Możesz zamknąć wątek i rozpocząć nowy. Zadanie w chmurze może nadal się zakończyć i utworzyć PR, który możesz po prostu zamknąć.

Ukończyłeś całą sekcję szybkiego startu Codex. Możesz instalować, uwierzytelniać, konfigurować, pisać instrukcje, podłączać narzędzia, integrować z GitHub, uruchamiać zadania, przeglądać zmiany i odzyskiwać kontrolę po awariach. Oto gdzie możesz się udać dalej: