Case study: Shopping agent
Pointa: opakované nákupy nejsou těžké, jen berou pozornost. Cíl nebyl “autopilot”, ale paměť + správný timing + potvrzení, než se objednávka skutečně odešle.
Kontext
- Telegram je UI: zpráva → návrh → potvrzení
- Rohlík nemá stabilní API pro tohle → automatizace přes Playwright (a férově přiznaná křehkost)
- historie nákupů se učí z účtenek / objednávek, ne z ručního zadávání
Design rozhodnutí (a proč)
- Učení z historie: u každé položky držím
last_bought,frequency_days,times_bought - Ověřená frekvence: automatický návrh bere jen položky, které už byly koupené víckrát (méně falešných nákupů)
- Alias vrstva: když se názvy na webu mírně liší, bot se zeptá na klíčové slovo místo toho, aby hádal
- Human‑in‑the‑loop: bez “potvrzuji” se objednávka neodešle
Největší pasti
- UI na webu se mění → řešení: raději fail a viditelná chyba než tichá chyba v košíku
- duplicity v historii → řešení:
processed_order_ids(idempotence) - neznámé produkty → řešení: dialog v Telegramu (0 = přeskočit, 00 = přeskočit vše)
Důkazy / provozní signály
- logika příkazů:
/uctenky,nakup,potvrzuji - persistovaná session (cookies) lokálně, aby se bot nemusel pokaždé přihlašovat
Co bych udělal dál
- rychlý “dry‑run” výpis: co by se přidalo do košíku a proč (audit)
- lepší detekce UI změn + fallback screenshot do logu pro rychlý debug