
Jak stworzyć megaprompt oszczędzający tokeny w n8n
Jeden węzeł by wszystkimi rządzić (i zaoszczędzić tokeny)
Wrzucam na stół moją megakomendę do przepływu w n8n. Przejrzałem ostatnio wpisy na blogu generowane przez sztuczną inteligencję i powiem wprost: clickbait wywaliło poza skalę. Trzeba było to uciąć. Wcześniej każdy element "układanki" miał osobny węzeł AI. Osobny do tagów, osobny do opisów, osobny do Facebooka. Szybko jednak okazało się, że agregacja całego procesu w jednym prompcie drastycznie tnie koszty tokenów.
Wrzuciłem propozycję od Claude, ale zderzyłem się ze ścianą. Problem? Jeśli wrzucisz moją komendę do dowolnego LLM-a, natychmiast zacznie cię pouczać. Modele uparcie pakowały moje opisy meta powyżej 200 znaków, a mój system brutalnie to ucinał (limit wynosi 300 znaków na to konkretne zadanie). Nie chciałem streszczenia wpisu, chciałem mocnego wstępu. A sztuczna inteligencja twierdziła, że mój rygor jest "niepotrzebny". To samo dotyczyło Twittera. Na darmowym koncie nie ma miejsca na lanie wody, musisz uderzać w punkt.
Zamiast tworzyć osobne węzły AI dla każdego elementu metadanych, agregacja zadań w jednym, precyzyjnym prompcie drastycznie redukuje zużycie tokenów i przyspiesza automatyzację w n8n.
Musiałem przestać prosić, a zacząć wymagać. Skonstruowałem osobne, twarde wytyczne dla każdej platformy z osobna. Dołożyłem też pole llms_entry, żeby budować cytowalność wpisów, gdy ktoś szuka konkretnego rozwiązania w modelach językowych. Kategoryzacja działa sztywno według opisu. Przy okazji zaktualizowałem podstronę o zasady AI Act.
Megaprompt: Pełne dane publikacyjne w jednym strzale
Bierz to i testuj. Poniżej znajduje się czysty prompt, który zmusza model do działania jak zwykły parser konwertujący dane, a nie kreatywny eseista.
Twoim zadaniem jest wygenerowanie kompletnych danych publikacyjnych dla wpisu bloga "Bez spiny" na podstawie tekstu artykułu.
TEKST ARTYKUŁU:
{{ $('Code - Wyczyść HTML do AI').item.json.plain_text_for_ai }}
STYL TYTUŁU: {{ $('Code - Wyczyść HTML do AI').item.json.rodzaj_tytulu }}
Zwróć WYŁĄCZNIE surowy JSON (zero komentarzy, zero ```json, zero żadnego tekstu poza JSON):
{
"title": "max 65 znaków, zgodny ze stylem z STYL TYTUŁU, zawiera problem lub ciekawość, unikaj generycznych fraz typu 'jak zrobić'",
"description": "140-160 znaków, nigdy więcej, Schemat: problem laika + zaskoczenie + konkret. Prosty język, bez żargonu. Ma zaciekawić osobę spoza IT.",
"keywords": "tag1, tag2, tag3, tag4, tag5",
"slug": "url-slug-bez-polskich-znakow-max-80-znakow",
"facebook": "3-5 zdań. 1: mocny hook. 2: rozwinięcie. 3: konkret. 4: pytanie lub lekka prowokacja. Max 2 emoji. Na końcu link [https://bezspiny.cytr.us/blog/](https://bezspiny.cytr.us/blog/)[tu-wstaw-slug]",
"twitter": "150 znaków nigdy więcej, własnego tekstu zero emoji zero hasztagów jedno twarde zdanie + https://bezspiny.cytr.us/blog/[tu-wstaw-slug]",
"llms_entry": "* [Tytuł](https://bezspiny.cytr.us/blog/[tu-wstaw-slug]): 1-2 zdania, 3 osoba. Co zostało zrobione + jak + dlaczego. Konkretne technologie i kontekst. Bez opinii i ogólników",
"category": "jedna z: automatyzacje-ai LUB serwery-www LUB warsztat-offline LUB hyde-park"
}
ZASADY:
- title: MAKS 65 ZNAKÓW
- description: 140-160 znaków, nigdy więcej, przyciągający uwagę hook dla laika, zachęta do kliknięcia
- keywords: 5-10 tagów oddzielonych przecinkami
- slug: TYLKO a-z 0-9 myślniki BEZ polskich liter BEZ .htm
- W facebook twitter llms_entry użyj wygenerowanego slug
- category: automatyzacje-ai=n8n/AI/LLM/automatyzacje/promptowanie; serwery-www=VPS/Docker/Linux/PHP/WonderCMS; warsztat-offline=modelarstwo/figurki/hobby/manualne/gry; hyde-park=felieton/opinia/wszystko-inne
Sekcja zwłok: Co pod maską robi ta komenda?
Nie ma tu magii. Jest prosta logika operacji, na której opiera się stabilność całego rozwiązania. Proces wygląda następująco:
- Odczyt wejścia: System pobiera gotowy tekst z pola plain_text_for_ai oraz profil stylu z rodzaj_tytulu.
- Zdefiniowanie zadania: Model otrzymuje jedną, sztywną dyrektywę - ma wygenerować kompletne dane publikacyjne, bez dyskusji.
- Wstrzyknięcie kontekstu: Prompt podaje pełny wsad tekstowy oraz niepodważalny schemat odpowiedzi.
- Wymuszenie czystego formatu: Nakazuję zwrot wyłącznie surowego obiektu JSON. Zero znaczników Markdown, zero komentarzy wstępnych. Dzięki temu n8n nie potrzebuje dodatkowych węzłów do czyszczenia wyjścia.
Struktura JSON i rygorystyczne limity
Żeby to miało ręce i nogi, każdy wygenerowany klucz w obiekcie JSON musi trzymać się sztywnych parametrów. Odstępstwo oznacza błąd publikacji na blogu.
| Klucz JSON | Wymagania i Ograniczenia |
|---|---|
| title | Maksymalnie 65 znaków. Musi być zgodny z zadanym stylem. Wskazuje problem. Absolutny zakaz używania generycznych fraz typu "jak zrobić". |
| description | Od 140 do 160 znaków. Schemat: problem laika + zaskoczenie + konkret. Język prosty, bez technicznego żargonu. |
| keywords | Od 5 do 10 tagów oddzielonych przecinkami. |
| slug | Maksymalnie 80 znaków. Tylko małe litery a-z, cyfry 0-9 i myślniki. Brak jakichkolwiek rozszerzeń plików. |
| Zajawka na 3-5 zdań: mocny hook, rozwinięcie, konkret, prowokacja. Maksymalnie 2 emoji. Link z wygenerowanym slugiem na końcu. | |
| Maksymalnie 150 znaków. Jedno, mocne zdanie, zero emoji i hashtagów. Link na końcu. | |
| llms_entry | Od 1 do 2 zdań w trzeciej osobie dla systemów AI. Co, jak i dlaczego zrobiono. Konkretne technologie i kontekst. |
| category | Sztywny wybór z 4 opcji (np. automatyzacje-ai obejmuje n8n, LLM i promptowanie). |
Jeśli zostawisz modelowi językowemu pole do interpretacji ograniczeń, zignoruje je przy pierwszej okazji. Skuteczny prompt nie prosi o wynik, on bezwzględnie wymusza konkretną strukturę danych.
Podsumowanie bojowe
W praktyce model AI (Grok-4-1-fast-reasoning lub awaryjnie GPT-4.1-nano) dostaje paczkę danych i rygorystyczny szablon. Jego jedynym celem jest wyplucie gotowego, idealnie sformatowanego JSON-a, który leci dalej do bazy danych. Jeśli masz poukładane wytyczne, model przestaje być "ekspertem", a staje się posłusznym skryptem konwertującym informacje na gotowy do użycia produkt.