Agenci DEV.AI – czym są i jak mogą przyspieszyć tworzenie Twojej aplikacji nawet o 200%?

2024-12-19

Pewnie nie raz słyszałeś o tym, że sztuczna inteligencja może zastąpić programistę. Ten artykuł o tym nie będzie. Będzie o przyśpieszaniu pracy z pomocą specjalistycznych programów zwanych agentami AI.

Gdy mowa o programowaniu z użyciem GPT, większość osób kojarzy to z tym, że po napisaniu magicznego prompta nagle wyskoczy nam działający program, serwis, strona www czy aplikacja mobilna (Minimum Viable Product). Jeśli masz cokolwiek wspólnego z branżą IT wiesz, że to niemożliwe.

Co prawda Chat GPT potrafi napisać proste programy w Pythonie i uruchomić je w swoim chronionym środowisku. Jest to jednak daleka droga do tworzenia całych aplikacji.

Czym są agenci AI?

Tworzeniem całych aplikacji lub modyfikacją aktualnych zajmują się właśnie tytułowi agenci AI.

Najprościej rzecz ujmując są to programy, które z jednej strony są podłączone do (zwykle kilku) modeli językowych. Z drugiej strony mają dostęp do środowiska programistycznego. To jak dużo im udostępnisz i na co pozwoli najczęściej zależy od Ciebie.

Najważniejsze jest jednak to, że w przeciwieństwie do Chata GPT mogą modyfikować bezpośrednio kod programu, a nawet uruchamiać i testować.

Wiadomo, że modele językowe często wyrzucają bzdury. Wynika to często z trzech rzeczy:

  • brak dostępu do dostatecznej wiedzy, kontekstu
  • brak możliwości testowania na bieżąco rozwiązań / brak pętli zwrotnej
  • niedoskonałości modelu lub jego szkolenia.

Co ważne wszystkie te 3 przeszkody można częściowo zniwelować. Można to zrobić z pomocą dobrze napisanych agentów AI oraz wykorzystaniem modeli językowych, które zostały lepiej przeszkolone z zakresu programowania.

Jakiego agenta wybrać?

Aktualnie trwa wyścig między wieloma firmami kto stworzy lepszego agenta. Pilnie obserwuję to co się pojawia i testuję każde rozwiązanie. Testuję te, które po wstępnej analizie moim zdaniem mają szansę realnie przyśpieszyć pracę programisty.

Niektóre narzędzia sprawdzam tylko powierzchownie. Przy pomocy innych tworzę całe projekty. Staram się być w tym na bieżąco, ale z pewnością nie wszystkie rozwiązania do mnie dotrą. Mam nawet własne oprogramowanie, które pozwala mi szybko przeglądać nowe materiały 🙂

Grupy agentów AI

Można powiedzieć, że mamy kilka wyraźnych kierunków tworzeniu agentów:

Grupa WOW

Do tej grupy zaliczam programy, których celem jest pokazanie Kowalskiemu, że on też może być teraz programistą.

Zwykle po wejściu na taki serwis widzimy jedno pole, w którym musimy opisać nasz projekt na aplikację. Są nawet funkcje, które poodrysowują nasz opis/prompt, aby był skuteczniejszy.

Po naciśnięciu generuj zaczyna się pisanie kodu. Rzeczywiście tworzone są kolejne pliki + jakiś opis podsumowujący zrozumienie tego, co ma być tworzone. Agenci w tej grupie zawsze mają swoje środowisko uruchomieniowe.

Najczęściej możemy obserwować efekty i pojawiają nam się poszczególne widoki. Na koniec możemy uruchomić serwis i nawet podzielić się linkiem do niego ze znajomymi.

Możliwości i ograniczenia Grupy WOW

Agenci tej grupy świetnie sprawdzają się w szybkim tworzeniu pierwszych koncepcji. Mają jednak istotne ograniczenia wraz ze wzrostem skomplikowania projektu. Bardzo często oszukują, że potrafią stworzyć całą aplikację, a tworzą najwyżej makietę.

Z jednej strony to mega imponujące, bo nasze MVP (Minimum Viable Product) tworzy się w moment i to często darmowo. Niejednokrotnie tego typu agenci zaskoczyli mnie umiejętnością researchu. Przykładowo ostatnio poprosiłem o stworzenie aplikacji do analizy wersetów biblijnych. Agent sam znalazł w Internecie API dające dostęp do tekstu Biblii w wielu tłumaczeniach.

Wadą jest jednak to, że ta pierwsza wersja programu albo nie działa wcale i jest tylko makietą, albo funkcje są emulowane. Teoretycznie część z nich daje nam również zaimportowanie istniejącego projektu. Ze względu na to, że zwykle wspierają tylko określoną grupę technologii, jego rozwój w tym narzędziu może okazać się ograniczony lub niemożliwy.

