Przejdź do głównej zawartości

Efektywne wzorce współpracy człowiek-AI

Obserwujesz, jak AI przepisuje twój moduł uwierzytelniania. Wygląda pewnie. Kod płynie. Piętnaście zmodyfikowanych plików, 800 zmienionych linii. Zaakceptowałeś wszystko, bo “wyglądało dobrze”. Dwa tygodnie później odkrywasz, że AI cicho usunęło sprawdzanie ochrony CSRF, które było w oryginalnym kodzie. Nikt tego nie wychwycił, bo nikt naprawdę nie przeglądał.

Druga skrajność jest równie marnotrawna: zatwierdzasz każdy pojedynczy zapis pliku, przeglądasz każdą linię w momencie generowania i spędzasz więcej czasu na nadzorowaniu AI, niż zajęłoby ci samodzielne napisanie kodu.

Efektywna współpraca człowiek-AI to ani ślepe zaufanie, ani ciągły nadzór. To przemyślany zestaw wzorców określających, kiedy angażować się głęboko, kiedy pozwolić AI pracować autonomicznie i jak efektywnie przeglądać.

  • Ramy decyzyjne do określania, kiedy nadzorować ściśle, a kiedy pozwolić AI działać
  • Techniki efektywnego przeglądania kodu generowanego przez AI
  • Prompty, które każą AI wyjaśniać własne zmiany przed twoim przeglądem
  • Strategie korekty kursu w trakcie sesji bez utraty postępu

Twoja rola zmienia się w trakcie sesji programistycznej. Rozpoznanie, w którym trybie powinieneś być, oszczędza czas i wcześnie wychwytuje problemy.

Tryb architekta

Definiujesz podejście. To dzieje się podczas planowania, gdy piszesz wymagania, przeglądasz propozycje i podejmujesz decyzje architektoniczne. AI proponuje, ty decydujesz. Spędź tu najwięcej czasu — błędy w architekturze są najdroższe do naprawienia.

Tryb nadzorcy

AI implementuje, a ty monitorujesz. Obserwujesz strumień zmian, szukasz czerwonych flag i jesteś gotowy nacisnąć Escape, jeśli coś pójdzie nie tak. Nie musisz rozumieć każdej linii w czasie rzeczywistym, ale powinieneś zauważyć, gdy AI modyfikuje pliki, których nie powinno dotykać, lub obiera podejście, na które się nie umówiłeś.

Tryb recenzenta

AI ukończyło zadanie. Przeglądasz całość zmiany, uruchamiasz testy i decydujesz, czy commitować. Tu wychwycisz subtelne problemy: luki bezpieczeństwa, problemy wydajnościowe, brakujące przypadki brzegowe i naruszenia konwencji zespołu.

Nie każdy moment wymaga równej uwagi. Oto praktyczne ramy:

Interweniuj natychmiast, gdy:

  • AI zaczyna modyfikować pliki poza ustalonym zakresem
  • AI usuwa kod bez wyjaśnienia dlaczego
  • AI instaluje nowe zależności, o których nie rozmawialiście
  • AI pomija testy lub tłumi błędy
  • Podejście odbiega od planu

Monitoruj, ale nie przerywaj, gdy:

  • AI pracuje nad dobrze zdefiniowanym zadaniem z twojej listy zadań
  • Zmiany są w plikach, które spodziewałeś się modyfikować
  • AI uruchamia testy i iteruje nad niepowodzeniami
  • AI podąża za wzorcami ustalonymi w twojej bazie kodu

Przeglądaj po zakończeniu, gdy:

  • Zadanie jest małe i dobrze ograniczone (pojedynczy plik, jasne kryteria akceptacji)
  • Masz silne pokrycie testami dla dotkniętego obszaru
  • AI pracuje w środowisku sandbox

Cursor daje ci wiele punktów interwencji:

  • Escape zatrzymuje agenta w trakcie akcji, zachowując kontekst
  • Checkpointy pozwalają cofnąć się do dowolnego wcześniejszego stanu
  • Tryb przeglądania pokazuje wszystkie oczekujące zmiany przed ich zastosowaniem
  • Background Agent uruchamia zadania asynchronicznie, a ty pracujesz nad czymś innym, z przeglądem przed scaleniem
