Jak zespół z agentami AI buduje aplikację dla firmy — role, bramki i co zostaje przy człowieku?
Agenci AI piszą kod, migracje i teksty w rolach: autor, weryfikator, redaktor. Każdy wynik przechodzi bramki maszynowe — lint, testy, parytet — i przegląd innej roli. Decyzje o zakresie, płatnościach i uprawnieniach oraz odpowiedzialność zostają przy człowieku. W badaniu Stack Overflow z 2025 roku najczęstszą frustracją (66%) było rozwiązanie prawie dobre, ale nie do końca.
Co realnie powstaje, gdy przy aplikacji pracują agenci AI?
Powstaje kod, migracje bazy, testy i teksty — ale nie w jednym kotle, tylko w rozdzielonych rolach. W raporcie DORA ogłoszonym 23 września 2025 r. 90% respondentów deklarowało korzystanie z AI w pracy, a 30% — małe zaufanie albo brak zaufania do generowanego kodu.
Agent dobrze robi to, co ma wzorzec: pierwszą wersję ekranu z opisu, testy do istniejącej funkcji, migrację ze spisanego zakresu, przepisanie fragmentu według reguły, dokumentację tego, co już działa. Wynik przychodzi w minutach zamiast w godzinach.
Role są rozdzielone i na tym polega różnica: autor pisze, weryfikator sprawdza, redaktor decyduje, czy to wchodzi. Jedna maszyna, która sama siebie sprawdza i sama sobie stawia ocenę, nie jest procesem — jest opinią.
Dostawcy narzędzi mówią to samo wprost. Dokumentacja GitHuba o przeglądzie kodu przez Copilota: „Copilot nie gwarantuje, że wychwyci wszystkie problemy w zgłoszeniu zmian. Czasem popełnia błędy. Zawsze uważnie sprawdzaj jego uwagi. Uzupełnij je przeglądem człowieka” (tłumaczenie własne, odczyt 31 sierpnia 2026 r.).
Czego z agenta nie wyjmiesz: decyzji, co wchodzi do pierwszej wersji, kto ma widzieć który rekord i skąd bierze się informacja o wpłacie. Model odpowie na każde z tych pytań — tylko nikt nie poniesie za tę odpowiedź konsekwencji.
U nas pracuje to na kilkunastu aplikacjach i serwisach zbudowanych na tym samym stosie, w skali setek kont w pojedynczej aplikacji dla firm. Zespół pracuje z agentami AI pod nadzorem człowieka i stąd wiemy, gdzie leży granica.
Gdzie przebiega granica między agentem a człowiekiem?
Granica nie biegnie po trudności zadania, tylko po tym, kto poniesie skutek błędu. Ekran poprawia się w dziesięć minut. Źle ustawiona polityka dostępu oddaje cudze dane i nie zostawia po sobie żadnego śladu na ekranie.
Dlatego w każdym obszarze pytamy o dwie rzeczy: do jakiego progu wynik agenta wystarcza i co po tym progu musi zrobić człowiek. Tabela niżej jest tą granicą rozpisaną na warstwy, z których składa się aplikacja dla firmy.
| Obszar | Do jakiego progu pracuje agent | Co po progu robi człowiek | Źródło (odczyt 31.08.2026) |
|---|---|---|---|
| Ekrany i teksty | pierwsza wersja widoku, warianty układu, opisy pól | spójność systemu, stany błędu, język, dostępność | praktyka zespołu |
| Logika funkcji | jedna ścieżka jednego typu użytkownika | wyjątki branżowe, drugi typ użytkownika, stany pośrednie | praktyka zespołu |
| Migracje bazy | migracja ze spisanego zakresu na pustej bazie | kolejność na żywych danych, wycofanie, kopia przed zmianą | praktyka zespołu |
| Płatności i powiadomienia operatora | wywołanie operatora i ekran powrotu | weryfikacja podpisu, duplikaty po identyfikatorze zdarzenia, zwroty | dokumentacja Stripe |
| Polityki dostępu | szkielet polityki na jedną tabelę | polityka na każdą tabelę w odsłoniętym schemacie i przeczytanie jej | dokumentacja Supabase |
| Wdrożenie zmiany | przygotowanie zgłoszenia zmiany | zatwierdzenie przez inną rolę, uruchomienie testów po akceptacji | GitHub Docs — reguły repozytorium i agent chmurowy |
| Decyzje o zakresie i priorytetach | propozycje i warianty do wyboru | wybór, termin, budżet, kolejność prac | praktyka zespołu |
| Odpowiedzialność i podpis | brak — agent nie jest podmiotem odpowiedzialnym | oznaczenie AI, wskazana osoba odpowiedzialna za treść | akt o AI, art. 50 |
Ostatni wiersz nie jest ozdobą. Obowiązki przejrzystości z aktu o sztucznej inteligencji stosuje się od 2 sierpnia 2026 r.; pozostałe terminy zebrał kalendarz w innym serwisie i tutaj ich nie powtarzamy.
Jeden przepis mówi wprost, co zostaje przy człowieku. Przy tekście publikowanym po to, by informować społeczeństwo o sprawach w interesie publicznym, obowiązek ujawnienia odpada między innymi wtedy, gdy treść przeszła weryfikację człowieka albo kontrolę redakcyjną i gdy odpowiedzialność redakcyjną ponosi osoba fizyczna lub prawna.
Ten tekst jest tego przykładem. Przygotował go agent AI, a pod artykułem stoi podpis wskazujący, kto odpowiada za fakty. To nie jest gest wobec czytelnika, tylko dokładnie ten warunek, o którym mówi przepis.
Bramki: co odrzuca maszyna, zanim spojrzy człowiek?
Bramka nie ocenia, czy funkcja jest dobra. Odrzuca to, co da się rozstrzygnąć regułą, żeby człowiek patrzył na resztę. U nas trzy bramki są maszynowe, a czwarta ludzka.
- Lint. Program czyta kod i treść według spisanych reguł: zakazane konstrukcje, brakujące pola, złamany format. Wynik jest zerojedynkowy i nie zależy od tego, kto akurat patrzy i w jakim jest nastroju.
- Testy. Ścieżki, na których błąd kosztuje pieniądze albo dane — logowanie, funkcja główna, płatność — przechodzą automatem przed wdrożeniem, a nie raz na kwartał przy okazji większej zmiany.
- Parytet. Sprawdzenie, czy dwa miejsca, które mają mówić to samo, faktycznie mówią to samo. Rozjazd między nimi to błąd, którego nie widać na żadnym ekranie, dopóki ktoś nie porówna obu.
- Przegląd innej roli. Wynik czyta ktoś, kto go nie pisał. To jedyna bramka, której nie da się zautomatyzować, i jedyna, która wyłapuje błąd sensu, a nie formy.
Zasada „autor nie zatwierdza sam siebie” jest dziś wpisana w narzędzia. Dokumentacja GitHuba o agencie chmurowym Copilota mówi, że agent nie może oznaczyć swojego zgłoszenia jako gotowego do przeglądu ani go zatwierdzić lub scalić.
Dalej: zgłoszenia od agenta muszą zostać przejrzane i scalone przez człowieka, a osoba, która zleciła agentowi pracę, nie może sama jej zatwierdzić. Domyślnie testy nie ruszą, dopóki ktoś z prawem zapisu nie kliknie zgody na ich uruchomienie.
Po stronie repozytorium ta sama zasada jest zwykłym ustawieniem: reguła wymaganych zatwierdzeń przyjmuje wartość od 0 do 10, a osobna reguła nie przepuszcza zmiany, dopóki wymagane testy nie przejdą (dokumentacja GitHuba, odczyt 31 sierpnia 2026 r.).
Po co to wszystko, skoro model pisze poprawny kod? Bo najczęściej pisze prawie poprawny. W badaniu Stack Overflow z 2025 roku najczęściej wskazywaną frustracją było „rozwiązanie prawie dobre, ale nie do końca” — 66% z 31 476 odpowiedzi.
„Prawie” jest tu gorsze niż „źle”. Kod, który się nie uruchamia, zatrzymuje się na pierwszej bramce maszynowej. Kod, który działa, ale w jednym warunku brzegowym oddaje cudze dane, przechodzi wszystko poza przeglądem człowieka.
Kiedy przepisać to, co wyszło spod agenta?
Sygnałów jest sześć i każdy znaczy to samo: proces skrócono w miejscu, w którym skracać go nie wolno. Żaden z nich nie dotyczy tego, jak dobry był model.
- Cykl zamknęła jedna rola. Ten sam agent napisał i zatwierdził. Nie ma znaczenia, jak dobry jest wynik — nie ma drugiego spojrzenia, więc nie ma na czym oprzeć zaufania.
- Warstwa uprawnień powstała przy okazji. Dokumentacja Supabase mówi wprost: tabela w odsłoniętym schemacie bez polityk dostępu jest do odczytu i zapisu dla każdej roli, która ma do niej uprawnienie.
- Płatność zalicza się z przekierowania. Bez weryfikacji podpisu powiadomienia ktoś obcy może wysłać fałszywe zdarzenie i wywołać realizację zamówienia albo nadanie dostępu — ostrzega przed tym dokumentacja Stripe.
- Nikt nie umie powiedzieć, dlaczego to działa. Kodu, którego nikt nie przeczytał, nikt też nie naprawi pod presją czasu. Awarie mają zwyczaj zdarzać się w piątek po południu.
- Migracja poszła na żywych danych bez próby odtworzenia kopii. Punkt odtworzenia i czas odtworzenia zapisuje się, zanim będą potrzebne. Po awarii nie ma czasu na ustalanie, ile danych wolno stracić.
- Integracja z cudzym systemem nie ma obsługi błędów. Cudze API zmienia się bez pytania. Agent pisze ścieżkę, która działa dziś; człowiek dopisuje, co ma się stać, gdy przestanie działać.
Przepisania wymaga zwykle warstwa decydująca o dostępie i o pieniądzach, a nie ekrany. Gdzie ta sama granica przebiega przy generatorach „vibe coding”, opisuje osobny tekst — razem z wynikami testów bezpieczeństwa.
Jak sprawdzić wykonawcę, który pracuje z AI — pięć pytań?
Każde z tych pytań ma odpowiedź sprawdzalną, a nie deklaratywną. Jeśli pada „mamy to pod kontrolą”, to znaczy, że odpowiedzi nie ma. Zadaj je przed podpisaniem umowy, nie po pierwszej awarii.
- Kto podpisuje wynik i kto odpowiada za fakty? Ma paść imię i nazwisko albo nazwa firmy, nie słowo „zespół”. Odpowiedzialność, której nie da się przypisać konkretnej osobie, nie istnieje.
- Jakie bramki maszynowe stoją między napisaniem a wdrożeniem? Poproś o ich nazwy i o pokazanie wyniku ostatniego przebiegu. Bramka, której wyniku nikt nigdy nie widział, nie jest bramką.
- Czy sprawdza inna rola niż ta, która pisała? Jeśli tak — dopytaj, jak to jest wymuszone. Ustawienie w repozytorium jest odpowiedzią, dobra wola nie jest.
- Czy w gotowej aplikacji widać, gdzie działa AI? Chodzi o funkcje, z którymi rozmawia użytkownik, i o treści, które aplikacja generuje. To wymóg prawa, nie kwestia stylu.
- Kto odpowiada za uprawnienia, płatności i sekrety? Te trzy warstwy czyta człowiek zawsze, niezależnie od tego, kto napisał pierwszą wersję. Błąd w każdej z nich widać dopiero na produkcji.
Dwa rachunki należą do innych serwisów i tutaj ich nie robimy: czyj jest kod napisany przez AI oraz jak wyglądają limity kont w narzędziach agentowych.
Najczęstsze pytania
Czy kod napisany przez agenta AI jest mój?
Narzędzie tego nie rozstrzyga — rozstrzyga umowa z wykonawcą: co przechodzi na Ciebie, kiedy i w jakiej formie. To pytanie do zadania przed budową, a nie po odbiorze. Stan prawny wokół praw do wytworów AI zebrano w osobnym tekście: czyj jest kod napisany przez AI. Tutaj pilnujemy innej rzeczy: kto przeczytał ten kod, zanim wszedł na produkcję.
Czy agent AI ma dostęp do moich danych?
Sprawdzalna zasada z naszej praktyki: konfiguracja produkcyjna leży poza kodem — sekrety w ustawieniach dostawcy, nigdy w repozytorium ani we froncie. Dostęp do danych ogranicza polityka na poziomie wierszy (RLS) per tabela, nie deklaracja zaufania. To pytanie warto zadać każdemu wykonawcy, niezależnie od tego, czym pracuje.
Czym różni się praca z agentami od vibe codingu?
Rolami i bramkami, nie modelem. W vibe codingu jedna osoba prosi generator o wynik i publikuje go, bo działa. W pracy zespołowej ten sam wynik przechodzi lint, testy i przegląd innej roli, zanim ktokolwiek go zobaczy. Gdzie kończy się samo generowanie, opisuje osobny tekst — z wynikami testów bezpieczeństwa.
Czy muszę oznaczać AI we własnej aplikacji?
Obowiązki przejrzystości z artykułu 50 aktu o sztucznej inteligencji stosuje się od 2 sierpnia 2026 r. Dotyczą między innymi systemów przeznaczonych do bezpośredniej interakcji z osobą fizyczną oraz oznaczania treści generowanych syntetycznie (rozporządzenie (UE) 2024/1689, odczyt 31 sierpnia 2026 r.). Który obowiązek dotyczy Twojej aplikacji i od kiedy — sprawdź w kalendarzu terminów.
Czy praca z agentami skraca budowę aplikacji?
To trzeba mierzyć, a nie zakładać. Raport DORA z 2025 roku wiąże wyższą adopcję AI z wyższą przepustowością dostarczania i jednocześnie z niższą stabilnością: więcej zmian bez mocnych testów i szybkiej informacji zwrotnej kończy się większą liczbą awarii. Kontrolowany eksperyment, który podważa samo poczucie przyspieszenia, opisano w tekście o vibe codingu.
Źródła
- Stack Overflow Developer Survey 2025, sekcja AI — frustracje (66% „prawie dobre, ale nie do końca”, 31 476 odpowiedzi) i zaufanie do wyników — https://survey.stackoverflow.co/2025/ai (odczyt 31.08.2026)
- DORA — State of AI-assisted Software Development 2025, ogłoszenie wyników (90% korzysta z AI, 30% małe zaufanie do kodu, wpływ na stabilność dostarczania) — https://cloud.google.com/blog/products/ai-machine-learning/announcing-the-2025-dora-report (publikacja 23.09.2025; odczyt 31.08.2026)
- Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2024/1689 (akt w sprawie sztucznej inteligencji) — art. 50 i art. 113, polski tekst urzędowy — https://publications.europa.eu/resource/celex/32024R1689 (Dz.U. UE z 12.07.2024; odczyt 31.08.2026)
- GitHub Docs — Copilot code review („Uzupełnij uwagi Copilota przeglądem człowieka”) — https://docs.github.com/en/copilot/concepts/code-review/code-review (odczyt 31.08.2026)
- GitHub Docs — Risks and mitigations for GitHub Copilot cloud agent (agent nie zatwierdza ani nie scala zgłoszeń; zlecający nie może sam zatwierdzić) — https://docs.github.com/en/copilot/concepts/agents/cloud-agent/risks-and-mitigations (odczyt 31.08.2026)
- GitHub Docs — Available rules for rulesets (wymagane zatwierdzenia od 0 do 10, wymagane testy przed scaleniem) — https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/available-rules-for-rulesets (odczyt 31.08.2026)
- Supabase — dokumentacja Row Level Security (tabela bez polityk w odsłoniętym schemacie jest do odczytu i zapisu) — https://supabase.com/docs/guides/database/postgres/row-level-security (odczyt 31.08.2026)
- Stripe — dokumentacja webhooków (weryfikacja podpisu, duplikaty rozpoznawane po identyfikatorze zdarzenia) — https://docs.stripe.com/webhooks (odczyt 31.08.2026)
- Role, bramki maszynowe i podział odpowiedzialności — praktyka zespołu — https://jakzrobicaplikacje.pl/o-serwisie/#skad (2026-08-31)
Tekst przygotował Agent AI Tomka Niedźwieckiego — treść wygenerowana przez sztuczną inteligencję na podstawie własnych wdrożeń zespołu, dokumentacji dostawców i źródeł podanych wyżej, sprawdzona w osobnym przebiegu weryfikacji faktów i zredagowana. Za fakty odpowiada Tomek Niedźwiecki. Ostatnia weryfikacja: 10 września 2026.