Przejdź do treści

Agent AI czy automatyzacja: kiedy workflow starczy

Dawid Kuliberda · · 9 min czytania

Na formularz strony wpada zapytanie: imię, firma, adres e-mail, opis problemu. Kroki, które znasz, zanim ktokolwiek wciśnie wyślij, wykonuje workflow. Agent AI ma sens, gdy kolejność wychodzi dopiero po przeczytaniu, takie sprawy wracają na tyle często, że człowiek nie wyrabia z rozdzielaniem, a skutek pomyłki da się zatrzymać w biurze. Jedna nietypowa wiadomość w miesiącu zostaje przy osobie, która i tak czyta skrzynkę.

Gałęzie zapisane przed pierwszym zgłoszeniem

Przebieg biorę z tekstu o obsłudze zapytań z formularza. gpt-4o-mini, skala od 0 do 1, próg 0,75, stany rekordu i przegląd co godzinę są decyzjami tego szablonu.

Wejście to webhook, czyli adres, na który formularz wysyła zgłoszenie. Workflow liczy identyfikator ze skrótu adresu e-mail i treści. Drugie kliknięcie albo ponowne załadowanie strony zwraca „duplikat”: rekord zostaje jeden, mail wychodzi raz.

Zły format adresu albo pusta treść idzie w osobną gałąź na wadliwe zgłoszenia, też z deduplikacją.

Zanim tekst zobaczy model, jest filtr. Treść wyglądająca jak numer karty, informacja o stanie zdrowia albo materiał prawny dostaje od razu oznaczenie przeglądu przez człowieka, a biuro dostaje alert. Model tych treści nie widzi.

Reszta idzie do gpt-4o-mini. Model ma oddać kategorię zapytania, szacunek wielkości firmy, pilność, sygnał budżetu, krótkie streszczenie, projekt wiadomości powitalnej i liczbę pewności od 0 do 1. Ta liczba jest polem, które model sam wypełnia. Przebieg nie zamienia jej na zmierzone prawdopodobieństwo, że kategoria jest prawdziwa.

Odpowiedź szablon traktuje jak obce dane. Znaczniki kodu odpadają, pola muszą mieć właściwe typy i wartości z dozwolonych zbiorów. Pewność niższa niż 0,75, schemat niezgodny albo odpowiedź nie do odczytania zmienia stan rekordu na kolejkę. Pozostałe zapytania są dalej obsługiwane.

Po kwalifikacji rekord jest zapisywany w Airtable. Węzeł Airtable w n8n umie dopisać dane do tabeli i je zaktualizować. Stany „oczekuje na wysłanie” i „wysłano” pochodzą z szablonu. Stan zmienia się na „wysłano”, gdy Gmail zwróci identyfikator wiadomości. Udane wywołanie interfejsu Gmaila zwraca zasób wiadomości, a pole id identyfikuje wiadomość przyjętą do wysyłki. Odczyt u odbiorcy i samo doręczenie leżą poza tym polem.

Przy porażce wysyłki rekord zostaje w oczekiwaniu. W szablonie co godzinę osobny przegląd ponawia te, które utknęły. Wiadomość powitalna trafia na skrzynkę biura. Do osoby z formularza ten szkic idzie dopiero po świadomej zmianie konfiguracji, po testach na żywych danych.

Wiadomość obejmująca dwie sprawy

Weźmy przykładową firmę usługową, 8 osób. Nadawca jest już klientem. W jednym akapicie pisze, że faktura z zeszłego miesiąca nie zgadza się z ustaleniami. W następnym pyta, czy firma weźmie dodatkowy zakres na kolejny kwartał.

Etykieta „nowe zapytanie” myli, bo nadawca ma umowę. Zostawienie całości jako reklamacji gubi pytanie o zakres z drugiego akapitu. Gdyby model wpisał w polu pewności 0,41, reguła szablonu robi jedną rzecz wpisaną na ten wynik: rekord ląduje w kolejce. Ktoś z firmy czyta oba wątki i rozdziela je ręcznie.

Reguła skierowała sprawę do człowieka.

Taki mail raz na miesiąc zostaje przy tej osobie. Gdy podobne wiadomości wracają kilka razy w tygodniu i rozdzielanie ich zajmuje poranki, obok szablonu można dołożyć rolę z jednym celem. Szablon kończy pracę na kolejce.

Cel tej roli w przykładowej firmie: przygotuj materiał dla właściwej osoby, bez wysyłki do klienta, dopóki człowiek nie zatwierdzi treści. Rola sprawdza w fakturach, czy pozycja jest otwarta i czy dodatkowy zakres mieści się w tym, co firma już sprzedaje. Z faktury powstaje notatka dla osoby od rozliczeń. Właściciel dostaje osobną notatkę: zakres spoza cennika i to, czy jest na sprzedaż. Kolejność wzięła się z faktury i z treści maila. Czym taka rola różni się od chatbota i od asystenta, jest w tekście o różnicach między chatbotem, asystentem i agentem.

