Few-Shot Prompting dla niezawodnych wyników agentów AI
Few-shot prompting to technika polegająca na podaniu agentowi AI w prompcie kilku przykładów (zwykle od 2 do 5) poprawnych danych wejściowych i wyjściowych, aby poprzez in-context learning przejął format, styl i logikę zadania bez ponownego trenowania modelu. Dzięki temu format wyników i wywołania narzędzi stają się znacznie bardziej niezawodne.
W skrócie
- Few-shot prompting steruje agentami za pomocą od 2 do 5 kanonicznych przykładów w kontekście, a nie przez trenowanie modelu. To element context engineeringu, a nie osobna metoda obok prompt engineeringu.
- Reprezentatywność i różnorodność są ważniejsze niż liczba: sprzeczne lub zduplikowane przykłady skłaniają model do kopiowania najbardziej podobnego przykładu. Celem są różnorodne, kanoniczne przypadki.
- Do tool callingu istnieją dedykowane mechanizmy: od listopada 2025 Anthropic obsługuje pole input_examples w każdej definicji narzędzia i zaleca od 1 do 5 przykładowych wywołań. Stabilizuje to zwłaszcza zagnieżdżone lub opcjonalne parametry.
- Tam, gdzie wymagana jest 100-procentowa zgodność z formatem, dekodowanie ograniczone schematem (OpenAI Structured Outputs, GA od sierpnia 2024) zastępuje heurystykę few-shot w zakresie samej struktury. Few-shot pozostaje istotny dla stylu i logiki.
- Zero-shot do prostych zadań, few-shot dla niezawodności formatu i wywołań narzędzi, fine-tuning dopiero przy bardzo dużym wolumenie lub presji na opóźnienia. W kontekście DACH (Niemcy, Austria, Szwajcaria) język niemiecki zwiększa koszt tokenów w przykładach o 30 do 50 procent.
- Przykłady nie są darmowe: kosztują tokeny przy każdym wywołaniu i sprzyjają overfittingowi. Stabilne bloki przykładów powinny trafić do prefiksu promptu, który można cache'ować (odczyty z cache kosztują ok. 10 procent ceny standardowej, stan na 2026).
Few-shot prompting to technika polegająca na podaniu agentowi AI w prompcie kilku przykładów poprawnych danych wejściowych i wyjściowych, aby poprzez in-context learning przejął format, styl i logikę zadania bez ponownego trenowania modelu. Zamiast opisywać zachowanie prozą, pokaż je: od dwóch do pięciu reprezentatywnych przypadków, na których model opiera się w kolejnej turze inferencji. W agentach gotowych do produkcji few-shot to nie zabawka, lecz jedna z najskuteczniejszych dźwigni dla niezawodnych formatów wyników i poprawnego wywoływania narzędzi.
- Ile: Od dwóch do pięciu przykładów dla ogólnego wyniku, od jednego do trzech kanonicznych wywołań na narzędzie. Więcej rzadko pomaga liniowo.
- Jakie: Różnorodne, reprezentatywne przypadki bez duplikatów i bez sprzeczności. Jakość i pokrycie wygrywają z liczbą.
- Kiedy nie: Przy prostych zadaniach zero-shot lub gdy wymagana jest 100-procentowa zgodność z formatem; wtedy lepsze jest dekodowanie ograniczone schematem.
Few-shot w kontekście: element context engineeringu
Few-shot prompting nie jest samodzielną metodą obok prompt engineeringu, lecz poddziedziną context engineeringu. Andrej Karpathy wprost wymienia „few-shot examples” jako jeden z naukowych elementów, którymi wypełnia się okno kontekstu przed kolejnym krokiem, obok opisów zadań, RAG, narzędzi i stanu. Model mentalny dla agentów brzmi więc tak: przykłady są częścią substratu tokenów, który model widzi w każdej turze, a nie jednorazową instrukcją.
To ujęcie ma praktyczne konsekwencje. Przykłady konkurują ze wszystkim innym o budżet uwagi i miejsce na tokeny. Kto stosuje few-shot, musi rozpatrywać go w ramach budżetu kontekstu, a nie w oderwaniu od niego.
Zero-Shot, Few-Shot, One-Shot
- Zero-Shot: Tylko opis zadania, bez przykładów. Szybko, tanio, idealnie do prostych lub oczywistych zadań.
- One-Shot: Dokładnie jeden przykład. Przydatny, aby utrwalić jednoznaczny format bez dużego obciążenia tokenami.
- Few-Shot: Kilka przykładów obejmujących warianty i przypadki brzegowe. Standard dla wyników agentów, w których format i logika są krytyczne.
Dobór i reprezentatywność: właściwa praca inżynierska
Najczęstszym błędem nie jest zła liczba, lecz zły dobór. Typowy antywzorzec w system promptach: kilka sprzecznych przykładów skłania model do kopiowania najbardziej podobnego. Rozwiązaniem są różnorodne, kanoniczne przykłady bez duplikatów. Anthropic w swoim przewodniku po context engineeringu z września 2025 również zaleca różnorodne, kanoniczne przykłady zamiast wpisywania każdej reguły do promptu jako długiej listy przypadków brzegowych.
W praktyce reprezentatywny dobór oznacza:
- Uwzględnianie wariantów, a nie trzykrotnie ten sam przypadek w lekko zmienionej formie. Jeśli agent przetwarza faktury, faktury korygujące i storna, dodaj po jednym przykładzie każdego rodzaju, a nie trzy faktury.
- Świadome pokazywanie przypadków brzegowych, na przykład przypadku z brakującymi polami obowiązkowymi i prawidłowej reakcji na niego. Przykłady uczą też zachowania w sytuacjach niejednoznacznych.
- Spójny format we wszystkich przykładach. Rozjazd formatu między przykładami to trucizna: model powiela niespójność.
- Brak sprzecznych sygnałów. Jeśli przykład A pomija pole, przykład B je wypełnia i nie da się tej różnicy wyjaśnić, model zgaduje.
Wpływ na tool calling i niezawodność wyników
Tu few-shot przynosi największe korzyści. Na potrzeby definicji narzędzi Anthropic wprowadził w listopadzie 2025 Tool Use Examples: pole input_examples, które dostarcza przykładowe wywołania bezpośrednio obok schematu. Anthropic zaleca od 1 do 5 realistycznych przykładów na narzędzie; w testach wewnętrznych dokładność przy złożonych parametrach wzrosła dzięki temu z 72 do 90 procent. Bez przykładów model zgaduje przy zagnieżdżonych lub opcjonalnych parametrach. Zasada praktyczna: zwykle wystarczą od jednego do trzech kanonicznych wywołań na narzędzie, bo każdy przykład kosztuje tokeny. Związek z niezawodnością wyboru narzędzi jest ścisły: w tym samym artykule Anthropic podaje, że Tool Search Tool przy dużych bibliotekach narzędzi podnosi dokładność wyboru narzędzi w wewnętrznych ewaluacjach MCP z 49 do 74 procent dla Opus 4 oraz z 79,5 do 88,1 procent dla Opus 4.5. Dobre przykłady w opisie narzędzia są częścią tej samej dyscypliny.
Przy wyniku końcowym ważne jest jedno rozróżnienie. Tam, gdzie obowiązkowo wymagane są struktury możliwe do sparsowania maszynowo, sam few-shot nie wystarczy. OpenAI Structured Outputs (GA od sierpnia 2024, dla GPT-4o-2024-08-06 i nowszych modeli) wymusza za pomocą dekodowania ograniczonego (constrained decoding) na poziomie tokenów udokumentowaną 100-procentową zgodność ze schematem. Anthropic poszedł tą samą drogą w listopadzie 2025: Structured Outputs dla Claude wystartowały jako beta i od lutego 2026 są ogólnie dostępne. Wyniki JSON obsługuje output_config.format, a wywołania narzędzi Strict Tool Use z strict: true, w obu przypadkach z dekodowaniem ograniczonym. Wcześniejsze obejście, czyli wymuszone użycie narzędzia z pseudonarzędziem w rodzaju return_structured_result, bez strict nie gwarantuje zgodności ze schematem: według dokumentacji Anthropic Claude może wtedy zwracać niewłaściwe typy lub pomijać pola obowiązkowe. Czysty podział ról w 2026 roku: wymuszanie schematu gwarantuje strukturę, a few-shot kształtuje styl, dobór słów, logikę i obsługę przypadków brzegowych, których żaden schemat nie odwzorowuje.
Metoda | Cel | Zgodność z formatem | Nakład / koszt |
|---|---|---|---|
Zero-Shot | Proste zadania, oczywisty format | Zmienna | Minimalny |
Few-Shot (2-5 przykładów) | Stabilizacja stylu, logiki i wywołań narzędzi | Wysoka, niegwarantowana | Tokeny na wywołanie, możliwość iteracji |
Structured Outputs / Strict Tool Use | Obowiązkowa struktura JSON | Gwarantowana przez schemat (poza odmową, max_tokens) | Utrzymanie schematu, niskie opóźnienie |
Bardzo duży wolumen, presja na opóźnienia | Wysoka, zależna od modelu | Cykl trenowania, nakład na dane |
Kiedy few-shot, kiedy zero-shot, a kiedy fine-tuning
Decyzja opiera się na trzech osiach: złożoności zadania, wolumenie i stabilności wymagań.
- Zero-shot, gdy zadanie jest proste, a format nie ma krytycznego znaczenia. Każdy dodatkowy token przykładu byłby zmarnowany.
- Few-shot, gdy tylko wymagany jest określony format, spójny styl lub nietrywialna logika, a wymagania wciąż się zmieniają. Few-shot można iterować bez cyklu trenowania i to jest jego największa zaleta.
- Fine-tuning, dopiero przy bardzo dużym, stabilnym wolumenie, gdy tokeny przykładów w każdym wywołaniu zaczynają mieć znaczenie ekonomiczne lub opóźnienie staje się krytyczne. Cognition Labs wytrenowało dla Devina własny, mniejszy model do streszczania na własnych danych z trace'ów, ponieważ generyczne prompty gubiły zbyt wiele szczegółów: klasyczny przypadek, w którym few-shot dotarł do swoich granic.
Warto wspomnieć o etapie pośrednim: przy weryfikacji metodą LLM-as-Judge przykłady few-shot w prompcie sędziego (pozytywne i negatywne) są standardem. Hamel Husain zaleca kalibrowanie takich ewaluacji z sędzią na ponad 100 oznaczonych przykładach i cotygodniowe ich utrzymanie. Pokazuje to granicę między few-shot w prompcie (kilka przykładów) a stojącą za nim bazą danych ewaluacyjnych (wiele przykładów).
Pułapki: overfitting i koszty tokenów
Overfitting do przykładów to najbardziej podstępna pułapka. Agent kopiuje powierzchowne cechy przykładów, na przykład określoną kolejność lub sformułowanie, zamiast uogólniać leżącą u ich podstaw regułę. Objaw: przy danych wejściowych podobnych do przykładów wynik jest idealny, przy odmiennych przypadkach się załamuje. Remedium to celowa różnorodność przykładów i zestaw ewaluacyjny, który sprawdza właśnie przypadki nieobjęte przykładami.
Koszty tokenów i context rot to druga pułapka. Każdy przykład jest wysyłany przy każdym wywołaniu. W badaniu Chroma Context Rot z lipca 2025 przetestowano 18 modeli, w tym GPT-4.1, Claude 4, Gemini 2.5 i Qwen3. We wszystkich eksperymentach wydajność spadała wraz ze wzrostem długości danych wejściowych. W kontekście DACH (Niemcy, Austria, Szwajcaria) dochodzi do tego dodatkowe utrudnienie: tekst niemiecki wymaga o 30 do 50 procent więcej tokenów niż równoważny tekst angielski. Niemieckie przykłady few-shot są więc zauważalnie droższe.
Najważniejsza dźwignia ekonomiczna: stabilne bloki przykładów powinny trafić do prefiksu promptu, który można cache'ować. Odczyty z cache w Anthropic kosztują około 10 procent standardowej stawki za tokeny wejściowe (stan na 2026), w przypadku Sonnet 4.6 około 0,30 zamiast 3,00 dolarów amerykańskich za milion tokenów. Jeśli utrzymujesz przykłady few-shot w stałej postaci razem z system promptem i definicjami narzędzi, a na końcu umieszczasz tylko część dynamiczną, płacisz za tokeny przykładów głównie według stawki cache. Każda zmiana przykładów unieważnia cache, dlatego wersjonuj przykłady i zmieniaj je w planowanych wydaniach, a nie hotfixem.
Konkretny przykład: z few-shot i bez
Agent ma na podstawie e-maila utworzyć ustrukturyzowane żądanie zapisu zamówienia dla narzędzia create_order.
Bez few-shot (zero-shot):
```
System: Utwórz z e-maila wywołanie create_order.
Input: "Proszę 3x artykuł A-100 i 1 szt. B-205 dla klienta nr 4711."
Output (typowo): {"klient": "4711", "artykul": "A-100, B-205", "ilosc": "3 i 1"}
```
Wynik wygląda sensownie, ale jest bezużyteczny: ilości i artykuły zostały połączone w zwykły tekst, a nazwy pól odbiegają od schematu narzędzia. Na dalszym etapie parsowanie się wysypuje.
Z few-shot (dwa kanoniczne przykłady w prompcie narzędzia):
```
Przykład 1
Input: "2x C-300 dla klienta 9001"
Wywołanie: {"customer_id":"9001","items":[{"sku":"C-300","qty":2}]}
Przykład 2 (przypadek brzegowy: brak podanej ilości -> domyślnie 1)
Input: "Artykuł D-401 dla klienta 9002"
Wywołanie: {"customer_id":"9002","items":[{"sku":"D-401","qty":1}]}
Rzeczywisty input: "Proszę 3x artykuł A-100 i 1 szt. B-205 dla klienta nr 4711."
Wywołanie: {"customer_id":"4711","items":[{"sku":"A-100","qty":3},{"sku":"B-205","qty":1}]}
```
Dwa przykłady wystarczą, aby utrwalić nazwy pól, strukturę tablicy, domyślne zachowanie przy braku ilości i rozdzielanie kilku pozycji zamówienia. Po stronie kosztów: oba przykłady dodają mniej więcej od 150 do 250 tokenów na wywołanie, w języku niemieckim odpowiednio więcej. Jeśli znajdują się w prefiksie w cache, przy kolejnych wywołaniach kosztują tylko około jednej dziesiątej. Aby zagwarantować strukturę, łączy się tę konfigurację few-shot ze Strict Tool Use (strict: true) dla schematu create_order. Few-shot odpowiada wtedy za logikę, a schemat za formę. Wyjątki Anthropic wymienia sam w dokumentacji Structured Outputs: w przypadku odmowy (stop_reason: "refusal") lub przerwania na max_tokens wynik może odbiegać od schematu.
Dla agencji i decydentów B2B
Few-shot prompting to najszybszy sposób, by przeprowadzić agenta od etapu „działa na demo” do „niezawodny w produkcji” bez budżetu na trenowanie. Dla agencji oznacza to: zainwestuj wcześnie w starannie dobrany, wersjonowany zbiór przykładów dla każdego przypadku użycia, bo to zasób wielokrotnego użytku i czynnik wyróżniający. Dla decydentów B2B: wymagaj od swojego partnera wdrożeniowego zestawu ewaluacyjnego, na którym testowane są przykłady, oraz wyraźnego rozdzielenia few-shot dla logiki i wymuszania schematu dla formatu. Jeśli chcesz budować workflowy agentów o udokumentowanej niezawodności wyników, Blck Alpaca z Wiednia wesprze Cię w projektowaniu, ewaluacji i produkcyjnym utrzymaniu agentów zgodnych z wymogami obowiązującymi w Europie.
Otwiera czat z przygotowanym promptem.
Najczęściej zadawane pytania
Ilu przykładów potrzebuję do few-shot promptingu w przypadku agentów?
Kiedy zero-shot jest lepszy niż few-shot?
Few-shot prompting czy fine-tuning?
Czym jest in-context learning?
Dlaczego zbyt wiele przykładów pogarsza wyniki agenta?
Chcesz zgłębić temat?
Otrzymuj nowe analizy prosto na swoją skrzynkę albo zobacz, jak wykorzystujemy tę wiedzę w firmach.