Iteracyjne pętle samokorekty
Uruchamiaj testy, analizuj błędy i proś model o poprawki — to wewnętrzna pętla każdego nowoczesnego agenta kodującego.
Iteracyjne pętle samokorekty to bezpłatna lekcja AI Agents na CoddyKit. To lekcja 3 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 AI Agents, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs AI Agents zawiera 4 lekcji w sumie.
Części tej lekcji nie zostały jeszcze przetłumaczone i są wyświetlane po angielsku.
Dlaczego samokorekta?
Pierwsze próby często kończą się niepowodzeniem. Cechą definiującą agenta programistycznego jest jego zdolność do:
- Uruchomienia kodu
- Odczytania błędu
- Naprawienia kodu
- Powtórzenia tych czynności
Ta wewnętrzna pętla odróżnia prawdziwych agentów programistycznych od demonstracji uzupełniania tekstu.
The Loop
def code_until_pass(task, max_iters=10):
write_initial_code(task)
for i in range(max_iters):
result = run_tests()
if result.passed:
return 'success'
fix_prompt = f'Tests failed:\n{result.stderr}\nRead the code, identify the bug, and fix it with edit_file.'
agent.run(fix_prompt)
return 'gave up'Przekazywanie użytecznych informacji zwrotnych
Ogólna informacja „testy zakończyły się niepowodzeniem” nie pozwala podjąć działania. Należy przekazywać pełny komunikat błędu, ślady stosu oraz wartości oczekiwane i rzeczywiste:
fix_prompt = f'''
The tests failed with this output:
FAILED tests/test_utils.py::test_add
AssertionError: expected 4, got 5
at line 42
Fix the code by editing the file.
'''Ponowny odczyt przed kolejną próbą naprawy
Modele zapominają. Należy wymuszać ponowne odczytanie aktualnego stanu pliku w każdej iteracji:
fix_prompt = 'First, read_file the failing module. Then edit it.'Wykrywanie powtarzających się niepowodzeń
Jeśli ten sam test kończy się niepowodzeniem przez 3 kolejne iteracje z identycznymi błędami, agent utknął. Należy zaplanować ponownie lub eskalować:
if same_error_count >= 3:
return 'stuck — replanning needed'Replan When Stuck
replan_prompt = f'''
The current approach is not working. The repeated error is:
{error}
Describe ONE alternative approach to solving the task.
'''Eskalacja do większego modelu
Jeśli tani model utknął, należy ponowić tę SAMĄ prośbę o poprawkę, używając silniejszego modelu:
if iter > 3 and using_cheap_model:
switch_to_big_model()
# often unblocks 50% of stuck casesWeryfikacja po każdej edycji
Nie należy grupować wielu edycji, a dopiero potem ich weryfikować — zbyt trudno wtedy przypisać przyczynę niepowodzeń. Należy edytować jedną rzecz, zweryfikować ją, a następnie przejść do kolejnej.
Dołączanie wyników testów do kontekstu
Należy przechowywać najnowsze wyniki testów w kontekście agenta. Bez nich agent nie wie, co właśnie zrobił:
messages.append({'role': 'tool', 'content': f'After your edit, tests now: {test_summary}'})Unikanie nieskończonych pętli „naprawiania”
Należy ustalić twardy limit iteracji. Jeśli po osiągnięciu MAX_ITERS zadanie nadal nie jest ukończone, należy eskalować je do człowieka:
if iter == MAX_ITERS - 1:
notify_human(task, current_state, error_history)
breakŚledzenie metryk samokorekty
- Średnia liczba iteracji do osiągnięcia sukcesu
- Zadania kończące się rezygnacją po osiągnięciu max_iter
- Zadania kończące się sukcesem w 1 iteracji w porównaniu z 5 iteracjami
Metryki te pomagają ulepszać prompty i narzędzia.
Samokrytyka bez testów
W przypadku zadań bez jednoznacznego zestawu testów należy dodać krok krytycznej oceny: przed wysłaniem poprosić agenta o przejrzenie własnego diffu:
critique_prompt = '''
Review your changes for:
- Off-by-one errors
- Missing error handling
- Breaking other tests
Return FIX LATER or DONE.
'''Dane wejściowe samokorekty
Jaki jest najważniejszy element wejściowy pętli „naprawiania” agenta?
Podsumowanie
Uruchomienie -> błąd -> naprawa -> powtórzenie. Należy przekazywać konkretne błędy, ponownie odczytywać stan przed kolejną próbą naprawy, wykrywać zastoje oraz eskalować do większych modeli lub ludzi, gdy agent utknie.
Często zadawane pytania
Czy lekcja „Iteracyjne pętle samokorekty” jest bezpłatna?
Tak — pełny tekst „Iteracyjne pętle samokorekty” 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 AI Agents, przejdź na CoddyKit PRO. Kurs AI Agents zawiera 4 lekcji w sumie.
Co nauczysz się w „Iteracyjne pętle samokorekty”?
Uruchamiaj testy, analizuj błędy i proś model o poprawki — to wewnętrzna pętla każdego nowoczesnego agenta kodującego. Ćwiczysz AI Agents 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ąć AI Agents?
Nie wymagamy żadnego doświadczenia. AI Agents 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 3 z 4.
Ile czasu zajmuje lekcja „Iteracyjne pętle samokorekty”?
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 AI Agents?
Tak. Każda lekcja AI Agents 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
- Wzorce agentowe: planowanie–wykonanie–weryfikacja
- Interfejs narzędzi agenta kodującego (Read, Edit, Bash)
- Iteracyjne pętle samokorekty
- Architektury SWE-Agent i OpenDevin