SSD Nodes Learn
Przewodniki Matt ConnorAutor: Matt Connor · Zaktualizowano 2026-07-24

Claude i n8n na VPS: integracja i workflow

Przewodnik po integracji Claude API z n8n na własnym VPS. Poznaj 3 gotowe workflow, wybór modeli oraz metody uniknięcia błędów w automatyzacji AI.

Co budujesz

Trzy działające przepływy pracy AI na instancji n8n, którą już posiadasz: webhook podsumowujący dowolne dane wejściowe, harmonogram czytający kanały RSS i zamieniający artykuły na ustrukturyzowane wiersze w arkuszu, oraz Agent AI, który samodzielnie wywołuje HTTP API w celu udzielenia odpowiedzi na pytania. Jest to odpowiednik bezkodowy (no-code) dla wywoływania Claude API z Python na VPS, przy użyciu tego samego API, tych samych tokenów i tych samych kosztów, ale orkiestracja odbywa się w węzłach n8n zamiast w skrypcie.

Zakładam, że n8n działa już przez HTTPS zgodnie z przewodnikiem self-hosted n8n on Docker. Jeśli nie, należy to zrobić najpierw — webhooky wymagają rzeczywistego punktu końcowego TLS, a magazyn poświadczeń, w którym zostaną umieszczone klucze API, wymaga kopii zapasowej klucza szyfrującego, o której wspomina ten przewodnik.

Kluczowe problemy nie dotyczą metody drag-and-drop. Chodzi o wybór modelu dla każdego węzła, pola promptów, które cicho interpolują undefined, oraz fakt, że automatyzacja działa bez nadzoru — workflow kosztujący pół centa na uruchomienie staje się tani dopiero do momentu, gdy pętla ponowień uruchomi go cztery tysiące razy w ciągu nocy. Większość tego przewodnika dotyczy właśnie tych kwestii.

Jedno poświadczenie, zaszyfrowane kluczem, który wykonałeś kopię zapasową

Pobierz klucz API z Anthropic Console pod adresem platform.claude.com — Settings, następnie API Keys, a potem utwórz klucz o nazwie np. n8n-vps. Klucz jest wyświetlany tylko raz. Doładuj konto lub skonfiguruj płatności; użycie API jest rozliczane za token i jest całkowicie oddzielne od jakiejkolwiek subskrypcji Claude.ai.

W n8n: Credentials, Create credential, wybierz Anthropic, wklej klucz w pole API Key, zapisz. Każdy węzeł Claude w każdym workflow odwołuje się do tego jednego zapisanego poświadczenia — klucza nie należy wklejać bezpośrednio do węzła.

Dwie uwagi operacyjne. Po pierwsze, n8n szyfruje zapisane poświadczenia za pomocą N8N_ENCRYPTION_KEY. Jeśli ustawisz tę zmienną środowiskową jawnie w pliku compose zgodnie z instrukcją n8n, poświadczenie przetrwa przebudowę kontenera; jeśli pozwolisz n8n wygenerować klucz, a następnie utracisz wolumen, każde zapisane poświadczenie — w tym ten klucz — będzie nieodwracalnym szyfrogramem. Wykonaj kopię zapasową klucza teraz, jeśli został pominięty. Po drugie, traktuj magazyn poświadczeń n8n jako obszar rażenia: każdy, kto może edytować workflow na danej instancji, może wysyłać zapytania przy użyciu klucza Anthropic. Ustaw limit wydatków w Console w sekcji Settings, aby w przypadku przejęcia lub niekontrolowanego działania instancji istniał limit kosztów.

Wybór modelu to decyzja podejmowana na poziomie węzła

Lista rozwijana modeli w węzłach Claude w n8n jest pobierana na żywo z API, więc pokazuje to, do czego uprawnienia ma dany klucz. Według stanu na lipiec 2026 r. zestawienie i ceny API za milion tokenów wejściowych/wyjściowych to: Claude Haiku 4.5 (claude-haiku-4-5) za $1/$5 z oknem kontekstowym 200K, Claude Sonnet 5 (claude-sonnet-5) za $3/$15 — oferta wprowadzająca $2/$10 do 31 sierpnia 2026 r. — oraz Claude Opus 4.8 (claude-opus-4-8) za $5/$25, oba z oknem kontekstowym 1M tokenów. Dostępny jest również Claude Fable 5 (claude-fable-5) za $10/$50 do najtrudniejszych zadań logicznych; nic w tym przewodniku nie wymaga jego użycia. Należy używać tych dokładnych identyfikatorów — wariant z datą, który pamiętasz ze starego poradnika, zwróci błąd 404, a ceny ulegają zmianie, więc sprawdź platform.claude.com przed zaufaniem jakiejkolwiek liczbie, w tym tej tutaj.

