Blog JSystems - uwalniamy wiedzę!

Szukaj

Kurs Claude Code — Lekcja 3 z 11

Ten artykuł jest częścią bezpłatnego kursu Claude Code — największej polskojęzycznej serii 11 lekcji dla programistów. Od pierwszego uruchomienia do autonomicznych agentów AI.

← Spis wszystkich lekcji
← Lekcja 2: umiejętności i możliwości Claude

Prompt Engineering dla Claude — jak pisać prompty które dają powtarzalne wyniki


Claude CodeSeria Claude Code · JSystems


Przepisałeś prompt z ChatGPT do Claude i dostałeś gorszy wynik. Dodałeś instrukcje, ale model "zapomniał" połowy z nich. Teraz pytasz: czy Claude jest gorszy? Nie — po prostu reaguje inaczej, i gdy to rozumiesz, wyniki stają się znacznie lepsze niż z GPT.


Ten artykuł zebrał techniki specyficzne dla Claude które poprawiają jakość i przewidywalność odpowiedzi — szczególnie ważne gdy budujesz aplikacje gdzie konsekwentność jest kluczowa.




Z tego artykułu dowiesz się:



  • Dlaczego prompty z ChatGPT nie działają tak samo w Claude

  • 7 konkretnych technik pisania skutecznych promptów dla Claude

  • Jak wymuszać format i długość odpowiedzi

  • Najczęstsze błędy które niszczą jakość wyników



Technika 1: XML Tags — porządkowanie promptu


Anthropic oficjalnie rekomenduje używanie XML tagów do strukturyzowania długich promptów. Claude jest na nie szkolony i wyraźnie na nie reaguje lepiej — traktuje zawartość tagów jako oddzielne, izolowane sekcje instrukcji.


Przykład struktury promptu z XML:


<system>
Jesteś doświadczonym analitykiem finansowym.
Analizujesz raporty kwartalne i identyfikujesz ryzyka.
</system>

<context>
Firma: Tech Corp
Sektor: SaaS B2B
Przychody Q3: 12.4M PLN (-3% QoQ)
</context>

<task>
Przeanalizuj wyniki i wskaż 3 główne ryzyka dla kolejnego kwartału.
Odpowiedz w formacie listy numerowanej.
</task>


Claude traktuje zawartość tagów jako oddzielne sekcje i rzadziej "gubi" instrukcje z poszczególnych sekcji przy długich promptach. To szczególnie ważne gdy masz jednocześnie: rolę, kontekst, zadanie i ograniczenia.



💡 Dla początkujących: "XML tagi" to po prostu nazwy w nawiasach kątowych, np. <task> i </task>. Nie musisz znać XMLa — chodzi tylko o to żeby wyraźnie oddzielić różne części instrukcji. Claude jest trenowany żeby rozumieć tę strukturę jako sygnał: "to jest osobna, ważna sekcja instrukcji".

Technika 2: Prefilling — zacznij odpowiedź za Claude


Claude pozwala na "prefilling" — możesz zacząć odpowiedź asystenta i Claude ją dokończy. To wymusza format i eliminuje problem "Claude odpowiedział nie w tym formacie co chciałem":


Przykład prefillingu przez API:


messages = [
{"role": "user", "content": "Przeanalizuj ten kod pod kątem błędów bezpieczeństwa:\n{code}"},
{"role": "assistant", "content": "## Analiza bezpieczeństwa\n\n### Znalezione podatności:"}
]

Claude dokończy odpowiedź zaczynając od tego miejsca — format jest gwarantowany. Używaj tej techniki gdy potrzebujesz zawsze tego samego struktury wyjścia.



💡 Dla początkujących: "Prefilling" działa tylko przez API (nie przez claude.ai w przeglądarce). W API możesz wysłać nie tylko wiadomość użytkownika, ale też "wstępnie wypełnioną" odpowiedź asystenta — i model ją dokończy. To jak podać komuś pierwsze słowa zdania i kazać mu je skończyć.

Technika 3: Thinking Tokens — "pomyśl zanim odpowiesz"


Dla trudnych zadań analitycznych — poproś Claude o jawne rozumowanie przed odpowiedzią. To znacząco poprawia jakość przy skomplikowanych problemach:


