Prvý projekt s AI agentom: od zadania po overený výsledok
Redakčná revízia 1 • 1. 10. 2026 • Návrh čakajúci na schválenie. Celý checklist zverejniť bez registrácie a bez marketingového súhlasu. Ide o cvičenie, nie produkčný systém na fakturáciu. Referenčný príklad nižšie bol lokálne otestovaný; nepredstiera záznam práce konkrétneho AI nástroja.
Čo budete potrebovať
Lokálny Python 3, editor a malý priečinok bez osobných údajov či tajomstiev. Pre kontrolu referenčného riešenia stačí štandardná knižnica; netreba inštalovať balíky. Pri časti s agentom použite už schválené prostredie v rámci dostupných bezplatných možností. Tento materiál nesľubuje bezplatný prístup ku konkrétnemu modelu a nevyžaduje nákup. Bez dostupného agenta môžete najprv prejsť referenčný príklad.
1. Zmenšite úlohu
- Napíšte jednu vetu: „Funkcia spočíta nezáporné celočíselné ceny v centoch.“
- Zapíšte vstup a výstup:
[199, 250] → 449. - Zapíšte hranicu: bez meny, daní, zliav, zaokrúhľovania, súborov, siete a UI.
Dôkaz: krátke zadanie, pri ktorom sa dá rozhodnúť, či je splnené.
2. Určte prijímacie kritériá pred generovaním
[] → 0a[0, 199] → 199.[199, 250] → 449.- Záporná cena vyvolá
ValueError. - Desatinné číslo, text,
TruealeboNonevyvolajúTypeError.
Dôkaz: očakávania uložené oddelene od návrhu agenta. Nekopírujte ich až z hotovej implementácie.
3. Pripravte izolovaný priestor
- Použite nový cvičný priečinok alebo samostatnú vetvu a zaznamenajte východiskový stav.
- Skontrolujte, že agent nedostáva produkčné údaje, heslá ani širšie oprávnenia, než potrebuje.
- Povoľte len prácu v cvičení. Inštalácie, sieť, zásahy mimo priečinka a nasadenie nie sú súčasťou úlohy.
Dôkaz: zoznam povolených súborov a zaznamenaný východiskový stav. Ak pracujete v Gite, pred začatím skontrolujte git status; existujúce cudzie zmeny neprepisujte.
4. Zadajte agentovi konkrétny kontrakt
Skopírujte a podľa vlastného prostredia upravte:
V priečinku cvičenia vytvor total.py s funkciou total_cents(prices). Prijíma zoznam nezáporných celých čísel centov a vracia ich súčet. Prázdny zoznam vracia 0. Záporná položka vyvolá ValueError; položka iného typu vrátane bool vyvolá TypeError. Bez externých knižníc, siete a inštalácií. Nemeň zadanie ani testy test_total.py. Najprv krátko opíš postup, potom implementuj funkciu. Spusti python -m unittest -v, ak to prostredie umožňuje. Uveď zmenené súbory, skutočne spustený príkaz, jeho výsledok a čo zostalo neoverené. Ak nemôžeš testy spustiť, povedz to. Nevykonávaj nasadenie.
Dôkaz: uložené zadanie a výstup agenta bez citlivých dát. Formulácia „testy by mali prejsť“ nie je vykonaný test.
5. Spustite nezávislú kontrolu
Do test_total.py uložte tento kontrolný súbor, ktorý vzniká z kritérií:
import unittest
from total import total_cents
class TotalTests(unittest.TestCase):
def test_empty(self):
self.assertEqual(total_cents([]), 0)
def test_sum(self):
self.assertEqual(total_cents([199, 250]), 449)
def test_zero(self):
self.assertEqual(total_cents([0, 199]), 199)
def test_negative(self):
with self.assertRaises(ValueError):
total_cents([199, -1])
def test_invalid_types(self):
for value in [1.99, "199", True, None]:
with self.subTest(value=value):
with self.assertRaises(TypeError):
total_cents([value])
if __name__ == "__main__":
unittest.main()
V priečinku cvičenia spustite:
python -m unittest -v
Ak systém používa názov python3, nahraďte ním python. Zaznamenajte aj verziu cez python --version. Očakávané sú 5 úspešných testovacích metód a záverečné OK; test typov má štyri podprípady.
- Overte, že sa naozaj spustilo 5 testov. „0 tests“ nie je úspešné overenie.
- Pri chybe porovnajte výsledok so zadaním, neopravujte test len preto, aby prešiel.
- Zopakujte skúšku po oprave a uchovajte posledný výstup.
Dôkaz: príkaz, návratový kód a testovací výstup. Testy pokrývajú daný kontrakt, nie všetky možné požiadavky.
6. Pozrite si samotné zmeny
- V Gite prejdite
git diffagit status; nový nesledovaný súbor sa nemusí objaviť v bežnom diffe, preto otvorte aj nové súbory. - Každý zmenený súbor musí súvisieť so zadaním.
- V riešení nesmú pribudnúť sieťové volania, čítanie tajomstiev alebo nevyžiadané závislosti.
- Vysvetlite vlastnými slovami, prečo
Truenie je prijatá cena.
Dôkaz: kontrolovaný zoznam súborov a poznámka ku každej nezrovnalosti.
7. Skúste negatívnu kontrolu
V samostatnej kópii cvičenia nahraďte telo funkcie výrazom return sum(prices). Spustite rovnaké testy. Súčet bude fungovať pre bežné vstupy, ale testy nesmú prejsť pre všetky neplatné vstupy. Potom obnovte pôvodnú verziu a overte úspech znovu. Nerobte tento zásah v produkčnom kóde.
Dôkaz: chybný variant je testami odmietnutý. Ak aj chybný variant prejde, skontrolujte, či spúšťate správny súbor a testy.
8. Rozhodnite, či zmenu prijmete
- Prijímacie kritériá sú splnené a testy skutočne prešli.
- Diff je skontrolovaný človekom a neobsahuje zmeny mimo úlohy.
- Zostávajúce obmedzenia sú pomenované: toto cvičenie nerieši meny, dane ani produkčný import údajov.
- Viete sa vrátiť k východiskovému stavu. Zmenu prijmite až po tejto kontrole.
Záverečný záznam: Zadanie / Zmenené súbory / Príkaz / Výsledok / Obmedzenia / Rozhodnutie. Nesľubujte úsporu času, ak nemáte porovnateľné meranie.
Referenčné riešenie na porovnanie
Najprv skúste vlastné overenie, potom porovnajte:
def total_cents(prices):
total = 0
for price in prices:
if type(price) is not int:
raise TypeError("Cena musí byť celé číslo centov")
if price < 0:
raise ValueError("Cena nesmie byť záporná")
total += price
return total
Voliteľné pokračovanie: Chcete ďalšie slovenské ukážky? Newsletter agenticcoding.sk je dobrovoľný a potvrdenie odberu je samostatný krok. Tento checklist je dostupný aj bez neho. Odber v tomto náhľade nie je spustený.