Oczywiście mamy cały czas pod ręką chat i możemy kazać agentowi tworzyć kolejne funkcje. Możemy od razu podglądać wyniki. Wymaga to jednak pewnej wiedzy i umiejętności w tworzeniu projektów i nazywaniu rzeczy po imieniu.

Największą pułapką tego typu agentów jest błąd w kompilacji / instalacji zależności. Bardzo często zapętlają się i bez pomocy prawdziwego programisty nie pójdziemy dalej.

Gdzie można ich użyć:
  • Do tworzenia pierwszych koncepcji produktu
  • Do projektowania przyjemnych dla oka interfejsów
  • Do zastąpienia (po części) frontend developera i grafika
  • Do szybkiego prototypowania pomysłów i wizualizacji koncepcji

„Grupa Opensource helpers”

Do tej grupy zaliczam przede wszystkim wszelkie starania środowiska Open Source do stworzenia własnych, pozbawionych ograniczeń swoich pierwowzorów lub całkiem nowe produkty, które wprowadzają nową jakość.

Możliwości i ograniczenia Grupy Opensource helpers

Agenci open source oferują maksymalną elastyczność i kontrolę. Wymagają jednak większej wiedzy technicznej i czasu na konfigurację. Ich wspólną cechą jest to, że możemy podłączyć je do niemal dowolnego modelu językowego.

Nie musimy bazować na silniku producenta. Możemy dowolnie wybierać zarówno wśród najbardziej znanych jak GPT i Claude, jak i open sourcowych modeli uruchamianych lokalnie.

Niektóre z tych edytorów cenię również za dużą staranność w ograniczaniu ilości danych jakie wysyłamy do modelu. Prowadzi to do znacznych oszczędności. Możliwość decydowania, które konkretne pliki mają być wysłane do modelu językowego pozytywnie wpływa też na bezpieczeństwo danych.

Tego typu rozwiązania świetnie radzą sobie z rozwojem projektu. Dają dużą kontrolę nad tym, w jakim stylu i z użyciem jakich wzorców kod będzie pisany.

Na YouTube można znaleźć całe wykłady na temat tego, jak nadać odpowiedni kontekst modelowi. Obejmuje to zwykle przygotowanie plików w formacie Markdown, gdzie opisujemy architekturę, styl pisania, sposób realizacji zadań itp.

Czasem miałem wrażenie, że można by się z tego tematu doktoryzować.

Różny jest też stopień integracji z edytorem. Podobnie jak w Wordzie – edytory dla programistów potrafią podkreślać fragmenty, które zawierają jakieś błędy. Część dodatków opartych na sztucznej inteligencji potrafi wychwycić takie podkreślenie i często znajdują od razu rozwiązanie.

Najlepsze z tego typu rozwiązań potrafią również przeprowadzić testy aplikacji i to tak jak to robi użytkownik. Jeśli testujemy stronę, to uruchamiana jest przeglądarka i robione są screeny. Na podstawie screenów sztuczna inteligencja klika w kolejne miejsca i ocenia, czy produkt działa.

W przypadku błędu potrafi pobrać komunikat zarówno ze screena, jak i z logów. Następnie analizuje zawartość i samodzielnie poprawia błędy. Po prostu programista na autopilocie 🙂

Oczywiście ten mechanizm nie jest idealny i zdarza mu się zapętlić.

Gdzie można ich użyć:
  • Do projektów, gdzie chcemy być niezależni od użytego modelu
  • Jeśli chcemy mocno zadbać o to, aby kod nie wypłynął (możemy użyć lokalnego serwera modelu z open sourcowym modelem)
  • Do eksperymentowania i pewnej niezależności
  • Gdy chcemy mieć dużą kontrolę nad procesem
  • Przy rozwijaniu projektów open source
Dla kogo ta grupa?

Przede wszystkim do wspomagania istniejących zespołów programistycznych. Głównie takich, co lubią eksperymentować i mieć pełną kontrolę nad narzędziem.

Istnieje kilka tysięcy modeli na samym OpenRouterze. Samo przetestowanie, który lepiej i do czego nam się sprawdza, zajmie parę miesięcy 🙂

Ewentualnie jeśli nie masz paru miesięcy, to możesz zgłosić się do mnie na konsultację 🙂

Komercyjne edytory pod programistę

Istnieje rosnąca grupa firm, które budują całe edytory lub rozszerzenia do istniejących edytorów (głównie Visual Studio Code) wspomagające pisanie kodu.

Ich przeznaczenie jest raczej pod developera. Niektóre z nich, przy odrobinie odwagi, mogą być stosowane przez osoby bez doświadczenia w IT.