W n8n ten fragment może być węzłem AI Agent. Podłączasz model i co najmniej jedno narzędzie, a węzeł sam wybiera, które narzędzia wywołać, żeby wykonać zadanie. Wokół niego zostają webhook, filtr, próg i stany w bazie. Wysyłka do klienta czeka na człowieka.

Gdy pomyłka wychodzi z biura

W szablonie pomylona kategoria kosztuje przeczytanie rekordu, bo szkic leży na skrzynce biura. Człowiek poprawia stan, zanim zdanie wyjdzie poza firmę.

Koszt rośnie, gdy model dostaje prawo wysłać wiadomość do klienta albo przestawić status w programie, w którym leżą sprawy. Błędna klasyfikacja może wtedy uruchomić niewłaściwą odpowiedź do klienta. Mail z reklamacją faktury i z pytaniem o dodatkowy zakres dostaje szkic przeprosin. Klient czyta przeprosiny tam, gdzie czekał na decyzję, czy firma weźmie następną pracę.

Wysyłka do klienta i zapis w obcym systemie wchodzą do zakresu razem z osobą, która zatwierdza, zestawem spraw do testu i sposobem cofnięcia skutku.

Reguły przejścia i odpowiedź modelu

Skrót adresu i treści jest liczony w szablonie. Ten sam skrót drugi raz daje „duplikat”. Puste pole i filtr danych wrażliwych działają tak samo: te same dane wejściowe, ta sama gałąź, bez modelu po drodze.

Od wywołania gpt-4o-mini stan wynika z odpowiedzi, którą model akurat oddał. Przy tej odpowiedzi reguła jest stała: pewność poniżej 0,75 albo zły schemat oznacza kolejkę, a odpowiedź, która przejdzie sprawdzenie pól, idzie do wysyłki. Drugie wywołanie może oddać inną kategorię albo inną liczbę. OpenAI opisuje Chat Completions jako niedeterministyczne domyślnie. Seed i te same pozostałe parametry zbliżają wyniki, a zmiana konfiguracji modelu po stronie OpenAI może dać inną odpowiedź mimo seeda.

Przy roli, która sama dobiera narzędzia, dwa przebiegi mogą zajrzeć do faktur w innej kolejności. W teście agenta sprawdza się wynik i przestrzeganie uprawnień. Patrzysz, czy powstała notatka dla osoby od rozliczeń i czy mail do klienta został w biurze. Osobno sprawdzasz, czy system spoza listy w ogóle się otworzył. Przebieg, który wyśle szkic do klienta, żeby było szybciej, oblewa, nawet gdy treść szkicu była trafna.

Test dla przykładowej firmy

W tej przykładowej firmie test zaczyna się od przypisania przypadku do każdej gałęzi. Inaczej cisza na gałęzi nic nie znaczy: brak uruchomienia może oznaczać, że w zestawie nie było sprawy, która miała ją zapalić. Dopiero gdy przypadek był, a stan się nie zmienił, szukasz złego podpięcia.

Zestaw wygląda tak:

  • drugi raz ten sam adres i ta sama treść, oczekiwany wynik to „duplikat”,
  • pusty opis, oczekiwana gałąź na wadliwe zgłoszenia,
  • tekst z ciągiem wyglądającym jak numer karty, oczekiwany przegląd człowieka i brak wywołania modelu,
  • zapisana odpowiedź modelu z pewnością poniżej 0,75, oczekiwana kolejka,
  • zapisana odpowiedź, która przechodzi sprawdzenie pól, oczekiwany stan „oczekuje na wysłanie”, a „wysłano” tylko tam, gdzie dostawca oddał identyfikator,
  • porażka wysyłki, rekord zostaje w oczekiwaniu.

Gałęzie zależne od modelu dostają zapisaną odpowiedź. Żywy model może oddać inną liczbę, więc kolejne wywołanie nie sprawdza kolejki.

Próg pewności obok oceny człowieka

0,75 zostaje progiem szablonu. Inną liczbę ustawiasz u siebie, po zestawieniu z zapytaniami oznaczonymi przez człowieka: podnosisz próg, gdy poprawki leżą powyżej niego, i obniżasz go, gdy w kolejce stoją sprawy uznane za trafne. W opisie szablonu stoi sama liczba.

Gdy listy gałęzi nie da się napisać wcześniej

Ta sama przykładowa firma, inne źródło. Właściciel dostaje mail przesłany z cudzej skrzynki, zdjęcie kartki i dopisek „jak ostatnio u Kowalskiego”. Szablon formularza czyta wyłącznie webhook. Ta sprawa zostaje poza nim. Wynik na jutro, na 9:00, jest nazwany z góry: szkic odpowiedzi, z faktami z poczty, faktur i ustaleń, bez wysyłki. Który ślad jest potrzebny, wychodzi po przeczytaniu. Raz jest to zaległa płatność. W innym tygodniu dochodzi zakres, którego nie ma w cenniku, i osoba, która odeszła z zespołu klienta.

