CMD Master
Zpět na blog
Arnošt Havelka

Jak psát lepší prompty pro AI: Chybějící kontext, díky kterému jsou návrhy AI skutečně užitečné

Pište lepší prompty pro AI s kontextem, který mění rozhodnutí: rozsah, předpoklady, výsledky, omezení a důkazy.

Jak psát lepší prompty pro AI: Chybějící kontext, díky kterému jsou návrhy AI skutečně užitečné

Lepší prompty pro AI nemusí být nutně delší. Obsahují kontext, který asistent potřebuje k přijetí správného rozhodnutí, namísto pouhého vytvoření věrohodné změny. Pro inženýrskou práci to obvykle znamená pojmenovat rozsah, předpoklad, požadovaný výsledek, omezení a důvod, proč je změna důležitá.

To je rozdíl mezi odpovědí, která se zkompiluje, a změnou, která produktu pomáhá.

Proč jinak schopné návrhy AI selhávají

Asistent dokáže napsat platný kód z krátkého zadání, ale krátké zadání často skrývá produktové rozhodnutí. „Odstraňte postranní panel na mobilu“ říká asistentovi, co má změnit. Neříká mu, zda musí zůstat zachováno chování na desktopu, proč současné chování lidem škodí ani jak posoudit úspěch.

Když tento kontext chybí, asistent musí hádat. Může provést technicky čistou změnu, která odstraní užitečný pracovní postup na desktopu, změní nesouvisející rozložení nebo řeší příznak namísto problému.

Používejte prompt jako stručné technické zadání, ne jako příkaz.

Zahrňte kontext, který mění rozhodnutí

Začněte těmito šesti částmi informací:

  1. Rozsah: Která obrazovka, soubory, tok nebo chování jsou v rozsahu?
  2. Problém: Co je pro člověka používajícího produkt obtížné, nefunkční, pomalé nebo matoucí?
  3. Předpoklad: Co podle vás problém způsobuje?
  4. Požadovaný výsledek: Co by mělo platit, až bude práce hotová?
  5. Omezení: Co musí zůstat nezměněné a které přístupy nepřipadají v úvahu?
  6. Požadavek na důkazy: Požádejte asistenta, aby zpochybnil předpoklad a vysvětlil, co by ověřil jako první.

Nemusíte zahrnout každou položku do jednořádkového dotazu. Potřebujete je tehdy, když asistent může za vás rozhodovat o produktu nebo architektuře.

Příklad: zachovejte chování na desktopu při opravě mobilní navigace

Toto je slabý prompt:

Zajistěte konzistentnější mobilní navigaci a odstraňte postranní panel.

Nabízí akci, ale neurčuje hranice rozhodnutí. Asistent by mohl postranní panel odstranit všude, protože neví, že na něm uživatelé desktopu závisejí.

Toto je lepší prompt:

Problém: Postranní panel pro desktop se na mobilu používá obtížně, protože zabírá
příliš mnoho vodorovného prostoru a soupeří s obsahem lekce.

Předpoklad: Navigační vzor specifický pro mobil by usnadnil přepínání mezi lekcemi,
aniž by změnil pracovní postup na desktopu.

Výsledek: Na malých obrazovkách se studenti mohou přepínat mezi lekcemi a vracet
k aktuálnímu cvičení, aniž by ztratili kontext. Uživatelé desktopu si ponechají
stávající postranní panel a pracovní postup s klávesnicí.

Omezení: Neodstraňujte postranní panel na desktopu. Zachovejte stávající chování
rout, popisky přístupnosti a stav postupu. Vyhněte se přidání druhého
zdroje pravdy pro vybranou lekci.

Před implementací prozkoumejte současné vlastnictví navigace a zpochybněte
předpoklad, pokud by problém vyřešila menší změna rozložení.

Lepší prompt dává asistentovi prostor k průzkumu, ale výslovně stanoví důležité hranice: mobil je rozsah, chování na desktopu je chráněné a jediný vlastník stavu je nezbytný.

Příklad: přesuňte přepínač tématu z konkrétního důvodu

Požadavek na umístění může mít stejný problém:

Přesuňte tlačítko tématu do postranního panelu a zajistěte, aby se tam vešlo.

Tento pokyn zachází se stávajícím rozložením jako s dekorací. Nevysvětluje, proč přepínání témat patří jinam ani jak ho uživatelé po přesunu najdou.

Zkuste místo toho toto:

Problém: Přepínač témat v navigační liště soupeří s globální navigací,
ale lidé ho používají při porovnávání lekcí v rámci aktuálního kurzu.