Należy wyrobić w sobie nawyk: wybieraj model dla każdego węzła z osobna, a nie dla całej platformy. Klasyfikacja, ekstrakcja, podsumowywanie, trasowanie — podstawowe zadania automatyzacji — działają doskonale na modelu Haiku za jedną trzecią ceny Sonnet i jedną piątą ceny Opus. Rezerwuj Sonnet dla agentów i wieloetapowego rozumowania, a Opus dla rzadkich przypadków, gdzie błędna odpowiedź kosztuje więcej niż tokeny. Workflow z pięcioma węzłami Claude może i powinien mieszać modele.

Dwa węzły Claude i ich zastosowanie

n8n dostarcza dwie różne integracje Anthropic, a wybór niewłaściwej jest najczęstszym błędem początkujących.

Węzeł Anthropic to standardowy węzeł aplikacji: jedno zapytanie wejściowe, jedna odpowiedź wyjściowa. Jego zasób Text posiada operację Message a Model, a także operacje do analizy obrazów i dokumentów. Używaj go zawsze wtedy, gdy logika workflow znajduje się w n8n — trigger, wywołanie Claude, następny węzeł. Poniższe workflow 1 i 2 używają tego węzła lub jego odpowiednika w łańcuchu.

Węzeł Anthropic Chat Model to podwęzeł (sub-node) — mały dodatek dostarczający model do węzła głównego, takiego jak AI Agent lub Basic LLM Chain. Nie posiada własnego triggera ani wyjścia; udostępnia wybór modelu oraz opcje próbkowania, takie jak Maximum Number of Tokens i Sampling Temperature. Ważna uwaga z dokumentacji n8n: wyrażenia wewnątrz podwęzłów zawsze odnoszą się do pierwszego elementu wejściowego, a nie do każdego elementu z osobna — wyrażenia dla każdego elementu umieszczaj w polach promptu węzła głównego, a nie w podwęźle.

Workflow 1: webhook wejściowy, podsumowanie wyjściowe

Podstawowa automatyzacja AI: wszystko, co zostanie wysłane metodą POST na dany adres URL, zostaje podsumowane i trafia do Slacka lub skrzynki odbiorczej.

  1. Webhook node — metoda HTTP POST, ścieżka summarize. n8n udostępnia URL testowy i URL produkcyjny; URL produkcyjny działa dopiero po aktywacji workflow.
  2. Anthropic node — Message a Model, model claude-haiku-4-5, Max Tokens około 300.
  3. Slack node (lub Send Email) — wysyła tekst odpowiedzi na kanał.

Prompt to miejsce, gdzie wyrażenia n8n łączą się z Claude. Body POST trafia pod $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 i 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 payload się zmienia, co zapewnia stabilność zachowania i czytelność promptu po pół roku. Przetestuj to bezpośrednio z 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 na jedno uruchomienie dla Haiku: payload 1200 tokenów plus prompt to około $0.0012 wejściowo, 300 tokenów wyjściowo to $0.0015 — czyli około 1/4 centa. Tysiąc uruchomień miesięcznie to mniej niż $3. To samo przy użyciu Opus 4.8 to około pięć razy więcej. Ta proporcja, pomnożona przez każdy zbudowany workflow, wyjaśnia, dlaczego nawyk wyboru modelu dla każdego węzła jest istotny.

Workflow 2: harmonogram RSS do ustrukturyzowanych wierszy

Automatyzacja czasowa ze ustrukturyzowanym wyjściem: odczytywanie kanału RSS co godzinę, klasyfikacja każdego elementu, dopisywanie wierszy do arkusza.

  1. Schedule Trigger — co godzinę.
  2. RSS Read — URL kanału. Generuje jeden element na artykuł.
  3. Basic LLM Chain — z podwęzłem Anthropic Chat Model ustawionym na claude-haiku-4-5 oraz podwęzłem Structured Output Parser zawierającym schemat JSON.
  4. Google Sheets (lub Postgres) — dodaje wiersz dla każdego elementu.