Wypisanie gałęzi przed startem byłoby tu listą zmyśloną. Jedna taka sprawa w miesiącu zostaje przy właścicielu. Gdy wracają co tydzień, a pomyłka ma zostać na wewnętrznej notatce, dokładasz rolę z celem, nazwanymi narzędziami i wysyłką dopiero po zatwierdzeniu przez człowieka.

W Kuliberda Labs przebieg od zdarzenia do skutku nazywam Automatyzacją AI. Może stać w n8n, w kodzie albo jako workflow wokół agenta. O nazwie usługi decyduje zakres odpowiedzialności za proces: reguły, integracja, testy i przekazanie. Koszty modelu, API, hostingu i kont pokrywa firma, jeżeli oferta albo umowa nie stanowi inaczej. Jeśli chcesz rozłożyć to na własnym procesie, zacznij od bezpłatnej diagnozy: 30 minut, 0 zł, nazwany problem i następny krok.

Najczęstsze pytania

Czy agent AI w n8n to nadal workflow?

Dopóki n8n idzie po liście kroków ułożonej przed startem, całość jest workflowem, także gdy jeden węzeł woła model. Węzeł AI Agent jest fragmentem takiego przebiegu: po podłączeniu modelu i narzędzi sam wybiera, które narzędzia wywołać. W szablonie formularza model jest jednym krokiem o stałym miejscu. Sprawy z pewnością poniżej 0,75 albo ze złym schematem dostaje człowiek.

Skąd wiadomo, czy próg 0,75 pasuje do moich zapytań?

W szablonie próg wynosi 0,75 i poniżej niego rekord idzie do kolejki. Liczba pewności jest deklaracją modelu. Przebieg nie mierzy, jak często etykieta zgadza się z późniejszą oceną człowieka. Wiadomość powitalna i tak trafia na skrzynkę biura, a przekierowanie do osoby z formularza jest osobną zmianą konfiguracji, po testach na żywych danych.

Kiedy agent AI w firmie ma sens?

Gdy sprawy o zmiennym kształcie wracają co tydzień, a skutek da się zatrzymać na szkicu w biurze. Formularz o czterech stałych polach, z deduplikacją i kolejką, zostaje przy workflow. Pojedynczą wiadomość spoza kategorii rozdziela człowiek.

Jak sprawdzić przebieg, skoro model może odpowiedzieć inaczej?

Gałęzie bez modelu sprawdzasz powtórką tych samych danych: duplikat wraca jako duplikat, puste pole idzie do wadliwych zgłoszeń. Gałąź kolejki sprawdzasz zapisaną odpowiedzią z pewnością poniżej 0,75, bo żywy model może oddać inną liczbę. W teście agenta sprawdza się wynik i przestrzeganie uprawnień. Dwie trasy zaliczają test, gdy skutek i granice się zgadzają.

Co zrobić z mailem, którego nie da się rozpisać w kroki?

Jednorazowo pisze go człowiek. Gdy takie maile wracają co tydzień, a potrzebny ślad wychodzi dopiero po przeczytaniu, dokładasz rolę z celem i bez prawa wysyłki. Zanim cokolwiek budujesz, wypisujesz, które systemy rola otwiera i co wolno jej zapisać.

Źródła

  • developers.google.com: udane wywołanie users.messages.send zwraca zasób Message (sprawdzone 2026-10-04)
  • developers.google.com: pole id to niezmienny identyfikator wiadomości, nie potwierdzenie odczytu ani doręczenia (sprawdzone 2026-10-04)
  • docs.n8n.io: węzeł Airtable w n8n dopisuje dane do tabeli i je aktualizuje. Kolejność stanów szablonu pochodzi z tekstu o obsłudze zapytań, nie z tej dokumentacji (sprawdzone 2026-10-04)
  • docs.n8n.io: węzeł AI Agent, po podłączeniu modelu i co najmniej jednego narzędzia, sam wybiera wywołania narzędzi potrzebne do zadania i może być częścią workflow (sprawdzone 2026-10-04)
  • developers.openai.com: odpowiedzi Chat Completions są domyślnie niedeterministyczne. Parametr seed zbliża wyniki, ale dokumentacja nie gwarantuje identyczności, także przy zmianie konfiguracji modelu po stronie OpenAI (sprawdzone 2026-10-04)
Wróć na początek ↑
// next

Najprościej zacząć od diagnozy.

W pół godziny rozmowy usłyszysz konkretną odpowiedź: gdzie w Twojej firmie system zdejmie najwięcej ręcznej pracy.

UMÓW BEZPŁATNĄ DIAGNOZĘ →[ ← wróć na bloga ]