Before you start implementing, list all the files you plan to modify.
I want to verify the scope before you begin.

Użyj widoku diff w Cursor do przeglądania zmian plik po pliku po zakończeniu pracy AI. Akceptuj lub odrzucaj zmiany poszczególnych plików zamiast akceptować wszystko na raz.

Przegląd kodu generowanego przez AI różni się od przeglądania kodu ludzkiego. AI nie męczy się, nie chodzi na skróty i nie ma gorszych dni — ale ma systematyczne martwe punkty. Skup swój przegląd na tych obszarach:

  1. Sprawdzenie zakresu. Czy AI zmodyfikowało tylko pliki, które powinno? Uruchom git diff --stat, żeby zobaczyć pełny obraz przed zagłębieniem się w poszczególne pliki.
  2. Usunięty kod. Każdy kod, który AI usunęło, powinien być uzasadniony. Usunięcia są zmianami najwyższego ryzyka, bo łatwo je przeoczyć w diffie.
  3. Bezpieczeństwo. Szukaj zakodowanych na stałe sekretów, brakującej walidacji danych wejściowych, osłabionego uwierzytelniania i niezaescapowanych danych użytkownika. Modele AI są trenowane na kodzie, który często nie stosuje najlepszych praktyk bezpieczeństwa.
  4. Obsługa błędów. Sprawdź, czy błędy są obsługiwane, a nie cicho połykane. Szukaj pustych bloków catch, brakujących sprawdzeń null i zignorowanych wartości zwracanych.
  5. Pokrycie testami. Czy nowe testy są sensowne, czy AI napisało testy, które przechodzą trywialnie? Sprawdź, czy asercje są konkretne i czy przypadki brzegowe są pokryte.

Najbardziej produktywni programiści korygują kurs wcześnie. Delikatna korekta po pierwszym pliku jest tańsza niż pełne przepisanie po piętnastu plikach.

Stop. The approach you're taking with the notification service
won't work because it doesn't account for our message queue.
Let me redirect: instead of direct database writes, use the
existing event bus in @src/services/eventBus.ts. Read that file
first, then revise your approach.

Jeśli Cursor zaszedł za daleko w złą stronę, użyj checkpointów do cofnięcia do ostatniego dobrego stanu, zamiast ręcznie cofać zmiany.

Każde narzędzie oferuje spektrum od pełnej kontroli ludzkiej do pełnej autonomii AI. Wybieraj na podstawie poziomu ryzyka zadania:

Poziom ryzykaTyp zadaniaZalecane podejście
WysokiZmiany w auth, migracje danych, kod bezpieczeństwaZatwierdzaj każdy zapis pliku. Przeglądaj diffy linia po linii.
ŚredniNowe funkcjonalności, endpointy API, komponenty UIPozwól AI pracować, przeglądaj całość zmiany przed commitem.
NiskiFormatowanie, zmiana nazw, dokumentacja, dodawanie testówAutomatyczne zatwierdzanie lub tryb bezobsługowy. Przejrzyj wiadomość commita.

Stajesz się wąskim gardłem. Jeśli spędzasz więcej czasu na zatwierdzaniu poszczególnych zapisów plików, niż AI spędza na ich generowaniu, to nadmierny nadzór. Grupuj przegląd — pozwól AI ukończyć zadanie, a następnie przejrzyj cały diff.

Ufasz zbyt mocno. Jeśli znajdujesz błędy na produkcji, które pochodzą z kodu generowanego przez AI, uszczelnij proces przeglądów. Dodaj obowiązkowe progi pokrycia testami. Użyj wzorca pisarz/recenzent z dwoma oddzielnymi sesjami.

AI ciągle odchodzi od planu. Jeśli korekty kursu nie są skuteczne, problem prawdopodobnie leży w jakości promptu lub przeciążeniu kontekstu. Odwołuj się jawnie do pliku planu w każdym prompcie. Utrzymuj sesje skupione na pojedynczych zadaniach.

Zmęczenie przeglądem. Przeglądanie 500 linii kodu generowanego przez AI jest wyczerpujące. Podziel duże zmiany na wiele commitów, każdy przeglądany niezależnie. Użyj promptu samoprzeglądu AI, żeby wstępnie przefiltrować problemy, zanim sam spojrzysz na kod.