Structured Output Parser zamienia polecenie "Claude, zwróć JSON" z nadziei w kontrakt: waliduje odpowiedź modelu względem schematu i zgłasza błąd dla elementu, zamiast zapisywać błędne dane. Przykład schematu:

{
  "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"]
}

A prompt łańcucha odwołuje się do elementu z feedu:

Classify this article for a VPS hosting audience.

Title: {{ $json.title }}
Content: {{ $json.contentSnippet }}

Matematyka kosztów zmienia się tutaj: rozliczenie dotyczy każdego elementu, a nie całego uruchomienia. Pięćdziesiąt artykułów na godzinę, przez dwadzieścia cztery godziny na dobę, to 36 000 wywołań Claude miesięcznie — na modelu Haiku może to kosztować 40–90 USD w zależności od długości artykułu, na modelu Opus około pięć razy więcej. Należy usunąć duplikaty przed węzłem LLM (prosty IF względem wcześniej widzianych linków lub węzeł Remove Duplicates w n8n), co drastycznie zmniejszy liczbę wywołań, ponieważ większość godzinowych odczytów nie zawiera nowych treści. Najtańszy token to ten, którego nigdy nie wywołano.

Workflow 3: Agent AI korzystający z narzędzi

Dwa pierwsze workflow to potoki (pipelines) — użytkownik decyduje o krokach. Węzeł AI Agent odwraca tę logikę: podajesz Claude cel i narzędzia, a on decyduje, których narzędzi użyć i w jakiej kolejności, aż zakończy zadanie. n8n wymaga podwęzła chat model oraz co najmniej jednego podwęzła narzędzia (tool).

Konkretna konfiguracja — asystent operacyjny odpowiadający na pytanie "co nie działa i dlaczego" na podstawie monitoringu:

  1. Chat Trigger (lub webhook) — otrzymanie pytania.
  2. AI Agent — z podwęzłem Anthropic Chat Model ustawionym na claude-sonnet-5. Agenci planują i łączą wywołania narzędzi; Haiku może obsługiwać proste agenty z jednym narzędziem, ale Sonnet jest rozsądnym minimum przy większej liczbie narzędzi.
  3. HTTP Request node podłączony jako narzędzie — skierowany do API statusu Uptime Kuma lub endpointu Zabbix. Drugie narzędzie HTTP może komunikować się z dowolnym innym API REST.

Dwie ustawienia wykonują większość pracy. System Message agenta definiuje zadanie: "Jesteś asystentem operacyjnym. Użyj narzędzia status, aby sprawdzić aktualny stan monitoringu przed udzieleniem odpowiedzi. Raportuj tylko monitory, które nie działają, wraz z czasem trwania awarii." Opis każdego narzędzia nie jest dokumentacją dla ludzi — to sposób, w jaki Claude decyduje, kiedy go użyć. "Returns current up/down state for all monitored services as JSON" zostanie wywołane w odpowiednim momencie; "status API" zostanie zignorowane lub użyte błędnie. Podczas podłączania 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 należy zapłacić.

Ustaw Max Iterations dla agenta (domyślnie 10) na najniższą działającą wartość — to różnica między "agent poddał się po 4 wywołaniach narzędzi" a pętlą kilkunastu cykli modelu. Należy również zrozumieć strukturę rozliczeń: każda iteracja ponownie wysyła całą dotychczasową konwersację — system prompt, pytanie, każdy poprzedni wynik narzędzia — jako tokeny wejściowe. Jedno uruchomienie agenta trwające sześć iteracji może łatwo wygenerować łącznie 20 000 tokenów wejściowych i 2 000 wyjściowych: przy cenie wprowadzającej Sonnet 5 jest to około 0.06 USD, a przy standardowej $3/$15 około 0.09 USD — czyli tyle, co dwadzieścia prostych podsumowań. Jeśli dodajesz wiele narzędzi do jednego agenta, rozwiązaniem jest uruchamianie serwerów MCP na VPS, co zapewnia czystszą architekturę.

Mechanizmy kontroli kosztów, ponieważ nikt nie patrzy

