Blog
Agent AI w n8n krok po kroku. Pierwszy agent, który nie narobi szkód
W n8n agent AI to jeden węzeł. Przeciągasz go na płótno, podpinasz model, dodajesz narzędzie i po kwadransie agent odpowiada na pytania, sprawdza dane i coś zapisuje. To dużo prostsze, niż brzmi.
Trudniejsze jest coś innego: zbudować agenta, który wie, czego mu nie wolno, oddaje człowiekowi to, czego nie jest pewien, i nie wywoła modelu sto razy przy jednym zadaniu. W mojej instancji n8n działa kilka automatów z modelami AI i większość pracy przy nich to właśnie te zabezpieczenia, a nie samo podłączenie.
Pokażę, jak zbudować pierwszego agenta krok po kroku na prostym przykładzie: agent czyta nowe zapytanie od klienta, sprawdza status zamówienia i przygotowuje szkic odpowiedzi. Niczego sam nie wysyła.
Jak działa agent AI w n8n
Węzeł AI Agent to tak zwany węzeł nadrzędny (root node), do którego podpinasz węzły podrzędne. Według dokumentacji n8n agent potrzebuje modelu czatu i co najmniej jednego narzędzia. Od wersji 1.82 każdy węzeł AI Agent działa jako Tools Agent, czyli agent, który sam decyduje, z którego narzędzia skorzystać.
W praktyce składa się z czterech części:
- model czatu (OpenAI, Anthropic, Google, model lokalny i inne),
- narzędzia, czyli to, co agent może zrobić: zapytanie HTTP, odczyt arkusza, wyszukanie w bazie, wywołanie innego workflowu,
- pamięć, jeśli agent ma pamiętać wcześniejsze wiadomości w rozmowie,
- instrukcja (System Message), która mówi, kim agent jest, co ma zrobić i czego mu nie wolno.
Agent działa w pętli. Model czyta zadanie, decyduje, czy użyć narzędzia, dostaje wynik, znowu decyduje i tak dalej, aż uzna, że ma odpowiedź. Każde przejście pętli to osobne wywołanie modelu.
Czym agent różni się od zwykłej automatyzacji i kiedy w ogóle warto go używać, opisałem w tekście agent AI czy zwykła automatyzacja. Tutaj zakładam, że ta decyzja już zapadła.
Krok 1. Wyzwalacz i dane wejściowe
Agent potrzebuje zadania. W przykładzie wyzwalaczem jest nowa wiadomość w skrzynce albo nowe zgłoszenie z formularza. Zanim dane trafią do agenta, porządkuję je zwykłymi węzłami: wyciągam treść wiadomości, adres nadawcy i numer zamówienia, jeśli da się go znaleźć prostą regułą.
Wszystko, co da się ustalić regułą, ustalam przed agentem. Model dostaje wtedy mniej do zgadywania, a ja płacę za mniej wywołań.
Krok 2. Model i instrukcja
Do węzła AI Agent podpinam model czatu. Na start wybieram tańszy model i sprawdzam, czy wystarcza. Droższy biorę dopiero wtedy, gdy tańszy wyraźnie się myli.
Najwięcej czasu poświęcam instrukcji. Piszę w niej:
- co agent ma zrobić, jednym zdaniem,
- z jakich narzędzi może korzystać i w jakiej kolejności,
- czego mu nie wolno: obiecywać terminów, podawać cen spoza systemu, zgadywać numeru zamówienia,
- co ma zrobić, gdy czegoś nie wie: oznaczyć sprawę do przejrzenia i napisać, czego brakuje.
Ostatni punkt jest najważniejszy. Model zapytany o brakującą informację rzadko odpowiada „nie wiem”, chyba że instrukcja wprost mówi, że wolno mu tak odpowiedzieć i co wtedy zrobić.
Krok 3. Narzędzia, najpierw tylko do odczytu
W przykładzie agent dostaje dwa narzędzia: odczyt statusu zamówienia z API sklepu i wyszukiwanie w krótkiej bazie odpowiedzi na częste pytania. Oba tylko czytają dane.
Pola, które ma wypełnić model, na przykład numer zamówienia w zapytaniu do API, oznacza się w n8n wyrażeniem $fromAI(). Pozostałe parametry, takie jak adres API czy klucz, ustawiam na sztywno. Model wybiera, czego szukać, ale nie wybiera, gdzie.
Narzędzia, które coś zmieniają (zapis w CRM, zmiana statusu, wysłanie maila), dodaję dopiero wtedy, gdy agent przez jakiś czas dobrze radzi sobie z odczytem, i zawsze z akceptacją człowieka, o której piszę niżej.
Krok 4. Pamięć tylko wtedy, gdy jest potrzebna
Pamięć (na przykład węzeł Simple Memory) przydaje się, gdy agent prowadzi rozmowę na czacie i ma pamiętać, co klient napisał trzy wiadomości wcześniej. Przy pojedynczej wiadomości ze skrzynki pamięć nie jest potrzebna, bo każde zadanie jest osobne.
Niepotrzebna pamięć wydłuża to, co trafia do modelu przy każdym wywołaniu, więc zwiększa koszt, a czasem miesza zadania różnych klientów. Domyślnie jej nie dodaję.
Krok 5. Wynik w ustalonym formacie
Szkic odpowiedzi w wolnym tekście trudno sprawdzić automatem. Dlatego w węźle włączam opcję Require Specific Output Format i podpinam Structured Output Parser. Agent musi wtedy zwrócić dane w ustalonej strukturze, na przykład:
{
"kategoria": "status_zamowienia",
"numer_zamowienia": "12345",
"szkic_odpowiedzi": "…",
"pewnosc": "wysoka",
"do_przejrzenia": false,
"czego_brakuje": ""
}
Kategoria pochodzi z zamkniętej listy, a pole do_przejrzenia agent ustawia sam, gdy czegoś nie jest pewien. Za agentem stawiam węzeł IF, który sprawdza, czy wynik ma wszystkie pola i czy kategoria jest z listy. To, co nie przejdzie, trafia do ręcznego przejrzenia. Tak samo walidowałem wyniki modelu przy obsłudze błędów w n8n, gdzie jeden mail ze spamem potrafił zatrzymać cały workflow.
Krok 6. Limity: iteracje i koszty
W opcjach węzła jest Max Iterations, czyli maksymalna liczba przejść pętli. Domyślnie wynosi 10. Przy prostym zadaniu, w którym agent ma skorzystać z jednego albo dwóch narzędzi, ustawiam mniej. Jeśli agent nie skończy w kilku krokach, to zwykle znak, że zadanie jest źle opisane, a nie że potrzebuje więcej prób.
Drugi limit ustawiam u dostawcy modelu: miesięczny limit wydatków na koncie API. Agent, który utknie w pętli przy wielu zadaniach naraz, potrafi wygenerować rachunek szybciej, niż ktoś to zauważy.
n8n liczy jedno uruchomienie workflowu bez względu na liczbę kroków agenta, więc po stronie n8n pętla nie podnosi kosztu. Płacisz za nią u dostawcy modelu. Jak to wygląda w porównaniu z Make, które liczy każdy krok, opisałem w tekście n8n czy Make.
Krok 7. Akceptacja człowieka przy narzędziach, które coś zmieniają
n8n ma wbudowany mechanizm akceptacji dla narzędzi agenta. W panelu narzędzi węzła AI Agent dodajesz krok przeglądu przez człowieka, wybierasz kanał (dokumentacja wymienia między innymi Slack, Telegram, Microsoft Teams, Gmail i Outlook) i podpinasz pod niego narzędzia, które wymagają zgody. Gdy agent chce ich użyć, do wybranej osoby trafia prośba z nazwą narzędzia i parametrami. Po akceptacji narzędzie się wykonuje. Po odmowie akcja jest anulowana, a agent dostaje informację, że jej nie zatwierdzono.
Akceptację stawiam przy każdym narzędziu, które wysyła coś klientowi, zmienia dane w systemie albo dotyczy pieniędzy. Dlaczego właśnie tam i jak nie zamienić akceptacji w klikanie bez czytania, piszę we wpisie o human in the loop.
Krok 8. Log i test na historii
W opcjach agenta włączam Return Intermediate Steps. Wynik zawiera wtedy kroki pośrednie: które narzędzia agent wywołał i co od nich dostał. Zapisuję to razem z wynikiem w tabeli. Gdy agent się pomyli, widzę, czy źle zrozumiał zadanie, czy dostał złe dane z narzędzia.
Zanim agent zacznie pracować na nowych wiadomościach, puszczam go na kilkudziesięciu starych, na które ktoś już odpowiedział. Porównuję kategorie i szkice z tym, co zrobił człowiek. Tam, gdzie agent się myli, poprawiam instrukcję albo dokładam regułę przed agentem. Dopiero potem włączam go na bieżące wiadomości, najpierw tylko ze szkicami do przejrzenia.
Najczęstsze błędy przy pierwszym agencie
Za szerokie zadanie. „Obsłuż skrzynkę” to praca dla całego działu. Agent radzi sobie najlepiej z jednym, wąsko opisanym typem spraw.
Za dużo narzędzi naraz. Każde nowe narzędzie to kolejna decyzja dla modelu i kolejne miejsce na pomyłkę. Zaczynam od dwóch, trzech.
Narzędzia z prawem zapisu od pierwszego dnia. Agent, który na starcie może zmieniać dane w CRM, popełni pierwszy błąd tam, gdzie jest najdroższy.
Brak walidacji wyniku. Workflow, który ufa, że model zawsze zwróci poprawny format, prędzej czy później stanie na pierwszej nietypowej wiadomości.
Kiedy agent w n8n to przesada
Jeśli zadanie da się zapisać jako „jeśli X, to Y”, nie potrzebujesz agenta. Status zamówienia po numerze z tematu wiadomości odczyta zwykły węzeł HTTP Request, bez modelu, bez kosztu wywołań i za każdym razem tak samo. Agent ma sens tam, gdzie trzeba zrozumieć wolny tekst albo samodzielnie dojść do brakujących danych w kilku krokach.
Budujesz pierwszego agenta AI w n8n i nie wiesz, gdzie postawić granice? Napisz do mnie. Zaczniemy od jednego typu spraw i listy rzeczy, których agentowi nie wolno.