Požadovaný výsledek: Umístěte přepínání témat vedle navigace kurzu, aby byl jeho
účel zřejmý a zůstal snadno dostupný při procházení lekce.

Omezení: Zachovejte beze změny globální akce navigační lišty, uchovejte vybrané téma
při navigaci a nezpřístupňujte přepínání témat na úzkých obrazovkách pouze
prostřednictvím postranního panelu.

Nejprve prozkoumejte současný model rout a stavu. Vysvětlete, zda je postranní
panel vhodným cílem, než rozložení změníte.

Ústřední změnou není „více podrobností“. Je jí lepší definice úspěchu.

Požádejte asistenta, aby zpochybnil plán

AI je nejužitečnější, když dokáže ukázat na chybný předpoklad před napsáním opravy. Přidejte jednu přímou otázku:

Jaký důkaz by tento předpoklad vyvrátil a jakou menší změnu bychom měli
zvážit jako první?

U chyby se ptejte na kroky k reprodukci a konkurenční hypotézy. U refaktoringu se ptejte, které chování by mohlo regredovat. U změny architektury se ptejte, který existující vlastník, hranice nebo kontrakt by se duplikoval.

To posune práci od „napiš kód hned“ k „udělej obhajitelné rozhodnutí a pak implementuj“.

Opakovaně použitelná šablona promptu

Použijte tuto šablonu, když úkol potřebuje produktový i technický kontext:

Úkol: [Popište změnu jednou větou.]

Problém: [Koho se to týká a co se děje špatně?]
Rozsah: [Soubory, obrazovky, pracovní postup nebo subsystém v rozsahu.]
Předpoklad: [Co podle vás problém způsobuje nebo jaké řešení by mohlo pomoci.]
Požadovaný výsledek: [Pozorovatelný výsledek pro uživatele a systém.]
Omezení: [Chování k zachování, kompatibilita, výkon, přístupnost,
zabezpečení, nasazení a cíle mimo rozsah.]
Relevantní kontext: [Architektura, tok dat, nedávné změny, logy nebo příklady.]
Kritéria přijetí: [Jak poznáme, že je práce hotová.]
Ověření: [Testy, ruční kontroly nebo měření, která je třeba spustit.]

Než změníte kód, prozkoumejte relevantní oblast. Zpochybněte předpoklad, pokud
důkazy naznačují bezpečnější nebo menší řešení.

Šablona také usnadňuje revizi: spolupracovník vidí zamýšlený výsledek a může posoudit, zda ho navržená implementace splňuje.

Poskytněte kontext, ne výpis celého repozitáře

Relevantní kontext je výběrový. Přidejte selhávající test, chybovou zprávu, současnou hranici komponenty, tělo požadavku, nebo krátkou cestu uživatele. Nevkládejte tisíce nesouvisejících řádků v naději, že asistent najde důležitou část.

Pro cílený pracovní postup při programování si přečtěte jak psát prompty pro ChatGPT při programování. Pro opakovaně použitelné vzory pro implementaci, ladění a revize si přečtěte prompt engineering pro vývojáře.

Vyberte dalšího průvodce podle svého úkolu

Použijte průvodce pro konkrétní nástroj, když kontext repozitáře mění prompt: zadávání promptů pro Cursor AI, osvědčené postupy pro zadávání promptů GitHub Copilotu nebo jak dosáhnout lepších výsledků s Claude Code.

Použijte průvodce pro konkrétní úkol, když potřebujete formulace připravené k přizpůsobení: příklady prompt engineeringu pro softwarové inženýry, šablony promptů pro refaktoring kódu nebo šablony promptů pro ladění produkčních problémů.

Použijte průvodce rozhodováním, když riziko spočívá v procesu spíše než v syntaxi: chyby AI asistentů pro programování a jak se jim vyhnout a jak zkušení vývojáři používají AI jinak.

Proměňte kvalitu promptů v inženýrskou praxi

Stejné návyky, které dělají prompty pro AI užitečnými, zpřehledňují i tikety, pull requesty a poznámky k incidentům: vysvětlete problém, definujte výsledek, zachovejte důležité chování a ověřte výsledek.

Když úkol zahrnuje shellový příkaz nebo výstup terminálu, konkretizujte chování dříve, než požádáte asistenta o jeho změnu. Procvičujte pracovní postupy příkazového řádku v prohlížeči, abyste dokázali rozpoznat vstup, výstup a režim selhání, které má implementace zpracovat.

Reference

Tyto odkazy na dokumentaci poskytují spolehlivé informace o příkazech použitých v tomto článku.