Automatyzacja bez nadzoru wymaga kontroli, którą człowiek zapewnia nieświadomie. Cztery warstwy, od najtańszej:

Max Tokens w każdym węźle Claude. Jest to sztywne ograniczenie wyjścia. Podsumowanie wymaga 300 tokenów, klasyfikacja 100. Ogranicza to kosztowną stronę rachunku ($5–$25 za milion tokenów wyjściowych względem $1–$5 za wejściowe) i działa jako hamulec bezpieczeństwa — błąd w prompcie powodujący gadatliwość Claude kosztuje 300 tokenów, a nie 8 000.

Model na węzeł. Omówiono powyżej; to dźwignia cenowa pozwalająca na oszczędności pięciokrotne lub dziesięciokrotne w obecnym zestawieniu, a jej ustawienie zajmuje dziesięć sekund.

Ograniczenie pętli. Max Iterations dla agentów. Timeout workflow w ustawieniach workflow, aby zawieszona egzekucja została przerwana zamiast działać w nieskończoność. Należy również uważać na Retry On Fail w każdym węźle: to właściwe narzędzie dla błędów przejściowych, ale ponowienia mnożą koszty — Max Tries ustawione na 3 z Wait Between Tries na 5000 ms oznacza, że przy trwałym błędzie zostaniesz obciążony kosztami aż trzykrotnie na jeden element. Nigdy nie stosuj pętli ponowień dla węzła, który już odniósł kosztowne sukcesy.

Workflow błędu jako zabezpieczenie. Utwórz workflow rozpoczynający się od węzła Error Trigger, który wysyła nazwę nieudanego workflow i błąd do Slacka, a następnie ustaw go jako Error Workflow w ustawieniach każdego workflow AI. Ten mechanizm wyłapuje najgorsze scenariusze: błąd workflow wyzwalany harmonogramem, który występuje co godzinę przez tydzień — każde uruchomienie zużywa tokeny przed przerwaniem. Połącz to z miesięcznym limitem wydatków w Anthropic Console i sprawdzaj stronę użycia Console przez pierwsze kilka dni po aktywacji jakiejkolwiek automatyzacji czasowej. Aby dokładnie zrozumieć, za co są naliczane opłaty, sprawdź przewodnik po zużyciu tokenów.

Tryby awarii i błędy, które wystąpią

Węzeł natychmiast zwraca błąd "Authorization failed - please check your credentials". API zwróciło 401. Treść błędu to:

{"type": "error", "error": {"type": "authentication_error", "message": "invalid x-api-key"}}

Błędnie wklejony klucz — ucięty, ze spacją na końcu lub będący placeholderem z poradnika. Ponownie utwórz poświadczenie n8n i wklej klucz jeszcze raz; jeśli wczoraj działało, sprawdź, czy klucz nie został cofnięty w Console lub czy przy przywracaniu wolumenu nie nastąpił powrót do poświadczeń zaszyfrowanych innym kluczem N8N_ENCRYPTION_KEY.

Wykonania kończą się serią błędów 429 rate_limit_error, z komunikatem typu "Number of request tokens has exceeded your per-minute rate limit". Limity prędkości są rozliczane w minutowych blokach, a n8n bardzo ułatwia jednoczesne uruchomienie pięćdziesięciu procesów webhook lub RSS. Rozwiąż to strukturalnie: przetwarzaj elementy sekwencyjnie (Loop Over Items) zamiast równolegle i ustaw Retry On Fail z Max Tries 3 i Wait Between Tries na maksymalne 5000 ms — n8n ogranicza to pole do 5000 ms. Gdy wymagane jest dłuższe opóźnienie, aby ponowne próby trafiły w następnym oknie minutowym, umieść węzeł Wait w ścieżce błędu lub przetwarzaj elementy jeden po drugim. Odpowiedź zawiera nagłówek retry-after informujący o czasie oczekiwania — stałe oczekiwanie n8n nie potrafi go odczytać, więc należy samodzielnie zaplanować dłuższy postój.

404 not_found_error przy błędnym nazewaniu modelu. Treść błędu powtarza literówkę:

{"type": "error", "error": {"type": "not_found_error", "message": "model: claude-haiku-4.5"}}