Możliwości i ograniczenia Komercyjnych edytorów

Narzędzia te stanowią skuteczne wsparcie dla programistów. Automatyzują wiele powtarzalnych zadań, ale nie zastępują pracy developera.

Zwłaszcza wśród firm, które żyją z rynku programistów (np. Github) zauważyłem pewną ostrożność w promocji tych narzędzi jako takich, które mogłyby zastąpić developera.

Można powiedzieć jednak śmiało, że z czasem te edytory lub pluginy do edytorów zmienią sposób pisania oprogramowania. Będzie ono bardziej przypominać pisanie dokumentacji albo instruowanie, co edytor ma napisać.

Z części tych edytorów (np. z Cursora) korzystają też osoby mniej zaznajomione z programowaniem. Proces ten jednak często kończy się na pierwszym błędzie, na którym edytor zapętli się. Wtedy niezbędny jest jednak programista.

Gdzie można ich użyć:
  • Szybkie prototypowanie funkcjonalności z użyciem aktualnego zespołu programistów
  • Przyśpieszenie prac nad projektem w aktualnym zespole
  • Automatyczne wykrywanie i naprawianie błędów w kodzie
  • Wsparcie w procesach testowania aplikacji
  • Tworzenie całych funkcjonalności na podstawie dobrze stworzonej dokumentacji
  • Uzupełnianie fragmentów kodu

Autonomiczne zespoły IT

Najciekawszą, a zarazem najmniejszą grupę agentów stanowią takie, które de facto grają rolę nie tylko programisty – wspierają cały proces tworzenia oprogramowania.

Na chwilę pisania tego artykułu znam tylko jeden taki produkt. Jest on w dodatku niedostępny w pełnej wersji.

W mojej opinii to podejście dużo rozsądniejsze od tych z grupy WOW. Tylko w ten sposób można realnie zrealizować całą aplikację zamiast tworzyć poczucie, że się ją tworzy, jak to bywa u agentów z grupy „WOW”.

Możliwości i ograniczenia autonomicznych zespołów IT

Na chwilę obecną trudno jeszcze tutaj coś stwierdzić. Znany jest mi jeden przedstawiciel tej kategorii.

Na upartego można by samemu stworzyć coś takiego, łącząc kilka produktów. Ograniczeniem jest zatem niski stopień zaawansowania i mała konkurencja tego typu narzędzi.

Gdzie ich można użyć:

  • Przy realizacji nowych projektów, gdzie chcemy stworzyć coś więcej niż makietę
  • Do dobrego zaprojektowania realizacji projektu
  • Tam, gdzie nie mamy całego zespołu projektowego IT, a chcemy stworzyć większy projekt

W roli wyjaśnienia…

Zapewne w tym artykule można by się spodziewać konkretnych nazw agentów i jeśli takie były Twoje oczekiwania, to były one słuszne.

Założeniem, nie tylko artykułu, ale i całego bloga jest jednak to, aby publikować tu artykuły, które będą w miarę długo aktualne.

Nowe wersje lub całkiem nowi agenci (według moich obserwacji) pojawiają się co 1 do max 3 dni, więc artykuł ten bardzo szybko straciłby aktualność.

Z tego względu stworzyłem kilka innych miejsc, gdzie dzielę się wiedzą na bieżąco:

  • społeczność startupowców wykorzystujących AI – zapisz się na listę oczekujących
  • newsletter
  • konsultacja – tutaj przeanalizuję Twoją sytuację i dobiorę najlepsze narzędzia

Czy agenci zastąpią programistów? A może całe zespoły?

To z pewnością świetny temat na kolejny artykuł, ale na dziś mogę napisać, że jeszcze daleka droga. Z pewnością są świetnym narzędziem wsparcia i znacznie przyśpieszają pracę.

Już dziś w kilku projektach, w których biorę udział, prawie nie piszę kodu, a wydaję polecenia, co ma być zrobione. Moja praca bardziej przypomina tworzenie specyfikacji i następnie wykonywanie review kodu niż pracę programisty.

Myślę, że przede wszystkim modele językowe zastąpią „klawiszoklepaczy”. W cenie pozostaną programiści, którzy będą potrafili użyć nowych narzędzi i mają doświadczenie w dobrym feedbackowaniu.

Spore znaczenie będzie miało też otwarcie na postęp. Zwłaszcza w czasach pewnej niedoskonałości tych narzędzi. Łatwo się zniechęcić, ale liczy się ostateczny zysk po zrozumieniu, jak dobrze przygotować to, co wysyłamy do agenta.

Do zobaczenia w kolejnym artykule lub na szkoleniu.


Leshek

Leshek