Wersja tekstowa (działa w każdym interfejsie):


Zanim odpowiesz, przemyśl to w bloku <thinking>:
- Jakie informacje mam?
- Jakich informacji brakuje?
- Jakie są możliwe podejścia?
- Które podejście jest najlepsze i dlaczego?

<thinking>
[Claude wypełni to swoim rozumowaniem]
</thinking>

Następnie podaj finalne rozwiązanie.


Wersja przez API (oficjalny parametr):


response = client.messages.create(
model="claude-sonnet-4-5",
max_tokens=16000,
thinking={"type": "enabled", "budget_tokens": 10000},
messages=[{"role": "user", "content": "..."}]
)

Parametr budget_tokens kontroluje ile tokenów model może przeznaczyć na "myślenie" przed udzieleniem odpowiedzi.



Chcesz nauczyć się tych technik w praktyce na realnych projektach? → Szkolenie Claude Code z terminem gwarantowanym — 3 dni warsztatów z trenerem.


Technika 4: Negative Space — powiedz czego NIE robić


Claude bardzo dobrze reaguje na negatywne ograniczenia — często lepiej niż na pozytywne instrukcje. Zamiast opisywać co chcesz, opisz co chcesz wykluczyć:


Przykład dla copywritingu:


Napisz opis produktu.
NIE używaj:
- słów: "innowacyjny", "przełomowy", "rewolucyjny", "lider"
- zdań zaczynających się od "Dzięki..."
- superlatyw bez danych ("najlepszy", "jedyny")

Używaj:
- konkretnych liczb i faktów
- języka korzyści (co klient zyska, nie co produkt ma)


Ta technika działa też świetnie przy kodzie: "napisz tę funkcję NIE używając rekurencji, NIE modyfikując oryginalnej tablicy, NIE używając pętli for".



💡 Dla początkujących: "Negative space" pochodzi z terminologii artystycznej — to przestrzeń wokół obiektu, nie obiekt sam. W prompt engineeringu oznacza definiowanie granicy przez to czego NIE chcesz, zamiast przez to czego chcesz. Claude jest szczególnie wrażliwy na takie ograniczenia — przetwarzał ogromne ilości tekstów gdzie "zakazy" są bardzo precyzyjne (np. przepisy prawne, zasady bezpieczeństwa).

Technika 5: Role + Audience + Tone — trójka która działa


Dla spójnych outputów zawsze definiuj trzy rzeczy razem — sama rola nie wystarczy:


Rola: Jesteś senior software architect z 15-letnim doświadczeniem w systemach rozproszonych.
Odbiorca: Piszesz dla junior developerów którzy dopiero zaczynają z mikroserwisami.
Ton: Techniczny ale przystępny, używaj analogii, unikaj żargonu bez wyjaśnienia.

Bez "Odbiorca" — Claude napisze dla innego architekta. Bez "Ton" — będzie się wahał między akademickim a konwersacyjnym. Trójka razem daje znacznie bardziej przewidywalne wyniki.


Technika 6: Few-Shot w formacie XML


Claude dobrze radzi sobie z few-shot (przykłady input→output) ale format ma znaczenie. Najlepiej działa gdy przykłady są w XML — Claude traktuje je jako wyraźnie oddzielone przypadki testowe:


<examples>
<example>
<input>Zamówienie przyszło uszkodzone</input>
<output>Bardzo mi przykro z powodu uszkodzonego zamówienia. Proszę o przesłanie zdjęcia na reklamacje@firma.pl, a wyślemy nowe w ciągu 24h.</output>
</example>
<example>
<input>Kiedy dostanę swoje pieniądze z powrotem</input>
<output>Zwrot środków następuje w 5-7 dni roboczych. Numer Twojej reklamacji to: [do uzupełnienia]. Mogę potwierdzić email na którym mam wysłać potwierdzenie?</output>
</example>
</examples>

Nowe zapytanie klienta: {query}



