Tipy

Jak zadat AI chybu v kódu, aby ji opravila napoprvé

Šablona hlášení chyby pro AI asistenta – co přiložit, jak popsat očekávané a skutečné chování a jak se vyhnout kolečku nefunkčních oprav.

12. 10. 2026 · 4 min čtení

„Nefunguje mi to, oprav to“ a k tomu 400 řádků kódu. AI odpoví sebevědomou opravou, ta nefunguje, následuje další pokus a další. Po pěti kolech je kód horší než na začátku. Příčinou obvykle není hloupý asistent, ale chybějící informace. AI nevidí váš monitor, nespustí si váš kód a nezná vaše data. Co jí neřeknete, musí odhadnout.

Šablona, která funguje

## Co se děje
Při odeslání formuláře registrace vrací endpoint POST /api/register
HTTP 500.

## Co očekávám
Vytvoření uživatele a odpověď 201 s JSON {"id": ...}.

## Chybová hláška (celá)
Traceback (most recent call last):
  File "/app/api/users.py", line 42, in register
    user = User(email=data["email"].lower(), ...)
AttributeError: 'NoneType' object has no attribute 'lower'

## Jak to vyvolat
curl -X POST localhost:8000/api/register \
  -H "Content-Type: application/json" \
  -d '{"name": "Jana", "password": "x"}'

## Prostředí
Python 3.12, Flask 3.0, Ubuntu 24.04, lokálně i na serveru.

## Co už jsem zkusil
- Se zadaným e-mailem to funguje.
- Na frontendu je pole e-mail nepovinné (to je záměr).

## Relevantní kód
[soubor api/users.py celý, models.py jen třída User]

Každá sekce má důvod. Projděme je.

1. Očekávané vs. skutečné chování

„Nefunguje“ může znamenat chybu, špatný výsledek, pomalost nebo nic. Napište obojí: co se má stát a co se děje. U špatných výsledků uveďte konkrétní hodnoty: „pro vstup 1500 Kč vrací slevu 0, čekám 75“.

2. Celá chybová hláška

Ne „hází to AttributeError“, ale celý výpis včetně stack trace. Řádky a názvy souborů jsou pro diagnostiku klíčové. Totéž platí pro výstup konzole v prohlížeči, logy serveru (journalctl -u app -n 50) nebo výstup buildu.

Pokud chybová hláška neexistuje, řekněte to – i to je informace („žádná chyba v konzoli ani v logu, jen se nic nestane“).

3. Reprodukce

Nejlepší je příkaz, který chybu vyvolá: curl, test, krátký skript. AI pak vidí přesný vstup. U chyb v UI popište kroky: „1. přihlásit se, 2. otevřít košík, 3. smazat poslední položku → stránka zbělá“.

4. Správný kontext kódu

Moc málo kódu je stejný problém jako moc kódu.

  • Pošlete: soubor, kde chyba vzniká, a soubory, které se ve stack trace objevují (vaše, ne knihovny). Definice datových struktur, se kterými kód pracuje.
  • Nepošlete: celý projekt bez vysvětlení, node_modules, vygenerované soubory.
  • Nezkracujte kód tak, že zmizí podstatné. Pokud nahradíte část komentářem „… tady nic důležitého …“, chyba tam bývá.

Velmi pomáhá i ukázka dat: pár řádků JSON odpovědi, schéma tabulky, ukázka vstupního CSV. Citlivé údaje (hesla, tokeny, osobní data) nahraďte smyšlenými.

5. Prostředí a verze

„Django 5.1“ a „Django 3.2“ jsou jiné světy. Uveďte jazyk, framework, hlavní knihovny a jejich verze, OS, a jestli chyba nastává lokálně, na serveru, nebo jen na jednom z nich. Rychlé zjištění verzí:

python3 --version && pip freeze | grep -iE "flask|sqlalchemy"
node --version && npm ls --depth=0

6. Co jste zkusili a co platí

Ušetříte kolo návrhů, které už jste vyloučili. A přidejte omezení: „nechci měnit databázové schéma“, „řešení musí fungovat v Pythonu 3.9“, „nepřidávej nové závislosti“.

Jak se vyhnout kolečku nefunkčních oprav

Chtějte diagnózu před opravou

Neopravuj zatím kód. Nejdřív mi vysvětli, co je podle tebe příčina,
a navrhni, jak tu hypotézu ověřit.

Když AI musí nejdřív zdůvodnit příčinu, je mnohem méně pravděpodobné, že jen „přidá try/except“ a chybu zakryje.

Po neúspěšné opravě pošlete nový výstup

Ne „pořád to nefunguje“, ale: „Použil jsem tvou opravu. Teď je chyba jiná: [nový výpis].“ Změna chybové hlášky je cenná informace – často znamená posun dál.

Po třech neúspěšných pokusech začněte znovu

Dlouhá konverzace plná nefunkčních návrhů asistenta mate. Otevřete novou konverzaci s aktuálním kódem, shrnutím zjištění a seznamem toho, co nefungovalo.

Zmenšete problém

Pokud chyba nastává v komplexní aplikaci, zkuste ji izolovat do minimálního skriptu. Často na příčinu přijdete už při tom – a pokud ne, AI dostane čistý, jednoznačný příklad.

Pozor na „opravy“, které jen schovávají chybu

U navržené opravy se zeptejte, zda řeší příčinu, nebo jen symptom:

  • try/except: pass kolem padajícího kódu,
  • if x is not None bez otázky, proč je x prázdné,
  • zvýšení timeoutu u pomalé operace,
  • // @ts-ignore nebo # type: ignore.

Někdy je to správné řešení, ale mělo by jít o vědomé rozhodnutí.

V ColdHost AI

Zvolte režim Řešení problémů, který postupuje od diagnózy k opravě. Soubory, logy i ZIP s projektem můžete přiložit přímo ke zprávě. Pokud aplikace běží na vašem VPS připojeném přes SSH, asistent si může navrhnout diagnostické příkazy (logy, stav služby) – vy je schválíte jedním kliknutím a výstup dostane rovnou k analýze.