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.
Co wyniesiesz z tego przewodnika
Dział zatytułowany „Co wyniesiesz z tego przewodnika”- 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
Pięć kategorii awarii
Dział zatytułowany „Pięć kategorii awarii”Każda awaria Codex wpada do jednego z tych kubłów:
| Kategoria | Co się stało | Typowy objaw |
|---|---|---|
| Sandbox/Uprawnienia | Codex próbował uzyskać dostęp do czegoś poza dozwolonym zakresem | ”Permission denied,” “Sandboxed operation blocked” |
| Wykonanie polecenia | Polecenie shell nie powiodło się | Błędy npm, nieudane testy, błędy kompilacji |
| Zły kierunek | Codex zaimplementował złe podejście lub źle zrozumiał zadanie | Kod który się kompiluje ale nie spełnia wymagań |
| Przepełnienie kontekstu | Konwersacja rozrosła się zbyt długo i Codex zgubił wcześniejsze instrukcje | Powtarzanie pracy, zaprzeczanie wcześniejszym decyzjom |
| Sieć/Połączenie | Serwer MCP padł, API przekroczyło timeout lub token uwierzytelniania wygasł | ”Connection reset,” “Server not responding,” wstrzymany postęp |
Odzyskiwanie po błędach sandbox i uprawnień
Dział zatytułowany „Odzyskiwanie po błędach sandbox i uprawnień”Problem
Dział zatytułowany „Problem”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.
Odzyskiwanie
Dział zatytułowany „Odzyskiwanie”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:
codex --sandbox-mode danger-full-accessW trybie zatwierdzania on-request Codex pauzuje przed każdą ograniczoną akcją. Przejrzyj każde żądanie i zatwierdź lub odmów:
- Approve once: Pozwól na tę konkretną akcję, pytaj ponownie następnym razem.
- Approve for session: Pozwól na ten typ akcji do końca sesji.
Daje to precyzyjną kontrolę bez szerokiego otwierania sandboxa.
Czasem sandbox jest prawidłowy a podejście jest złe. Poproś Codex o znalezienie alternatywy:
The sandbox blocked writing to /usr/local/. Instead of modifying system files,create a local configuration in the project directory that achieves the same result.Odzyskiwanie po błędach wykonania poleceń
Dział zatytułowany „Odzyskiwanie po błędach wykonania poleceń”Problem
Dział zatytułowany „Problem”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.
Odzyskiwanie
Dział zatytułowany „Odzyskiwanie”-
Przeczytaj wyjście błędu. Codex pokazuje pełne stderr. Często komunikat błędu mówi dokładnie co jest nie tak.
-
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.
-
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. -
Zaktualizuj AGENTS.md. Jeśli to powtarzający się błąd, dodaj poprawne polecenia do AGENTS.md aby Codex dobrze trafił następnym razem.
Odzyskiwanie po złym kierunku
Dział zatytułowany „Odzyskiwanie po złym kierunku”Problem
Dział zatytułowany „Problem”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.
Odzyskiwanie
Dział zatytułowany „Odzyskiwanie”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.
CLI obsługuje cofanie przez zrzuty Git ghost per-tura:
/undoCofa to stan do momentu przed ostatnią turą. Możesz cofnąć wiele tur.
Alternatywnie użyj Git bezpośrednio:
git checkout -- .Czasem nie musisz cofać — musisz przekierować. Powiedz Codex co poszło źle i czego chcesz zamiast tego:
Stop. You used Express but this project uses Fastify. Revert the Express-specificchanges and re-implement using Fastify's route handler pattern. Check AGENTS.mdfor the project's framework before making changes.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.
Odzyskiwanie po przepełnieniu kontekstu
Dział zatytułowany „Odzyskiwanie po przepełnieniu kontekstu”Problem
Dział zatytułowany „Problem”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.
Odzyskiwanie
Dział zatytułowany „Odzyskiwanie”-
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. -
Rozpocznij nowy wątek (Aplikacja) lub rozpocznij świeżą konwersację (CLI):
/new -
Wznów z zapisanym kontekstem:
Read docs/session-state.md for context from our previous session. Continuefrom where we left off -- the next task is implementing the payment webhook handler.
Odzyskiwanie po błędach sieci i połączenia
Dział zatytułowany „Odzyskiwanie po błędach sieci i połączenia”Awarie serwera MCP
Dział zatytułowany „Awarie serwera MCP”Jeśli serwer MCP przestaje odpowiadać:
# Sprawdź status serweracodex mcp list
# Serwer może potrzebować restartu -- zamknij i otwórz ponownie Codex# Lub wyłącz uszkodzony serwer i kontynuuj bez niegoW Aplikacji przejdź do Ustawienia > MCP i przełącz serwer z wyłączonego na włączony.
Timeouty API
Dział zatytułowany „Timeouty API”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.
Wygaśnięcie tokena uwierzytelniania
Dział zatytułowany „Wygaśnięcie tokena uwierzytelniania”Jeśli pojawiają się błędy uwierzytelniania w trakcie sesji:
# CLI: Ponownie uwierzytelnijcodex login
# Aplikacja: Powinna automatycznie poprosić o ponowne uwierzytelnienieStrategia checkpointów Git
Dział zatytułowany „Strategia checkpointów Git”Najbardziej niezawodna siatka bezpieczeństwa to częste commity Git. Przed każdym ryzykownym zadaniem Codex:
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:
git reset --hard HEADW 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.
Wychodzenie z pętli błędów
Dział zatytułowany „Wychodzenie z pętli błędów”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ć:
-
Zatrzymaj pętlę. Naciśnij Esc (CLI), kliknij Stop (Aplikacja) lub anuluj (IDE).
-
Cofnij wszystkie iteracje pętli:
/undoLub cofnij w panelu przeglądu. Wróć do stanu sprzed rozpoczęcia pętli.
-
Zdiagnozuj przyczynę sam. Przeczytaj oryginalny błąd który rozpoczął pętlę.
-
Daj Codex jawne ograniczenia:
The original error was [paste error]. You tried [approach] which created acascade of new errors. Instead, take this approach: [your idea]. Do not modifyany files outside of src/auth/. Run the tests after each change to catchregressions early. -
Podziel zadanie na mniejsze kroki. Zamiast jednego dużego zadania, daj Codex trzy małe.
Szablony promptów odzyskiwania
Dział zatytułowany „Szablony promptów odzyskiwania”Gdy coś nie działa
Dział zatytułowany „Gdy coś nie działa”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ąć.
Co dalej
Dział zatytułowany „Co dalej”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: