Mam w codziennej pracy trzy narzędzia AI i każde z nich reklamuje się mniej więcej tak samo: że zrobi wszystko. W praktyce wygląda to inaczej. Po kilku miesiącach używania wyklarował mi się dość wyraźny podział, w którym każde z nich dostaje inny typ zadania, a próba użycia niewłaściwego kończy się stratą czasu.
To pierwszy wpis z serii o AI w pracy programisty. Zanim przejdę do konkretnych projektów, chcę nakreślić, po co w ogóle sięgam i przy jakim zadaniu. Bez rankingów i bez porównywania benchmarków.
Trzy narzędzia, trzy różne ilości kontekstu
Najprostszy sposób, żeby zapamiętać ten podział, nie ma nic wspólnego z tym, który model jest mądrzejszy. Chodzi o to, ile narzędzie widzi i gdzie fizycznie siedzi.
Copilot siedzi w edytorze i widzi otwarty plik plus kilka sąsiednich. Claude Code siedzi w terminalu przy katalogu projektu i widzi całe repozytorium, łącznie z historią gita. ChatGPT nie widzi mojego kodu w ogóle, za to widzi internet.
Z tego wynika cały podział pracy. Reszta to szczegóły.
ChatGPT, kiedy potrzebuję informacji, a nie kodu
Używam go głównie jako lepszej wyszukiwarki. Nie w sensie „zamiast Google”, tylko wtedy, gdy pytanie jest złożone i klasyczna wyszukiwarka wymagałaby otwarcia dziesięciu kart i wyciągnięcia z nich wspólnego mianownika. Zamiast tego dostaję zsyntetyzowaną odpowiedź z linkami, które mogę sprawdzić.
Drugie zastosowanie to dobieranie produktów według kryteriów. Klasyczny przykład: słuchawki w konkretnym budżecie, z redukcją szumów, o określonym czasie pracy na baterii i koniecznie z jackiem 3,5 mm. Wpisanie tego w sklepie internetowym daje listę posortowaną po tym, co sklep chce sprzedać. ChatGPT ma dziś osobny tryb Shopping Research przeznaczony dokładnie do takich zapytań wielokryterialnych, który sam przechodzi przez specyfikacje i recenzje, a na końcu podaje porównanie.
Trzecie zastosowanie jest mniej oczywiste i przyznam, że wpadłem na nie przypadkiem. Używam ChatGPT do pisania wstępnych promptów dla Claude Code.
Brzmi to jak nadmiarowy krok, ale ma sens. Kiedy zabieram się za większą rzecz, zwykle mam w głowie ogólny zarys, a nie gotową specyfikację. Rozmowa z ChatGPT pozwala mi ten zarys rozpisać: co ma powstać, jakie są przypadki brzegowe, czego nie chcę. Wychodzi z tego uporządkowany opis zadania, który wklejam do Claude Code. Model, który ma potem realnie grzebać w plikach, dostaje konkret zamiast jednego zdania rzuconego z biegu.
Copilot, czyli podpowiadacz w edytorze
Copilota mam w PhpStorm i w VS Code i traktuję go dokładnie jako to, czym jest najlepszy: autouzupełnianie na sterydach.
Typowy scenariusz wygląda tak, że piszę sygnaturę funkcji z sensowną nazwą, przechodzę do nowej linii i dostaję propozycję całego ciała. Jeśli nazwa jest opisowa, a w pliku widać już konwencje projektu, trafność bywa zaskakująca. To nie jest wielka magia, tylko dobrze wykorzystany kontekst: nazwa mówi, co ma się wydarzyć, a sąsiedni kod pokazuje, w jakim stylu.
Zysk czasowy jest największy przy rzeczach nudnych i powtarzalnych. Mapowanie tablicy na inną strukturę, walidacja pól formularza, obsługa wyjątku, kolejny podobny endpoint. Rzeczy, które umiem napisać, ale których pisanie mnie nie interesuje.
Jest też argument czysto praktyczny za trzymaniem Copilota w tej roli. GitHub rozlicza korzystanie z modeli w kredytach, ale podpowiedzi inline i sugestie kolejnej edycji są z tego wyłączone i pozostają bez limitu na każdym planie płatnym. Kredyty schodzą dopiero przy czacie, trybie agentowym, przeglądzie kodu i CLI. Innymi słowy, akurat ten sposób używania, w którym Copilot jest najlepszy, jest też tym, którego nie trzeba sobie racjonować.
Granica jest tam, gdzie kończy się widoczny plik. Copilot nie wie, że trzy katalogi dalej istnieje klasa, która robi już to samo. Nie przeprowadzi zmiany przez dwadzieścia plików i nie odpowie na pytanie, dlaczego coś zostało napisane właśnie tak. Do tego mam co innego.
Claude Code, kiedy zadanie obejmuje cały projekt
Claude Code działa w terminalu, w katalogu projektu, i sam decyduje, które pliki przeczytać. Jest też dostępny jako aplikacja desktopowa, w przeglądarce i jako wtyczka do edytorów, ale sedno pozostaje takie samo: pracuje na całym repozytorium, a nie na fragmencie.
Sięgam po niego w trzech sytuacjach.
Nowa aplikacja od zera. Postawienie struktury, konfiguracji, pierwszych modułów. To moment, w którym najwięcej czasu zjada nie myślenie, tylko klepanie rzeczy, które w każdym projekcie wyglądają podobnie.
Refaktor. Tutaj przewaga nad podpowiadaczem w edytorze jest największa. Zmiana, która dotyka kilkunastu plików, wymaga wiedzy o tym, gdzie coś jest używane i co się zepsuje. Copilot tego nie ogarnie, bo tego nie widzi.
Analiza cudzego albo własnego zapomnianego kodu. Projekt sprzed dwóch lat, do którego trzeba wrócić. Zamiast czytać wszystko od nowa, mogę zapytać, jak działa dany przepływ i skąd bierze się konkretna wartość. Odpowiedź dostaję z odwołaniem do plików i linii, więc jest co zweryfikować.
Cena za tę swobodę jest taka, że narzędzie realnie modyfikuje pliki. Pracuję z nim wyłącznie w repozytorium pod kontrolą wersji, na osobnej gałęzi, i czytam diff przed commitem. Nie dlatego, że spodziewam się sabotażu, tylko dlatego, że tak samo traktowałbym pull request od kogokolwiek innego.
n8n, gdy zadanie ma się wykonywać samo
Trochę z boku tej trójki stoi n8n, bo to nie asystent, tylko silnik automatyzacji. Buduje się w nim przepływy z gotowych klocków: pobierz dane stąd, przetwórz, zapisz tam, powiadom mnie, jeśli coś się nie uda.
Z perspektywy tego wpisu istotne jest to, że wywołanie modelu językowego może być jednym z klocków w takim przepływie. Można wpiąć agenta AI jako węzeł i dać mu do dyspozycji pozostałe kroki jako narzędzia. Dzięki temu rzecz, którą normalnie robiłbym ręcznie w czacie, wykonuje się sama o wyznaczonej porze albo po zdarzeniu.
n8n występuje w wersji chmurowej i do samodzielnego postawienia u siebie, przy czym edycja Community jest bezpłatna. Ta druga opcja bywa istotna, gdy przez przepływ przechodzą dane, których nie chce się wypuszczać na zewnątrz.
Jak to się układa w praktyce
| Typ zadania | Narzędzie | Dlaczego to |
|---|---|---|
| Research, złożone pytanie, dobór produktu | ChatGPT | Widzi internet, nie potrzebuje mojego kodu |
| Rozpisanie zadania przed implementacją | ChatGPT | Rozmowa porządkuje zarys w konkretny opis |
| Ciało funkcji, powtarzalny fragment | Copilot | Siedzi w edytorze, zna otwarty plik i konwencje |
| Nowa aplikacja, refaktor, analiza projektu | Claude Code | Widzi całe repozytorium i historię zmian |
| Zadanie cykliczne albo wyzwalane zdarzeniem | n8n | Wykonuje się bez mojego udziału |
Ten podział nie jest sztywny i sam mam świadomość, że granice się zacierają. Copilot ma tryb agentowy, który potrafi wyjść poza otwarty plik. ChatGPT ma własne narzędzia do pracy z kodem. Można pewnie zrobić wszystko jednym narzędziem i będzie działać.
Trzymam się jednak podziału, bo oszczędza mi decyzji. Nie zastanawiam się, czego użyć, tylko patrzę, ile kontekstu wymaga zadanie.
Czego od tego nie oczekuję
Żadne z tych narzędzi nie zwalnia z rozumienia tego, co powstaje. Kod, którego nie umiem przeczytać i uzasadnić, jest problemem na później, niezależnie od tego, kto go napisał. Przy podpowiedziach inline jest to mniej groźne, bo widzę każdą linię w momencie akceptacji. Przy zadaniach obejmujących cały projekt trzeba się pilnować, bo łatwo wpaść w tryb klikania „dalej”.
Nie ufam też bez sprawdzenia rzeczom zależnym od wersji. Nazwy flag, opcje konfiguracyjne, sygnatury metod w bibliotece, która wypuściła nową major wersję. To akurat obszar, w którym modele potrafią podać coś, co brzmi sensownie i było prawdą dwa lata temu. Dokumentacja jest o jedno kliknięcie dalej.
Co dalej
To był wstęp. W kolejnych wpisach chcę pokazać konkrety: projekty, które powstały z użyciem tych narzędzi, wraz z tym, co się w nich sprawdziło, a co trzeba było poprawiać ręcznie.
Jeśli dopiero zaczynasz układać sobie taki zestaw, zacząłbym od podpowiedzi w edytorze. Próg wejścia jest najniższy, efekt widać od pierwszego dnia, a przy okazji wyrabia się nawyk czytania tego, co narzędzie proponuje, zanim się to przyjmie. Reszta ma sens dopiero wtedy. Przy okazji warto zerknąć, co jeszcze siedzi w moim zestawie narzędzi pod Windows.