Prompt engineering: jak získat přesnější a stabilnější výstupy
Three Things to Know from Atodat:
- Kvalitní prompt není jedna chytrá věta, ale stručná specifikace úkolu: obsahuje cíl, kontext, vstupní data, omezení, požadovaný formát a pravidla pro nejistotu.
- Největší zlepšení často nepřinese delší zadání, ale přesnější definice úspěchu — například maximální délka, cílové publikum, povinné body, zdroje a způsob kontroly výsledku.
- Při profesionálním nasazení nestačí prompt jednou napsat. Je nutné ho verzovat, testovat na typických i problematických případech a měřit, kdy selhává.
Rozdíl mezi průměrnou a skutečně použitelnou odpovědí umělé inteligence často nevytváří nový model, ale přesnější zadání. Jazykový model nezná vaše interní cíle, zákazníka, firemní pravidla ani to, co považujete za kvalitní výsledek. Prompt engineering proto není hledání kouzelné formulace. Je to převod nejasného požadavku do malé, jednoznačné specifikace, podle které může model pracovat opakovatelně a s menším prostorem pro domýšlení.
Představte si model jako mimořádně rychlého nového kolegu. Umí psát, analyzovat, třídit i navrhovat, ale nezná kontext vaší organizace. Když mu řeknete pouze „napiš e-mail klientovi“, musí si sám domyslet důvod, tón, délku, nabídku i požadovaný další krok. Každý domyšlený detail je další místo, kde se výstup může odchýlit od vašeho záměru.
Dobré zadání proto omezuje počet rozhodnutí, která musí model dělat bez podkladů. Nemusí být dlouhé, ale musí obsahovat informace, které skutečně mění výsledek. Následující pravidla ukazují, jak takové zadání sestavit v praxi.
Start with the Outcome
Začněte výsledkem, ne tématem. Obecné zadání „napiš něco o kybernetické bezpečnosti“ pouze určuje oblast. Model stále neví, zda má vytvořit technickou analýzu, příspěvek na LinkedIn, školení zaměstnanců nebo návrh interní směrnice. Přesný prompt popisuje, co má po jeho dokončení existovat a k čemu se výstup použije.
Slabé zadání: Napiš e-mail klientovi.
Přesnější zadání: Napiš profesionální e-mail panu Novákovi v rozsahu 90 až 120 slov. Omluv se za třídenní zpoždění dodávky, potvrď nový termín v úterý 23. června, nabídni slevu 10 % a zakonči e-mail žádostí o potvrzení nového termínu. Tón má být věcný a vstřícný, ne přehnaně omluvný.
Druhé zadání modelu říká příjemce, situaci, fakta, délku, tón i požadovaný další krok. Výstup je díky tomu nejen lepší, ale také snáze kontrolovatelný: okamžitě poznáte, zda obsahuje všechny čtyři povinné body.
Define Success Explicitly
Model neumí automaticky poznat, co ve vašem prostředí znamená „dobře“. Úspěch proto převeďte do konkrétních kritérií. Místo „udělej kvalitní shrnutí“ napište například: „Shrnutí musí mít maximálně 150 slov, uvést tři hlavní závěry, dvě otevřená rizika a žádnou informaci, která není v podkladu.“
Dobrá kritéria bývají pozorovatelná. Patří mezi ně délka, počet položek, povinná struktura, cílové publikum, zakázané formulace, požadované zdroje, úroveň odbornosti a konkrétní akce, kterou má čtenář po přečtení provést. Vágní slova jako „poutavé“, „profesionální“ nebo „moderní“ fungují lépe, když je doplníte konkrétním popisem.
Například místo „piš poutavě“ použijte: „Začni jednou konkrétní situací z praxe, používej krátké věty, vynech obecné superlativy a v každé části uveď alespoň jeden ověřitelný příklad.“
Add Audience and Context
Stejná informace musí být podána jinak vedení firmy, vývojáři, zákazníkovi a studentovi. Uveďte proto, kdo bude výstup číst, co už o tématu ví a proč dokument vzniká. Role typu „jsi zkušený právník“ může pomoci nastavit slovník, ale sama o sobě nestačí. Důležitější je konkrétní pracovní kontext a očekávané použití výstupu [1].
Příklad: Vysvětli paušální daň začínající OSVČ bez ekonomického vzdělání. Text použijeme v uvítacím e-mailu účetní firmy. Vysvětlení rozděl do čtyř krátkých bodů, nepoužívej právní žargon a u každého bodu uveď jeden praktický dopad na měsíční administrativu.
U interního úkolu doplňte také firemní kontext: jaký produkt řešíte, jaké máte priority, která pravidla jsou závazná a které kompromisy jsou přijatelné. Model nemůže respektovat pravidlo, o kterém neví.
Separate Instructions from Data
Když prompt obsahuje delší smlouvu, e-mailovou konverzaci, logy nebo tabulku, jasně oddělte instrukce od materiálu, který má model zpracovat. Bez oddělení může model zaměnit větu uvnitř dokumentu za nový pokyn nebo přehlédnout, kde podklady končí. Anthropic doporučuje pro složitější zadání používat výrazné oddělovače nebo XML značky [1].
Příklad struktury: „Z podkladu níže vytáhni datum ukončení, výpovědní lhůtu a smluvní pokuty. Neprováděj právní hodnocení. Pokud údaj není uveden, napiš NENALEZENO.“ Potom vložte dokument mezi značky <smlouva> a </smlouva>.
Oddělení je důležité také kvůli prompt injection. Text z webu, e-mailu nebo dokumentu může obsahovat větu typu „ignoruj předchozí instrukce“. Model musí dostat výslovné pravidlo, že obsah uvnitř podkladů představuje data, nikoli nadřazené instrukce. U systémů pracujících s externími dokumenty je to bezpečnostní požadavek, ne pouze otázka formátování.
Specify the Output Format
Neurčený formát znamená další prostor pro náhodnost. Model může jednou vrátit odstavec, podruhé tabulku a potřetí dlouhý úvod. Předepište proto strukturu tak přesně, jak ji potřebuje další člověk nebo software. OpenAI doporučuje jasně popsat požadovaný tvar odpovědi a oddělit instrukce od kontextu [2].
Příklad pro člověka: Vrať tabulku se sloupci Riziko, Dopad, Pravděpodobnost a Opatření. Použij maximálně šest řádků. Pravděpodobnost uváděj pouze jako nízká, střední nebo vysoká. Před tabulku ani za ni nepřidávej žádný komentář.
Příklad pro software: Vrať pouze platný JSON s klíči customer_name, order_id, issue_type a urgency. Hodnota urgency smí být pouze low, medium nebo high. Pokud číslo objednávky chybí, použij null. Nevkládej markdownové ohraničení ani vysvětlení.
Čím více má výstup pokračovat do automatizace, tím méně prostoru by měl mít model pro vlastní formátování. U produkčních workflow je struktura odpovědi často stejně důležitá jako její obsah.
Show the Pattern
Když potřebujete stabilní klasifikaci, specifický styl nebo nestandardní strukturu, ukažte modelu jeden až tři příklady správného vstupu a výstupu. Této technice se říká few-shot prompting a patří mezi nejspolehlivější způsoby, jak modelu předat vzor bez dlouhého vysvětlování [4].
Příklad: „Zařaď zákaznickou zprávu do jedné kategorie: Cena, Kvalita, Doprava nebo Podpora. Příklad 1: ‚Objednávka přišla o čtyři dny později.‘ → Doprava. Příklad 2: ‚Operátor mi neposlal slíbený formulář.‘ → Podpora. Zpráva: ‚Výrobek se po týdnu přestal zapínat.‘ →“
Příklady vybírejte tak, aby pokrývaly běžné i hraniční případy. Pokud ukážete pouze jednoznačné vstupy, model se nenaučí, jak rozhodovat u nejasných situací. Zároveň nepřidávejte desítky téměř stejných příkladů; zvyšují délku promptu, ale nemusí přinést lepší rozhodování.
Use Positive Instructions
Seznam zákazů bývá méně účinný než přesný popis požadovaného chování. Zadání „nepiš odborně, nebuď nudný a nepoužívej dlouhé věty“ modelu neříká, co má dělat místo toho. Pozitivní instrukce poskytne konkrétní cíl.
Méně účinné: Nebuď moc formální. Nepoužívej složitá slova. Nedělej dlouhý úvod.
Lepší: Piš přirozeně jako zkušený kolega, který vysvětluje problém novému členovi týmu. Používej věty do 20 slov, každý odborný termín při prvním použití krátce vysvětli a začni přímo hlavním závěrem.
Zákazy mají smysl tam, kde definují pevnou hranici — například „neuváděj osobní údaje“ nebo „nevymýšlej chybějící hodnoty“. Pro styl a strukturu ale obvykle funguje lépe pozitivní vzor.
Break Complex Work into Stages
Jeden obří prompt často míchá několik rozdílných činností: hledání faktů, rozhodování, psaní, kontrolu a formátování. Model pak může přeskočit důležitý krok nebo vytvořit hezky napsaný text na základě špatně vyhodnocených podkladů. Spolehlivější je úkol rozdělit do navazujících etap, tedy použít prompt chaining [1].
Při přípravě obchodního návrhu může první krok vytáhnout z podkladů požadavky klienta, druhý krok je seřadit podle priority, třetí vytvořit osnovu nabídky a čtvrtý napsat finální text. Mezi kroky lze výsledek zkontrolovat nebo doplnit lidské rozhodnutí. Chyba se tak nešíří nepozorovaně celým procesem.
U složitých analytických úloh není nutné žádat zveřejnění dlouhého interního uvažování. Prakticky užitečnější je požadovat stručný plán, uvedení předpokladů, mezivýpočty, použitá kritéria a závěrečnou kontrolu. Výsledek je auditovatelnější bez zbytečného generování rozsáhlého odůvodnění. Výzkum chain-of-thought ukázal, že vedení modelu přes mezikroky může u některých úloh zlepšit přesnost [3].
Ground the Answer in Sources
Model může vytvořit plynulou odpověď i tam, kde nemá dostatek podkladů. Proto mu u faktických, právních, zdravotních, finančních nebo technických úloh neposkytujte pouze otázku. Vložte relevantní zdroje nebo mu dejte přístup k ověřeným datům a přesně určete, z čeho smí čerpat.
Příklad: Odpověz pouze na základě dokumentů v sekci <zdroje>. Každé faktické tvrzení doplň číslem zdroje. Pokud dokumenty odpověď neobsahují nebo si protiřečí, napiš to výslovně. Chybějící informace nedoplňuj z paměti.
Přidejte také výstup pro nejistotu. Model může například používat tři stavy: potvrzeno zdrojem, pravděpodobné, ale nepotvrzené, a v podkladech nenalezeno. Tím snížíte tlak na vytvoření jednoznačné odpovědi za každou cenu.
U aktuálních informací definujte časový rámec: „Použij pouze zdroje aktualizované po 1. lednu 2026“ nebo „uváděj stav platný k dnešnímu datu“. Bez tohoto pravidla může být odpověď přesvědčivá, ale zastaralá.
Give the Model an Escape Route
Prompt musí modelu dovolit přiznat nedostatek informací. Když očekáváte odpověď za všech okolností, model má silnější motivaci doplnit mezery věrohodně znějícím odhadem. Definujte proto přesnou reakci pro situaci, kdy vstup nestačí.
Příklad: Pokud chybí údaj potřebný k bezpečnému závěru, neodhaduj ho. Uveď „NEDOSTATEK DAT“, vypiš konkrétně chybějící informaci a polož maximálně dvě otázky, které jsou nutné k pokračování.
Toto pravidlo je zvlášť důležité u extrakce dat. Pokud faktura neobsahuje variabilní symbol, správný výstup není náhodně vybrané číslo z dokumentu, ale hodnota null a informace, že pole nebylo nalezeno.
Ask for Verification
Kromě vytvoření výstupu lze model požádat o jeho kontrolu podle jasného checklistu. Kontrola ale musí být konkrétní. Obecné „zkontroluj svou odpověď“ často vede pouze k potvrzení původního výsledku. Lepší je vyjmenovat, co má model ověřit.
Příklad: Po napsání odpovědi proveď kontrolu: 1) obsahuje všechny čtyři povinné body, 2) nepřekračuje 150 slov, 3) neuvádí tvrzení mimo podklady, 4) každé datum odpovídá zdroji a 5) závěrečná výzva obsahuje jednoznačný další krok. Pokud něco nesplňuje, text před odevzdáním oprav.
U výpočtů žádejte kontrolu jednotek, mezivýpočtů a řádu výsledku. U kódu požadujte testovací případy, ošetření chyb a seznam předpokladů. U tabulek kontrolu počtu sloupců, povolených hodnot a chybějících polí.
Iterate Systematically
První prompt je prototyp. Místo náhodného přepisování sledujte konkrétní typy selhání: chybějící informace, špatný formát, příliš obecný tón, nepodložená tvrzení nebo nekonzistentní rozhodování. Potom upravte pouze instrukci, která danou chybu řeší.
Praktický postup je jednoduchý. Připravte deset až třicet reprezentativních vstupů, mezi nimi běžné případy, neúplná data, konfliktní instrukce i hraniční situace. Spusťte stejný prompt nad celou sadou a označte chyby. Po úpravě promptu test zopakujte. Tím zjistíte, zda změna skutečně pomohla, nebo pouze zlepšila jeden příklad a zhoršila jiné.
V produkci prompt verzujte stejně jako kód. U každé změny zaznamenejte důvod, očekávaný dopad a výsledek testů. Stabilita nevzniká nejdelším promptem, ale řízeným procesem změn.
A Reusable Prompt Structure
Pro většinu pracovních úloh lze použít stejnou základní strukturu. Nejde o povinnou šablonu pro každý dotaz, ale o kontrolní seznam, který pomáhá odhalit chybějící části zadání.
Cíl: Jednou větou popište, co má vzniknout a k čemu se výstup použije.
Kontext: Uveďte produkt, situaci, publikum, relevantní pravidla a rozhodnutí, která už byla učiněna.
Vstupy: Vložte data mezi jasné oddělovače a vysvětlete, které části jsou důvěryhodné zdroje a které pouze materiál k analýze.
Úkol: Popište jednotlivé kroky, které má model provést, v pořadí, v jakém na sebe navazují.
Omezení: Definujte délku, tón, povolené zdroje, zakázané údaje, časový rámec a postup při chybějících informacích.
Formát: Uveďte přesnou strukturu odpovědi, názvy sekcí, sloupce tabulky nebo schéma JSON.
Kontrola: Přidejte konkrétní checklist, který má být před odevzdáním splněn.
From Prompt to Reliable System
V individuálním chatu je kvalitní prompt hlavně otázkou pohodlí a úspory času. Ve firemní automatizaci ale rozhoduje o kvalitě stovek nebo tisíců výstupů. Malá nejasnost se násobí počtem zpracovaných případů. Proto musí být prompt propojen s kvalitními vstupními daty, oprávněními, validací výstupu, logováním a možností předat nejasný případ člověku.
Samotný prompt nevyřeší chybějící data, špatně nastavené procesy ani bezpečnostní rizika. Je jednou vrstvou systému. Spolehlivé AI řešení vzniká až tehdy, když model dostává správný kontext, smí provádět pouze povolené akce a jeho výstup je automaticky kontrolován před dalším použitím.
Právě tato disciplína odděluje efektní ukázku od nástroje, na který se lze spolehnout v reálném provozu — obzvlášť tam, kde AI pracuje s citlivými informacemi, rozhodovacími procesy nebo veřejnou správou.
Mapujte původ dat, pravidla zpracování a odpovědnosti napříč AI workflow v jednom kontrolovatelném prostředí.
Sources
[1] Anthropic — Prompt engineering overview and prompting best practices — platform.claude.com/docs/en/build-with-claude/prompt-engineering/overview
[2] OpenAI — Prompt engineering guide — platform.openai.com/docs/guides/prompt-engineering
[3] Wei et al. — Chain-of-Thought Prompting Elicits Reasoning in Large Language Models — arxiv.org/abs/2201.11903
[4] Brown et al. — Language Models are Few-Shot Learners — arxiv.org/abs/2005.14165