Jak zautomatyzować pracę: 6 poziomów, od skryptu po AI
Jak zautomatyzować pracę? Porównanie skryptów, RPA, n8n, chata z AI i agentów na jednym procesie: od ręcznego raportu po automat.
Mateusz Karwowski
Programista i nauczyciel · MattDevSpis treści
Poniedziałek, 8:00 rano. Logujesz się do panelu sklepu internetowego, eksportujesz plik z zamówieniami, wklejasz liczby do arkusza Google, podliczasz sumy, dopisujesz dwa zdania podsumowania i wysyłasz maila do szefa. Trwa to 45 minut. Co poniedziałek, bez wyjątku. Prawie każdy, kto pracuje przy komputerze, ma swój odpowiednik takiego powtarzalnego zadania i niemal każdy próbuje je zautomatyzować od niewłaściwej strony: od razu sięga po najgłośniejsze narzędzie z nagłówków w sieci (zazwyczaj autonomicznego agenta AI), zamiast po najprostsze rozwiązanie, które załatwi sprawę w piętnaście minut. Poniżej biorę ten jeden konkretny proces i przeprowadzam go przez sześć poziomów automatyzacji: od prostego skryptu po system agentowy. Zobaczysz, co znika z Twojej listy obowiązków, ile czasu realnie oszczędzasz i na którym etapie najbardziej opłaca się zatrzymać.
Mapa sześciu poziomów
Automatyzację pracy możemy ułożyć w drabinę sześciu poziomów:
- Skrypty i reguły: deterministyczny kod wykonujący sztywne kroki bez udziału AI.
- RPA: bot symulujący klikanie w interfejs użytkownika tam, gdzie brakuje API.
- Chat z AI: człowiek ręcznie steruje modelem, model przyspiesza pisanie i analizę.
- Platformy workflow (n8n, Make): automatyczne łączenie aplikacji z opcją wpięcia AI jako pojedynczego klocka.
- Agent w edytorze (IDE): model planuje i modyfikuje kod na Twoich oczach, a Ty zatwierdzasz zmiany.
- Autonomiczny system agentowy: AI działa w tle, podejmuje decyzje i przygotowuje gotowe wyniki do ostatecznej akceptacji.
Złota zasada brzmi: zawsze wybieraj najniższy możliwy poziom, który rozwiązuje problem. Im wyżej wchodzisz na drabinie, tym więcej swobody oddajesz maszynie i tym bardziej musisz zadbać o mechanizmy kontroli.
Ta drabina nie jest rankingiem narzędzi. Wyższy poziom daje więcej swobody, ale dokłada koszt, ryzyko i potrzebę kontroli.
Dwa światy automatyzacji: przepis i kucharz
Wyobraź sobie przygotowywanie obiadu. Możesz gotować ściśle według przepisu: odważone składniki, nastawiony minutnik i za każdym razem ten sam, przewidywalny rezultat. Możesz też zatrudnić kucharza: rzucasz „przygotuj coś pożywnego”, a on sam wybiera produkty i doprawia danie. Wynik bywa wybitny, ale bywa też kompletnym zaskoczeniem.
Wszystkie narzędzia automatyzacji należą do jednego z tych dwóch światów:
- Świat przepisu (bez AI): skrypty, RPA, reguły w n8n. Ty precyzyjnie definiujesz kroki, komputer je bezbłędnie powtarza. Raport co tydzień wygląda identycznie.
- Świat kucharza (z AI): chatboty i agenci. Ty podajesz cel, model sam dobiera drogę. Raport może wyłapać ciekawe wnioski, ale nie masz stuprocentowej gwarancji, jak sformułuje treść.
Zanim wybierzesz narzędzie, zadaj sobie jedno pytanie: czy potrafię opisać ten proces jako niezmienną listę kroków? Jeśli tak, trzymaj się świata przepisu. Sztuczna inteligencja jest Ci potrzebna dopiero wtedy, gdy zadanie wymaga interpretacji języka, oceny kontekstu lub gdy dane wejściowe za każdym razem mają inną strukturę.
Punkt wyjścia: 45 minut ręcznej roboty
Nasz przykładowy poniedziałkowy raport składa się z sześciu czynności:
- logowanie do panelu sklepu,
- eksport zamówień z minionego tygodnia do pliku CSV,
- zaimportowanie danych do arkusza kalkulacyjnego,
- wyliczenie łącznej sprzedaży i liczby opłaconych transakcji,
- dopisanie dwóch zdań komentarza o trendach,
- wysłanie wiadomości e-mail z podsumowaniem do przełożonego.
Każdy kolejny poziom automatyzacji eliminuje część tych zadań.
Poziom 1: skrypt, który wysyła raport za Ciebie
Gdy dane można pobrać z pliku lub przez API, a reguły są znane, wystarczy prosty skrypt w JavaScript lub Pythonie. Kroki 2, 3, 4 i 6 znikają w ułamku sekundy:
export const summarizePaidOrders = (orders) => {
const paidOrders = orders.filter((order) => order.status === 'oplacone')
const paidTotal = paidOrders.reduce((sum, order) => sum + order.amount, 0)
return {
paidTotal,
paidCount: paidOrders.length,
}
}
const weeklySummary = summarizePaidOrders([
{ status: 'oplacone', amount: 120 },
{ status: 'anulowane', amount: 80 },
{ status: 'oplacone', amount: 200 },
])
console.log(weeklySummary)
// { paidTotal: 320, paidCount: 2 }
Największa zaleta takiego rozwiązania nie polega na tym, że kod jest krótki. Wynik można sprawdzić bez uruchamiania całego procesu:
import assert from 'node:assert/strict'
import test from 'node:test'
import { summarizePaidOrders } from './report.js'
test('sumuje tylko opłacone zamówienia', () => {
assert.deepEqual(
summarizePaidOrders([
{ status: 'oplacone', amount: 120 },
{ status: 'anulowane', amount: 80 },
{ status: 'oplacone', amount: 200 },
]),
{ paidTotal: 320, paidCount: 2 },
)
})
Na końcu dodajesz harmonogram w systemowym cronie, aby skrypt uruchamiał się samoczynnie w każdy poniedziałek o 8:00:
0 8 * * 1 node ~/raporty/raport.js
W typowym tygodniu raport nie wymaga ręcznej pracy. Nadal trzeba jednak otrzymać alert po błędzie i od czasu do czasu sprawdzić, czy format danych wejściowych się nie zmienił.
Zalety:
- stuprocentowa powtarzalność: te same dane zawsze dadzą identyczny wynik,
- niski koszt utrzymania, dopóki format danych i API pozostają stabilne,
- błyskawiczne działanie.
Wady:
- wymaga umiejętności zaprogramowania logiki i myślenia programistycznego,
- brak elastyczności: skrypt nie zareaguje na nietypowe sytuacje, których nie przewidziano w kodzie,
- wymaga dostępu do danych w formie pliku lub API.
Jeśli dane są ustrukturyzowane, poziom 1 rozwiązuje problem definitywnie. Sięganie wyżej ma sens tylko wtedy, gdy system nie ma API (poziom 2) albo gdy raport wymaga analizy jakościowej (poziom 3 i wyżej).
Poziom 2: RPA, czyli bot, który klika tam, gdzie skrypt nie sięga
Wyobraźmy sobie, że sklep korzysta ze starego systemu magazynowego: brak API, brak automatycznego eksportu, jedynie okno programu i przyciski. Skrypt sieciowy tam nie sięgnie. Wtedy do gry wchodzi RPA (Robotic Process Automation), czyli program symulujący ruchy myszy i wpisywanie tekstu:
1. Otwórz stronę https://magazyn.firma.local i wpisz dane logowania.
2. Kliknij przycisk „Raporty”, a następnie „Eksport tygodniowy”.
3. Zapisz pobrany plik jako raporty/magazyn.csv.
4. Zamknij okno przeglądarki.
W praktyce taki scenariusz może wyglądać jak krótki test Playwright. Dane logowania pochodzą ze zmiennych środowiskowych, a kod czeka na rzeczywiste pobranie pliku zamiast zgadywać czas przez sleep:
import { chromium } from 'playwright'
const downloadWeeklyReport = async () => {
const browser = await chromium.launch()
try {
const page = await browser.newPage()
await page.goto('https://magazyn.firma.local')
await page.getByLabel('E-mail').fill(process.env.REPORT_USER ?? '')
await page.getByLabel('Hasło').fill(process.env.REPORT_PASSWORD ?? '')
await page.getByRole('button', { name: 'Zaloguj się' }).click()
const downloadPromise = page.waitForEvent('download')
await page.getByRole('button', { name: 'Eksport tygodniowy' }).click()
const download = await downloadPromise
await download.saveAs('raporty/magazyn.csv')
} finally {
await browser.close()
}
}
await downloadWeeklyReport()
Pobrany plik CSV przekazujemy do skryptu z poziomu 1. RPA nie zastępuje kodu, tylko tworzy most nad przestarzałym interfejsem.
Zalety:
- pozwala zautomatyzować systemy pozbawione jakiegokolwiek API,
- nie wymaga zmian w infrastrukturze starego oprogramowania,
- prosty scenariusz można często wyklikać w dedykowanym rejestratorze.
Wady:
- duża podatność na awarie: zmiana układu strony lub opóźnienie w ładowaniu potrafi wywalić bota,
- powolne działanie (narzędzie musi fizycznie czekać na renderowanie interfejsu),
- trudne utrzymanie i testowanie.
RPA należy traktować jako ostateczność tam, gdzie nie ma innej drogi do danych.
Poziom 3: chat z AI, czyli lepsze wnioski i powrót do ręcznej roboty
Poziomy 1 i 2 załatwiły matematykę, ale pozostał krok 5: interpretacja wyników. Szef nie chce tylko tabelki, chce wiedzieć, co rośnie, a co spada. Skrypt nie napisze zróżnicowanego podsumowania, więc wkraczamy do świata kucharza.
Wielu pracowników robi to dziś ręcznie: kopiuje liczby z arkusza, wkleja do chata (ChatGPT, Claude czy Gemini) i prosi o analizę:
Podsumuj załączone dane sprzedażowe w trzech zwięzłych punktach:
1. Co sprzedawało się najlepiej?
2. Co odbiega od normy z ostatnich czterech tygodni?
3. Na jakie ryzyka zwrócić uwagę w nadchodzącym tygodniu?
Ton: konkretny, biznesowy, maksymalnie 150 słów.
Wnioski brzmią profesjonalnie, ale zwróć uwagę na paradoks: znowu siedzisz przy komputerze i ręcznie przeklejasz dane. To nie jest prawdziwa automatyzacja, tylko wspomaganie pracy. Zamiast zera minut poświęcasz 15 minut na promptowanie i sprawdzanie tekstu.
Zalety:
- natychmiastowy start bez żadnej konfiguracji technicznej,
- znakomita analiza językowa i wychwytywanie trendów opisowych,
- świetne środowisko do testowania, jakich pytań warto wymagać od przyszłego automatu.
Wady:
- proces nadal wymaga Twojej obecności i ręcznego przekazywania danych,
- ryzyko halucynacji i konieczność każdorazowej weryfikacji liczb,
- brak powtarzalności struktury odpowiedzi.
Jeśli co poniedziałek wklejasz te same dane do okna chata, pora przenieść ten prompt do poziomu 4.
Poziom 4: n8n, czyli przepis, który zatrudnia kucharza
Gdy aplikacje działają w chmurze, nie musisz pisać integracji od zera. Platformy workflow, takie jak n8n, Make czy Zapier, pozwalają łączyć usługi w wizualnym edytorze: „gdy nadejdzie zdarzenie A w aplikacji X, pobierz dane i wyślij je do aplikacji Y”.
Nasz poniedziałkowy proces w n8n łączy deterministyczny przepływ z inteligencją modelu językowego:
[Harmonogram: pon. 8:00] → [API sklepu: pobierz zamówienia]
→ [Google Sheets: dopisz wiersze] → [Klocek AI: wygeneruj wnioski z promptu]
→ [Gmail: wyślij gotowy raport do przełożonego]
Model opisuje trendy, ale nie oblicza sprzedaży i nie wysyła wiadomości. Te granice pozostają deterministyczne.
Liczby płyną automatycznie, moduł AI tworzy dwuakapitowe podsumowanie, a wersja robocza e-maila czeka na sprawdzenie. Gdy raport nie dotyczy danych wymagających akceptacji, ostatni krok można później zmienić na automatyczną wysyłkę.
To idealny kompromis: całą strukturą zarządza sztywny przepis, a sztuczna inteligencja wykonuje wyłącznie tę jedną cząstkową pracę, która wymaga elastyczności językowej.
Zalety:
- setki gotowych integracji bez konieczności pisania kodu od podstaw,
- automatyczne podsumowania tekstowe bez ręcznego kopiowania,
- wbudowana historia uruchomień i powiadomienia o błędach.
Wady:
- skomplikowana logika biznesowa w edytorze wizualnym staje się trudna w utrzymaniu,
- koszty abonamentowe platform chmurowych lub konieczność własnego hostingu (w przypadku n8n),
- ograniczone możliwości automatycznych testów jednostkowych.
W tym miejscu zatrzymuje się większość dojrzałych automatyzacji w firmach.
Poziom 5: agent w IDE, czyli AI planuje kroki na Twoich oczach
Dotychczasowe poziomy dotyczyły automatyzacji samego procesu biznesowego. Poziom 5 dotyczy czegoś innego: automatyzacji tworzenia i modyfikowania naszych skryptów. Tutaj wchodzą agenci w edytorach programistycznych (Cursor, Claude Code, GitHub Copilot). Zamiast ręcznie edytować kod, wydajesz dyspozycję:
Zmodyfikuj plik raport.js:
1. Dodaj osobną kategorię dla zamówień ze statusem "zwrocone".
2. W przypadku braku pliku wejściowego wypisz czytelny komunikat błędu i zakończ działanie.
3. Zachowaj dotychczasowy format obiektu wynikowego.
Agent sam analizuje strukturę plików, proponuje modyfikacje i uruchamia testy. Nie oceniasz jednak samej odpowiedzi na czacie. Oceniasz konkretny diff:
+import { existsSync } from 'node:fs'
const inputPath = process.argv[2]
+if (!inputPath || !existsSync(inputPath)) {
+ throw new Error('Nie znaleziono pliku z zamówieniami')
+}
const paidOrders = orders.filter((order) => order.status === 'oplacone')
+const returnedOrders = orders.filter((order) => order.status === 'zwrocone')
return {
paidTotal,
paidCount: paidOrders.length,
+ returnedCount: returnedOrders.length,
}
Następnie sprawdzasz testy i dopiero zatwierdzasz zmianę. Agent przyspiesza edycję, ale nie przejmuje odpowiedzialności za format raportu.
Zalety:
- drastyczne przyspieszenie pisania i poprawiania skryptów,
- pełna kontrola na żywo nad każdą zmienioną linijką kodu,
- świetna okazja do nauki dobrych praktyk programistycznych.
Wady:
- wymaga umiejętności krytycznej oceny wygenerowanego kodu (o czym pisałem w tekście o roli programisty w erze AI),
- nie działa w tle jako samodzielny automat biznesowy,
- wymaga precyzyjnego formułowania wymagań.
Taki asystent w edytorze wspiera developera przy biurku i przyspiesza powstawanie skryptów z poziomów 1-4, ale do procesów działających całkowicie bez Ciebie potrzebujesz poziomu szóstego.
Poziom 6: system agentowy, czyli raport, który sam stawia pytania
Na najwyższym szczeblu nie podajesz modelowi sztywnego algorytmu. Definiujesz cel, udostępniasz narzędzia i wyznaczasz granice bezpieczeństwa:
cel: Przygotuj cotygodniowy raport sprzedaży i przeanalizuj kluczowe odchylenia
narzędzia:
- API sklepu (uprawnienia tylko do odczytu)
- folder raporty/ (dostęp do archiwum CSV)
- klient poczty (tworzenie wersji roboczych, bez prawa wysyłki)
granice:
- nigdy nie wysyłaj maila bez mojej akceptacji
- oznacz jako anomalię każdą zmianę wskaźnika powyżej 20% względem średniej miesięcznej
Agent może czytać dane i przygotować szkic. Nie może zmienić zamówień ani samodzielnie wysłać wiadomości.
Taki agent uruchamia się w tle, pobiera statystyki, porównuje je z poprzednimi miesiącami i wskazuje nietypowe odchylenia. Tworzy wersję roboczą maila z wykresem i rekomendacją. Twoja rola polega na przeczytaniu raportu, sprawdzeniu danych i podjęciu decyzji o wysłaniu.
Zalety:
- zdolność do samodzielnego wykrywania korelacji i nietypowych anomalii,
- radzi sobie ze złożonymi, wieloetapowymi procesami decyzyjnymi,
- najwyższy stopień odciążenia człowieka przy zadaniach analitycznych.
Wady:
- brak determinizmu: każde uruchomienie może pójść inną ścieżką wnioskowania,
- wysoki koszt pomyłki w przypadku przyznania zbyt szerokich uprawnień,
- trudniejsze szacowanie kosztów tokenów i czasu wykonania.
Systemy agentowe sprawdzają się tam, gdzie dane wejściowe nie mają stałego formatu i sztywne reguły zawodzą.
Na którym poziomie się zatrzymać?
W naszym przykładzie najwięcej ręcznej pracy znika już na poziomie prostego skryptu. Chat z AI skraca analizę, ale nadal wymaga przeklejania danych. Workflow usuwa przeklejanie, a system agentowy przejmuje wybór kroków, zostawiając człowiekowi kontrolę nad wynikiem. Aby wybrać właściwy poziom dla swojego procesu, odpowiedz na trzy pytania:
- Czy proces da się opisać jako ciąg stałych kroków? Jeśli tak, wybierz poziom 1 (skrypt) lub 4 (n8n). Unikaj angażowania agentów tam, gdzie wystarczy prosta reguła logiczna.
- Jaki jest koszt ewentualnego błędu? Jeśli wysyłasz dane finansowe do urzędu lub faktury do klientów, pozostań przy deterministycznym kodzie albo wprowadź obowiązkową akceptację człowieka.
- Jak często powtarzasz tę czynność? Jeśli codziennie lub co tydzień, automatyzacja zwróci się błyskawicznie. Jeśli raz w roku, często szybciej zrobisz to ręcznie.
Gdzie automatyzacje się psują
Wdrażanie automatyzacji najczęściej potyka się o te same błędy:
- Sięganie po agenta, gdy wystarczy krótki skrypt. Używanie modeli językowych do prostego sortowania tabeli to marnowanie zasobów i wprowadzanie niepotrzebnego ryzyka.
- Automatyzowanie bałaganu. Przeniesienie nieprzemyślanego, chaotycznego procesu do n8n sprawi jedynie, że błędy będą powstawać automatycznie i na większą skalę.
- Brak właściciela procesu. Każde API i każdy format pliku może się kiedyś zmienić. Ktoś musi wiedzieć, jak zareagować, gdy automat zgłosi błąd.
- Brak barier bezpieczeństwa. Pozwalanie modelom AI na bezpośrednie operacje zapisu w bazie produkcyjnej bez walidacji to proszenie się o awarię.
Zautomatyzuj coś w ten poniedziałek
Niezależnie od tego, jakie narzędzia pojawią się na rynku za rok czy dwa, fundament pozostanie niezmienny: umiejętność precyzyjnego rozbicia problemu na kroki przed napisaniem pierwszej linii automatyzacji. Jeśli masz w pracy powtarzalny proces, który zabiera Ci cenny czas, opisz go w kilku zdaniach. Chętnie podpowiem, od którego poziomu najlepiej zacząć.
A jeśli chcesz nauczyć się budować nowoczesne aplikacje integrujące logikę serwerową z modelami sztucznej inteligencji, sprawdź kurs DevChallenge.
Programista (mgr inż. informatyki, PW) i nauczyciel. Uczę programowania i matematyki 1:1: projektowo, po ludzku i bez wkuwania.
Czytaj dalej
Jak zostać Full Stack Developerem w erze AI? 8 kroków
Jak zostać Full Stack Developerem w dobie AI? Ścieżka od HTML-a po wdrożenie i nauka, w której analiza kodu bije wkuwanie składni.
Czytaj MatematykaJak nauczyć się matematyki bez wkuwania wzorów
Jak nauczyć się matematyki, jeśli „nie masz umysłu ścisłego”? Dlaczego zrozumienie bije wkuwanie wzorów i jak nadrobić zaległości krok po kroku.
CzytajNastępny krok
Zacznijmy od Twojego celu z AI
Napisz, czego potrzebujesz. Odpowiem osobiście, a jeśli mogę pomóc, zaproponuję krótką bezpłatną rozmowę.