Integracja Claude z n8n na własnym VPS
Instrukcja konfiguracji Claude w n8n na własnym serwerze. Dowiedz się jak zarządzać poświadczeniami, wybierać modele dla węzłów i uniknąć błędów przy automatyzacji zadań AI.
Co budujesz
Trzy działające przepływy pracy AI na instancji n8n, którą już uruchamiasz: webhook podsumowujący dowolne przesłane dane, zaplanowany czytnik kanałów RSS zamieniający artykuły na ustrukturyzowane wiersze w arkuszu kalkulacyjnym oraz Agent AI, który samodzielnie wywołuje API HTTP w celu udzielania odpowiedzi. Jest to odpowiednik no-code dla wywoływania API Claude z poziomu Python na VPS. Używasz tego samego API, tych samych tokenów i ponosisz te same koszty, jednak orkiestracja odbywa się w węzłach n8n zamiast w skrypcie.
Zakładam, że n8n działa już za HTTPS zgodnie z przewodnikiem po self-hosted n8n na Docker. Jeśli tak nie jest, wykonaj to w pierwszej kolejności. Webhooki wymagają poprawnego punktu końcowego TLS, a magazyn poświadczeń, w którym umieścisz klucz API, wymaga kopii zapasowej klucza szyfrującego, o której wspomina wspomniany przewodnik.
Najciekawsze problemy w tym przypadku nie dotyczą metody przeciągnij i upuść. Są to: wybór modelu dla poszczególnych węzłów, pola promptów, które w sposób niejawny interpolują undefined, oraz fakt, że automatyzacja działa bez nadzoru. Przepływ pracy kosztujący pół centa za wykonanie jest tani, dopóki pętla ponownych prób nie uruchomi go cztery tysiące razy w ciągu nocy. Większość tego przewodnika dotyczy właśnie tych kwestii.
Jeden zestaw danych uwierzytelniających, zaszyfrowany kluczem, którego kopię zapasową utworzono
Pobierz klucz API z konsoli Anthropic pod adresem platform.claude.com, przechodząc do sekcji Settings, a następnie API Keys i tworząc klucz o nazwie takiej jak n8n-vps. Jest on wyświetlany tylko raz. Zasil konto lub skonfiguruj płatności; korzystanie z API jest rozliczane za token i jest całkowicie niezależne od subskrypcji Claude.ai. Jeśli celem było zbudowanie tych trzech przepływów pracy bez ponoszenia kosztów, nie istnieje darmowy plan, dostępny jest jedynie niewielki kredyt na start oraz kilka punktów końcowych, które są bezpłatne.
W n8n: przejdź do Credentials, wybierz Create credential, wskaż Anthropic, wklej klucz w pole API Key i zapisz. Każdy węzeł Claude w dowolnym przepływie pracy odwołuje się do tego jednego zapisanego zestawu danych; klucza nie wkleja się bezpośrednio do węzłów.
Dwie uwagi operacyjne. Po pierwsze, n8n szyfruje zapisane poświadczenia za pomocą N8N_ENCRYPTION_KEY. Jeśli zmienna środowiskowa zostanie jawnie ustawiona w pliku Compose zgodnie z przewodnikiem n8n, poświadczenia przetrwają ponowne utworzenie kontenera. Jeśli n8n wygeneruje klucz, a następnie wolumen zostanie utracony, wszystkie zapisane poświadczenia, w tym ten klucz, będą nieodwracalnie zaszyfrowane. Jeśli ten krok został pominięty, należy teraz utworzyć kopię zapasową klucza. Po drugie, magazyn poświadczeń n8n należy traktować jako zakres potencjalnych skutków incydentu. Każdy, kto może edytować workflowy w tej instancji, może wykonywać żądania przy użyciu klucza Anthropic. W wersji Community nie ma uprawnień do poświadczeń przypisywanych poszczególnym użytkownikom. Jeśli inne osoby logują się do tej instancji, przed utworzeniem kont należy przeczytać jakie mechanizmy kontroli dostępu zapewnia płatna licencja n8n. W Console, w sekcji Settings, należy ustawić limit wydatków, aby przejęta lub nieprawidłowo działająca instancja miała określony maksymalny koszt.
Wybór modelu jest decyzją podejmowaną dla każdego węzła z osobna
Lista rozwijana modeli w węzłach Claude w n8n jest pobierana na żywo z API, dzięki czemu wyświetla zasoby dostępne dla danego klucza. Według stanu na lipiec 2026 r. oferta oraz ceny API za milion tokenów wejściowych/wyjściowych przedstawiają się następująco: Claude Haiku 4.5 (claude-haiku-4-5) w cenie $1/$5 z oknem kontekstowym 200K, Claude Sonnet 5 (claude-sonnet-5) w cenie $3/$15 (cena promocyjna $2/$10 obowiązuje do 31 sierpnia 2026 r.) oraz Claude Opus 4.8 (claude-opus-4-8) w cenie $5/$25, oba z oknem kontekstowym 1M tokenów. Dostępny jest również Claude Fable 5 (claude-fable-5) w cenie $10/$50 do najbardziej złożonych zadań wymagających wnioskowania; żaden element tego przewodnika go nie wymaga. Należy używać dokładnie tych identyfikatorów; warianty z sufiksem daty zapamiętane ze starych poradników zwrócą błąd 404. Ceny ulegają zmianom, dlatego przed zaufaniem jakiejkolwiek wartości, w tym podanej tutaj, należy sprawdzić platform.claude.com.
Warto wyrobić sobie nawyk wybierania modelu dla każdego węzła, a nie dla całej platformy. Klasyfikacja, ekstrakcja, podsumowywanie i routing, czyli podstawowe zadania automatyzacji, działają bardzo dobrze na modelu Haiku, który kosztuje jedną trzecią ceny katalogowej modelu Sonnet i jedną piątą ceny modelu Opus. Model Sonnet należy rezerwować dla agentów i wieloetapowego wnioskowania, a model Opus dla rzadkich przepływów pracy, w których koszt błędnej odpowiedzi przewyższa koszt tokenów. Przepływ pracy zawierający pięć węzłów Claude może i powinien łączyć różne modele.
Dwa węzły Claude i zasady ich stosowania
n8n udostępnia dwie odrębne integracje z Anthropic, a wybór niewłaściwej jest najczęstszym błędem początkujących użytkowników.
Węzeł Anthropic to standardowy węzeł aplikacji: jedno żądanie wejściowe, jedna odpowiedź wyjściowa. Jego zasób Text posiada operację Message a Model, a także operacje analizy obrazów i dokumentów. Należy go używać zawsze, gdy logika workflow znajduje się w n8n, w schemacie: wyzwalacz, wywołanie Claude, kolejny węzeł. Workflow 1 i 2 poniżej wykorzystują ten węzeł lub jego odpowiednik w łańcuchu.
Węzeł Anthropic Chat Model to węzeł podrzędny (sub-node), niewielki dodatek dostarczający model do węzła głównego, takiego jak AI Agent lub Basic LLM Chain. Nie posiada on własnego wyzwalacza ani wyjścia; udostępnia wybór modelu oraz opcje próbkowania, takie jak Maximum Number of Tokens i Sampling Temperature. Jedno zastrzeżenie z dokumentacji n8n, które warto zapamiętać: wyrażenia wewnątrz węzłów podrzędnych zawsze odnoszą się do pierwszego elementu wejściowego, a nie do każdego z osobna. Wyrażenia przetwarzające każdy element z osobna należy umieszczać w polach promptu węzła głównego, a nie w węźle podrzędnym.
Przepływ 1: webhook na wejściu, podsumowanie na wyjściu
Podstawowy scenariusz automatyzacji AI: każda treść wysłana metodą POST na dany adres URL zostaje podsumowana i trafia na Slacka lub do skrzynki odbiorczej.
- Węzeł Webhook, metoda HTTP POST, ścieżka
summarize. n8n udostępnia adres URL do testów oraz adres produkcyjny; ten drugi nasłuchuje dopiero po aktywacji przepływu. - Węzeł Anthropic, model Message a Model, model
claude-haiku-4-5, limit Max Tokens ustawiony na około 300. - Węzeł Slack (lub Send Email), wysyłający tekst odpowiedzi na wybrany kanał.
W tym miejscu wyrażenia n8n łączą się z modelem Claude. Treść żądania POST trafia do $json.body, więc pole wiadomości użytkownika wygląda następująco:
Summarize the following feedback in three bullets, then one line:
verdict: praise | complaint | churn-risk. No preamble.
{{ $json.body.text }}Instrukcje dotyczące roli oraz formatu należy umieszczać w polu system prompt węzła, a nie w wiadomości użytkownika. System prompt pozostaje stały, podczas gdy ładunek danych (payload) ulega zmianie. Zapewnia to stabilność zachowania modelu i sprawia, że prompt pozostaje czytelny po sześciu miesiącach. Przetestuj działanie bezpośrednio z poziomu VPS:
curl -X POST https://n8n.example.com/webhook/summarize \
-H 'Content-Type: application/json' \
-d '{"text": "Third support ticket this month about slow disk IO..."}'Koszt pojedynczego uruchomienia modelu Haiku: ładunek o wielkości 1200 tokenów wraz z promptem to około 0,0012 USD za wejście, a 300 tokenów wyjściowych to 0,0015 USD, co daje w przybliżeniu ćwierć centa. Tysiąc uruchomień miesięcznie kosztuje poniżej 3 USD. Ten sam węzeł skonfigurowany dla modelu Opus 4.8 jest około pięć razy droższy. Ta proporcja, pomnożona przez każdy tworzony przepływ, wyjaśnia, dlaczego nawyk optymalizacji modelu dla każdego węzła ma tak duże znaczenie.
Przepływ 2: cykliczne przetwarzanie RSS na ustrukturyzowane wiersze
Poniżej przedstawiono konfigurację zadania uruchamianego według harmonogramu, generującego ustrukturyzowane dane wyjściowe: odczyt kanału RSS co godzinę, klasyfikacja każdego elementu i dopisywanie wierszy do arkusza.
- Schedule Trigger, co godzinę.
- RSS Read, adres URL kanału. Generuje jeden element na artykuł.
- Basic LLM Chain, z podwęzłem Anthropic Chat Model ustawionym na
claude-haiku-4-5oraz podwęzłem Structured Output Parser zawierającym schemat JSON. - Google Sheets (lub Postgres), dopisanie wiersza dla każdego elementu.
Structured Output Parser zmienia prośbę „Claude, proszę zwróć JSON” z życzenia w kontrakt: weryfikuje odpowiedź modelu względem schematu i w przypadku niezgodności przerywa działanie dla danego elementu, zamiast zapisywać błędne dane. Przykładowy schemat:
{
"type": "object",
"properties": {
"category": { "type": "string", "enum": ["release", "security", "tutorial", "other"] },
"relevance": { "type": "number" },
"one_line_summary": { "type": "string" }
},
"required": ["category", "relevance", "one_line_summary"]
}Prompt w łańcuchu odwołuje się do elementu kanału:
Classify this article for a VPS hosting audience.
Title: {{ $json.title }}
Content: {{ $json.contentSnippet }}Rachunek kosztów zmienia tutaj swój charakter: są one naliczane za element, a nie za uruchomienie. Pięćdziesiąt artykułów na godzinę, dwadzieścia cztery godziny na dobę, to 36 000 wywołań Claude miesięcznie. W przypadku modelu Haiku koszt wynosi około 40–90 USD w zależności od długości artykułu, w przypadku Opus jest to około pięciokrotność tej kwoty. Należy stosować deduplikację przed węzłem LLM (prosta instrukcja IF sprawdzająca wcześniej widziane linki lub węzeł Remove Duplicates w n8n), co drastycznie redukuje liczbę wywołań, ponieważ większość godzinnych odpytań nie zawiera nowych treści. Najtańszym tokenem jest ten, którego nie trzeba generować.
Przepływ 3: Agent AI korzystający z narzędzi
Pierwsze dwa przepływy to potoki, w których kroki definiuje użytkownik. Węzeł AI Agent odwraca tę zależność: użytkownik określa cel i udostępnia narzędzia, a model Claude samodzielnie decyduje, które z nich wywołać i w jakiej kolejności, aż do osiągnięcia rezultatu. n8n wymaga podpięcia podwęzła modelu czatu oraz co najmniej jednego podwęzła narzędzia.
Konkretna implementacja: asystent operacyjny, który odpowiada na pytanie „co nie działa i dlaczego” na podstawie danych z monitoringu:
- Chat Trigger (lub webhook) odbiera zapytanie.
- AI Agent z podwęzłem Anthropic Chat Model ustawionym na
claude-sonnet-5. Agenci planują i łączą wywołania narzędzi; model Haiku sprawdza się w prostych agentach z jednym narzędziem, jednak przy większej ich liczbie modelem bazowym powinien być Sonnet. - Węzeł HTTP Request podpięty jako narzędzie, skierowany na API statusu Uptime Kuma lub endpoint Zabbix. Drugie narzędzie HTTP może łączyć się z dowolnym innym interfejsem REST API.
Kluczowe znaczenie mają dwa ustawienia. System Message agenta definiuje jego zadanie: „Jesteś asystentem operacyjnym. Przed udzieleniem odpowiedzi użyj narzędzia statusu, aby sprawdzić bieżący stan monitoringu. Raportuj tylko te monitory, które są w stanie awarii, wraz z czasem trwania”. Z kolei opis każdego narzędzia nie służy dokumentacji dla ludzi, lecz stanowi instrukcję dla modelu Claude, kiedy należy je wywołać. Opis „Zwraca bieżący stan up/down dla wszystkich monitorowanych usług w formacie JSON” sprawia, że narzędzie jest wywoływane w odpowiednich momentach; opis „API statusu” będzie ignorowany lub używany błędnie. Podczas podpinania węzła HTTP Request jako narzędzia należy włączyć opcję Optimize Response i wybrać istotne pola JSON, w przeciwnym razie każda rozbudowana odpowiedź API zostanie przesłana do kontekstu modelu jako tokeny wejściowe, za które naliczane są opłaty.
Ustaw Max Iterations dla agenta (wartość domyślna to 10) na najniższą skuteczną liczbę. Decyduje to o tym, czy agent przerwie działanie po 4 wywołaniach, czy wpadnie w pętlę kilkunastu cykli komunikacji z modelem. Należy również uwzględnić model rozliczeniowy: każda iteracja przesyła ponownie całą dotychczasową konwersję, komunikat systemowy, pytanie oraz wszystkie poprzednie wyniki narzędzi jako tokeny wejściowe. Agent wykonujący sześć iteracji może wygenerować łącznie 20 000 tokenów wejściowych i 2 000 wyjściowych. Przy cenach modelu Sonnet 3.5 kosztuje to około 0,06 USD, a przy standardowych stawkach 3 USD / 15 USD – około 0,09 USD, co stanowi dwudziestokrotność kosztu prostego podsumowania. Jeśli zachodzi potrzeba podpięcia wielu narzędzi do jednego agenta, jest to moment, w którym uruchomienie serwerów MCP na własnym VPS staje się bardziej przejrzystą architekturą.
Mechanizmy kontroli kosztów, gdy nikt nie nadzoruje systemu
Zautomatyzowany przepływ pracy wymaga mechanizmów kontroli, które w normalnych warunkach zapewnia człowiek przy klawiaturze. Poniżej przedstawiono cztery warstwy zabezpieczeń, uszeregowane od najtańszych.
Max Tokens w każdym węźle Claude. Jest to twardy limit wyjściowy. Podsumowanie wymaga 300 tokenów, klasyfikator 100. Ogranicza to najbardziej kosztowną część rozliczeń (od 5 USD do 25 USD za milion tokenów wyjściowych w porównaniu do 1–5 USD za wejściowe) i działa jako hamulec bezpieczeństwa; błąd w prompcie powodujący rozwlekłość Claude kosztuje 300 tokenów, a nie 8000.
Model dla każdego węzła. Omówiono powyżej; jest to dźwignia cenowa pozwalająca na pięcio- do dziesięciokrotną redukcję kosztów w obecnej ofercie, a jej ustawienie zajmuje dziesięć sekund.
Ograniczenie pętli. Ustawienie Max Iterations dla agentów. Limit czasu w ustawieniach przepływu pracy sprawia, że zawieszona egzekucja zostanie przerwana zamiast trwać w nieskończoność. Należy zachować ostrożność przy opcji Retry On Fail dla poszczególnych węzłów: jest to właściwe narzędzie w przypadku błędów przejściowych, ale ponowne próby mnożą koszty. Ustawienie Max Tries na 3 z Wait Between Tries wynoszącym 5000 ms oznacza, że trwały błąd generuje opłaty do trzech razy dla każdego elementu przed przerwaniem działania. Nigdy nie należy stosować ponownej próby dla węzła, który już wykonał kosztowną operację.
Przepływ obsługi błędów jako zabezpieczenie ostateczne. Należy utworzyć przepływ pracy rozpoczynający się od węzła Error Trigger, który wysyła nazwę nieudanego procesu oraz treść błędu na Slack, a następnie ustawić go jako Error Workflow w ustawieniach każdego przepływu AI. Pozwala to wykryć najgorszy scenariusz: przepływ uruchamiany zgodnie z harmonogramem, który generuje błąd przy każdym wywołaniu, co godzinę, przez cały tydzień, zużywając tokeny przed każdym przerwaniem. Warto połączyć to z miesięcznym limitem wydatków w Anthropic Console i sprawdzać stronę użycia w konsoli przez pierwsze kilka dni po aktywacji jakiegokolwiek zadania cyklicznego. Aby dokładnie zrozumieć strukturę naliczanych opłat, należy zapoznać się z przewodnikiem po zużyciu tokenów.
Tryby awarii i towarzyszące im komunikaty
Węzeł kończy działanie natychmiast z błędem "Authorization failed - please check your credentials." API zwróciło kod 401. Treść odpowiedzi to:
{"type": "error", "error": {"type": "authentication_error", "message": "invalid x-api-key"}}Przyczyną jest błędnie wklejony klucz, jego ucięcie, zbędne znaki odstępu lub pozostawienie symbolu zastępczego z poradnika. Należy utworzyć poświadczenia w n8n ponownie i wkleić klucz; jeśli konfiguracja działała wcześniej, należy sprawdzić, czy klucz nie został unieważniony w Console lub czy przywrócenie wolumenu nie spowodowało powrotu do poświadczeń zaszyfrowanych innym N8N_ENCRYPTION_KEY.
Wykonania kończą się niepowodzeniem w seriach z błędem 429 rate_limit_error oraz komunikatem w stylu "Number of request tokens has exceeded your per-minute rate limit." Limity zapytań są rozliczane w oknach minutowych, a n8n pozwala na łatwe wyzwolenie pięćdziesięciu wykonań webhooków lub RSS jednocześnie. Problem należy rozwiązać strukturalnie: przetwarzać elementy sekwencyjnie (używając Loop Over Items) zamiast równolegle oraz skonfigurować Retry On Fail z parametrem Max Tries ustawionym na 3 i Wait Between Tries na maksymalną wartość 5000 ms, gdyż n8n ogranicza to pole do 5000 ms. Jeśli wymagany jest dłuższy czas oczekiwania, aby ponowienia trafiły w kolejne okno minutowe, należy umieścić węzeł Wait w ścieżce obsługi błędów lub przetwarzać elementy pojedynczo. Odpowiedź zawiera nagłówek retry-after informujący o dokładnym czasie oczekiwania, jednak wbudowany mechanizm oczekiwania w n8n nie potrafi go odczytać, dlatego należy samodzielnie zaimplementować dłuższą pauzę.
Błąd 404 not_found_error wskazujący na nazwę modelu. Treść odpowiedzi powtarza literówkę:
{"type": "error", "error": {"type": "not_found_error", "message": "model: claude-haiku-4.5"}}Przyczyną są kropki zamiast myślników (4.5 zamiast 4-5), przyrostek daty z nieaktualnego wpisu na blogu lub wycofany model. Należy poprawić identyfikator zgodnie z aktualną listą; problem ten dotyczy użytkowników wpisujących nazwę modelu w polu jako wyrażenie, zamiast wybierać ją z listy rozwijanej.
Claude odpowiada na pytanie, które nie zostało zadane. Brak błędów, wykonanie kończy się sukcesem. Wyrażenie w n8n odwołujące się do brakującego pola, na przykład {{ $json.body.text }}, podczas gdy ładunek używał message, wstawia dosłowny ciąg znaków undefined do promptu, a Claude grzecznie odpowiada na prompt dotyczący niczego. Jeśli węzeł, do którego następuje odwołanie, w ogóle się nie wykonał, otrzymasz komunikat "Referenced node is unavailable", jednak brak pola jest ignorowany bez ostrzeżenia. Przed aktywacją zawsze należy uruchomić proces z rzeczywistymi danymi i przeczytać faktycznie wygenerowany prompt w panelu wejściowym węzła; edytor wyrażeń wyświetla podgląd rozwiązanej wartości, a undefined jest widoczne, jeśli się je sprawdzi.
FAQ
Jak połączyć Claude z n8n?
Utwórz klucz API w konsoli Anthropic pod adresem platform.claude.com, a następnie w n8n dodaj poświadczenia typu Anthropic i wklej klucz w pole API Key. Każdy węzeł Claude, węzeł aplikacji Anthropic oraz podwęzeł Anthropic Chat Model odwołuje się do tych zapisanych poświadczeń. n8n szyfruje je za pomocą N8N_ENCRYPTION_KEY, dlatego należy wykonać kopię zapasową klucza, w przeciwnym razie poświadczenia zostaną utracone wraz z wolumenem.
Ile kosztuje uruchomienie przepływu pracy AI?
Oszacuj liczbę tokenów na uruchomienie, a następnie pomnóż przez ceny modelu za milion tokenów. Według stanu na lipiec 2026 r. model Haiku 4.5 kosztuje 1 USD / 5 USD za milion tokenów wejściowych/wyjściowych, a Sonnet 5 kosztuje 3 USD / 15 USD (cena promocyjna 2 USD / 10 USD obowiązuje do sierpnia 2026 r.). Podsumowanie przez webhook przy użyciu Haiku kosztuje około ćwierć centa; uruchomienie agenta na modelu Sonnet z kilkoma wywołaniami narzędzi kosztuje bliżej 0,06–0,10 USD, ponieważ każda iteracja przesyła ponownie całą konwersację jako dane wejściowe. Zweryfikuj koszt uruchomienia na stronie użycia w konsoli, zamiast polegać na szacunkach.
Którego modelu Claude używać do automatyzacji w n8n?
Haiku 4.5 do klasyfikacji, ekstrakcji, podsumowywania i routingu, czyli zadań o dużej skali, gdzie liczy się szybkość i cena. Sonnet 5 do węzłów AI Agent i wieloetapowego wnioskowania. Opus 4.8 tylko w przypadkach, gdy błędna odpowiedź jest na tyle kosztowna, że uzasadnia cenę katalogową 5 USD / 25 USD (pięciokrotność ceny Haiku i nieco poniżej dwukrotności ceny Sonnet). Ustawiaj model dla każdego węzła z osobna, a nie dla całego przepływu pracy; jeden przepływ może łączyć wszystkie trzy modele.
Jak zapobiec nadmiernym wydatkom na API Claude w przepływach pracy n8n?
Wprowadź zabezpieczenia: niską wartość Max Tokens w każdym węźle Claude, limit Max Iterations dla agentów, limit czasu wykonania przepływu (workflow timeout) oraz konserwatywne ustawienia Retry On Fail, aby awarie nie zwielokrotniały zużycia tokenów. Dodatkowo skonfiguruj przepływ Error Trigger, który powiadomi Cię na Slacku o każdej awarii przepływu AI, oraz ustaw miesięczny limit wydatków w konsoli Anthropic jako twardy sufit, którego żadna usługa na VPS nie może przekroczyć.
Czy wywołania narzędzi przez AI Agent kosztują dodatkowo?
Nie ma oddzielnej opłaty za narzędzia, ale korzystanie z nich nie jest darmowe: każdy wynik działania narzędzia jest przesyłany z powrotem do modelu jako tokeny wejściowe, a każda iteracja agenta ponownie wysyła całą dotychczasową konwersację. Zbyt szczegółowa odpowiedź API przekazana bez filtrowania może wielokrotnie przewyższyć koszt właściwego zapytania. Włącz opcję Optimize Response w narzędziach HTTP Request i zwracaj tylko te pola, których agent faktycznie potrzebuje.