Kropki zamiast myślników (4.5 zamiast 4-5), przyrostek daty z nieaktualnego wpisu na blogu lub wycofany model. Popraw identyfikator zgodnie z aktualną listą — dotyczy to osób, które wpisują nazwę modelu w polu jako wyrażenie zamiast wybierać z listy.

Claude odpowiada na pytanie, którego nie zadano. Brak błędu — uruchomienie kończy się sukcesem. Wyrażenie n8n odwołujące się do brakującego pola, np. {{ $json.body.text }} zamiast message, interpoluje dosłowny ciąg undefined w prompcie, a Claude odpowiada na pytanie o nic. Jeśli referowany węzeł w ogóle nie został wykonany, otrzymasz komunikat "Referenced node is unavailable", ale brakujący field (pole) nie generuje błędu. Przed aktywacją zawsze uruchomj workflow raz z rzeczywistymi danymi i sprawdź faktyczny wygenerowany prompt w panelu wejściowym węzła — edytor wyrażeń podgląda rozwiązaną wartość, a undefined jest widoczny, jeśli spojrzy się w odpowiednie miejsce.

FAQ

Jak połączyć Claude z n8n?

Utwórz klucz API w Anthropic Console pod adresem platform.claude.com, następnie w n8n dodaj poświadczenie typu Anthropic i wklej je w pole API Key. Każdy węzeł Claude — zarówno węzeł aplikacji Anthropic, jak i podwęzeł Anthropic Chat Model — odwołuje się do tego zapisanego poświadczenia. n8n szyfruje je za pomocą N8N_ENCRYPTION_KEY, więc wykonaj kopię zapasową klucza, inaczej poświadczenia zostaną utracone wraz z wolumenem.

Ile kosztuje jeden przebieg workflow AI?

Oszacuj liczbę tokenów na jedno uruchomienie, a następnie pomnóż przez ceny za milion tokenów danego modelu — według stanu na lipiec 2026 r., Haiku 4.5 kosztuje $1/$5 za milion tokenów wejściowych/wyjściowych, a Sonnet 5 kosztuje $3/$15 ($2/$10 w ofercie wprowadzającej do sierpnia 2026 r.). Podsumowanie webhook na modelu Haiku kosztuje około 1/4 centa; uruchomienie agenta na modelu Sonnet z kilkoma wywołaniami narzędzi kosztuje około $0.06–$0.10, ponieważ każda iteracja ponownie wysyła całą konwersację jako dane wejściowe. Weryfikuj zużycie na stronie Usage w Console zamiast polegać na szacunkach.

Którego modelu Claude powinienem używać do automatyzacji w n8n?

Haiku 4.5 do klasyfikacji, ekstrakcji, podsumowywania i trasowania — zadania o dużej objętości, gdzie liczy się szybkość i cena. Sonnet 5 do węzłów AI Agent i wieloetapowego rozumowania. Opus 4.8 tylko tam, gdzie błędna odpowiedź jest na tyle kosztowna, by uzasadnić cenę $5/$25 — pięć razy więcej niż Haiku, nieco mniej niż dwukrotność Sonnet. Wybieraj model dla każdego węzła z osobna, a nie dla całego workflow — jeden workflow może mieszać wszystkie trzy modele.

Jak powstrzymać workflow n8n przed nadmiernymi wydatkami w Claude API?

Zastosuj warstwy zabezpieczające: niski limit Max Tokens w każdym węźle Claude, Max Iterations dla agentów, timeout workflow oraz ostrożne ustawienia Retry On Fail, aby błędy nie mnożyły kosztów tokenów. Następnie dodaj workflow Error Trigger, który powiadomi Cię na Slacku o błędzie w dowolnym workflow AI, oraz ustaw miesięczny limit wydatków w Anthropic Console jako sztywny limit, którego żadna instancja na VPS nie może przekroczyć.

Czy wywołania narzędzi przez AI Agent generują dodatkowe koszty?

Nie ma osobnej opłaty za narzędzia, ale narzędzia nie są darmowe: każdy wynik narzędzia jest przesyłany z powrotem do modelu jako tokeny wejściowe, a każda iteracja agenta ponownie wysyła całą dotychczasową konwersację. Rozbudowana odpowiedź API przekazana bez filtrowania może znacznie przewyższyć koszt Twojego pierwotnego promptu — włącz opcję Optimize Response w narzędziach HTTP Request i zwracaj tylko te pola, których potrzebuje agent.