💡 Dla początkujących: "Few-shot" to technika gdzie pokazujesz modelowi kilka przykładów jak ma odpowiadać, zanim zadasz prawdziwe pytanie. "Shot" = przykład. Bez przykładów = zero-shot. Jeden przykład = one-shot. Kilka = few-shot. Im więcej przykładów, tym model lepiej rozumie wzorzec — ale zbyt wiele przykładów wydłuża i droższy prompt.

Technika 7: Kontrola długości odpowiedzi


Claude domyślnie pisze dużo. Kilka sposobów kontroli w zależności od kontekstu:



  • "Odpowiedz w maksymalnie 3 zdaniach" — bardzo dosłownie przestrzegane

  • "Format: bullet points, max 5 punktów" — narzuca strukturę i długość jednocześnie

  • "Pomiń wyjaśnienia — tylko wynik" — eliminuje wstępy i podsumowania

  • Parametr API: max_tokens — twardy limit tokenów w odpowiedzi


Częste błędy przy prompt engineeringu dla Claude










BłądEfektFix
Sprzeczne instrukcje w prompcieClaude losowo wybiera lub odmawiaHierarchia: "Jeśli X, to Y; w przeciwnym razie Z"
Zbyt ogólna rola ("jesteś ekspertem")Generyczne odpowiedziKonkretna rola + kontekst + lata doświadczenia
Brak formatu wyjściaKażda odpowiedź inaczej sformatowanaZawsze definiuj format — JSON, markdown, lista
Zapytanie o niemożliweClaude zmyśla lub odmawia niejasnoDaj kontekst który Claude może faktycznie użyć

3 błędy które niszczą wyniki w praktycznych projektach



Błąd 1: Brak przykładów przy niestandardowym formacie


Jeśli chcesz odpowiedzi w niestandardowym formacie (np. własna struktura JSON), same opisy często nie wystarczają. Zawsze dołącz co najmniej jeden przykład oczekiwanego wyjścia — Claude "nauczy się" formatu znacznie lepiej z przykładu niż z opisu.




Błąd 2: System prompt bez hierarchii priorytetów


Gdy masz 10 reguł bez określenia priorytetów — Claude robi co może, ale przy konflikcie między regułami 3 i 7 nie wiesz co wybierze. Dodaj sekcję: "W przypadku konfliktu między instrukcjami, priorytet mają: 1) bezpieczeństwo danych, 2) format odpowiedzi, 3) ton komunikacji".




Błąd 3: Nie testowanie promptu na edge cases przed deploymentem


Prompt który działa na Twoich 5 przykładach może zawieść przy wejściu które nie pasuje do wzorca. Zanim wdrożysz prompt produkcyjnie, przetestuj celowo "trudne" przypadki: puste wejście, wejście w innym języku, wejście sprzeczne z rolą modelu, bardzo krótkie i bardzo długie wejście.





Programiści którzy opanowali Claude Code w 2026 roku raportują oszczędność 2-3 godzin dziennie.


To 10-15 godzin tygodniowo które możesz przeznaczyć na architekturę, naukę lub po prostu wcześniej skończyć pracę. Prompt engineering to nie magia — to powtarzalna umiejętność której można się nauczyć. I jak każda umiejętność: najszybciej uczysz się jej przy kimś kto już to przerabiał.



Szkolenie JSystems


Newsletter bloga JSystems


Otrzymuj każdą nową lekcję prosto na swoją skrzynkę


Nowe lekcje pojawiają się co poniedziałek i czwartek. Zapisz się do newslettera bloga JSystems — dostaniesz powiadomienie zaraz po publikacji każdej lekcji.






Szkolenie Claude Code — w serii od podstaw do zaawansowanego


Seria artykułów to teoria. Szkolenie JSystems to 3 dni praktyki gdzie piszesz prompty, budujesz agentów i wdrażasz na produkcji. Termin gwarantowany.


Szkolenie Claude Code →



Następna lekcja kursu Claude Code

Lekcja 4: plik CLAUDE.md — konfiguracja agenta dla projektu

Zapisz się do newslettera aby otrzymywać najnowsze świeżynki pojawiające się na blogu! Zapisz się do newslettera

Komentarze (0)

Musisz być zalogowany by móc dodać komentarz. Zaloguj się przez Google

Brak komentarzy...