Pracovný náhľad · odber nie je spustený · nič neodosielame
agenticcoding.sk

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

  • [] → 0 a [0, 199] → 199.
  • [199, 250] → 449.
  • Záporná cena vyvolá ValueError.
  • Desatinné číslo, text, True alebo None vyvolajú 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 diff a git 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 True nie 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ý.