---
title: Agent, ktorý riadi telo
type: deep-dive
level: L3
status: live
revision: 1
updated: 2026-08-25
systemVersion: 4.2
authoring: machine-translated
tags: [instrumentation, executors, calibration, measurement, deep-dive]
rating: 8.05
ratingAxes: useful 8 · evidence 8 · pull 8 · original 9 · form 7
ratingKind: derived
source: project ledger and scheduled-job logs, 2026-06-14 to 2026-08-25
---

# Agent, ktorý riadi telo

_Written 2026-08-25 · last verified 2026-08-25 · system v4.2 · live_

**TL;DR** — Agent, ktorý bežne riadi nákup a financie, bol nasmerovaný na stravu, tréning a laboratórne výsledky jedného človeka. Žiadny nový rámec: rovnaké pamäťové súbory, exekútory, brány a týždenná uzávierka. Prvý denník bežal 66 dní a nezaznamenal nič, pretože nemal exekútor. Prerobená verzia odhalila chybu o jeden deň (off-by-one) vo vrstve dátumov u dodávateľa, kalorickú metriku, ktorá klesá so zlepšujúcou sa kondíciou, a chybu odhadu, ktorá je do 8 % pri celých potravinách a 21 – 27 % podhodnotená pri formulovaných produktoch.

## Prečo zdravotný projekt patrí na stránku o prevádzkových agentoch

Všetko ostatné na tejto stanici opisuje agenta, ktorý riadi firmu: nákup, poštu, financie, riadenie, dokumenty. Od polovice augusta je ten istý systém nasmerovaný aj na jedného človeka — stravu, tréning, spánok a dve statické klinické dátové sady.

Nevznikol preň žiadny nový rámec. Znovu využíva pamäťové súbory, naplánované úlohy, exekútory, brány a rytmus revízií, ktoré už existovali. Vďaka tomu sa to blíži skôr kontrolovanému experimentu na operačnom systéme než na osobe: zopakoval sa každý spôsob zlyhania, ktorý táto stanica už zdokumentovala, a objavili sa dva nové, ktoré sa prejavia iba vtedy, keď je subjektom telo.

**Čo tento článok netvrdí.** V čase písania má projekt za sebou menej ako týždeň nameraných dní. Nie je tu žiadny výsledok ani krivka hmotnosti. Čítanie trendu z dvoch dátových bodov je jedno zo zlyhaní uvedených nižšie a tento článok sa ho nechystá spáchať už vo vlastnom úvodnom odseku.

## Zásobník (stack)

| Vrstva | Čo to je | Frekvencia |
|---|---|---|
| Denník | jeden markdown súbor, do ktorého sa iba pridáva | denne |
| Exekútor | hook na začiatku relácie kontroluje, či dnešok má riadok; ak nie, agent sa opýta | raz denne |
| Vstup (intake) | fotka vložená do priečinka alebo jedna veta v chate | podľa potreby |
| Sťahovanie z nositeľného zariadenia | naplánovaná úloha voči API platformy hodiniek; surový JSON sa archivuje | denne o 7:00 |
| Ťažba histórie | samostatné spätné doplnenie na požiadanie za 2 569 dní | raz |
| Vrstva pravidiel | 8 pomenovaných pravidiel zostavených z genotypizačného array a laboratórneho panela | statická |
| Týždenná uzávierka | skript zapíše riadok týždňa iba z nameraných dát, bez účasti modelu | nedeľa |
| Dashboardy | generované HTML, jeden na vrstvu | pri každom behu |
| Spätný zápis | dokončené aktivity sa pridajú do kalendára, úlohy do databázy úloh | podľa potreby |

Nič z tohto zoznamu nie je zdravotnícky softvér. Je to tvar akéhokoľvek iného prevádzkového subsystému: vstup, denník, naplánované sťahovanie, brána a týždenná uzávierka.

## Verzia jedna: denník bez exekútora

Prvá verzia denníka bežala **66 dní a nezaznamenala ani jeden záznam**.

Diagnóza nebola disciplína. Boli tri príčiny a záleží iba na prvej:

1. **Nikto sa nepýtal.** Denník existoval; otázka nie.
2. **Predimenzovaný návrh na začiatku** — 14 denných pripomienok špecifikovaných vo fáze, keď ani jedna z nich nebežala.
3. **Štruktúra sa musela vytvoriť ešte pred použitím.** Týždenné tabuľky sa vytvárali ručne; keď nikto nevytvoril druhý týždeň, záznam sa skončil.

Verzia dva zmenila presne tri veci — jeden exekútor, jedna otázka denne, iba pridávanie bez vopred pripravených tabuliek — a čo je dôležitejšie, niečo *odstránila*. Ako kompenzácia za pridanie hooku bolo zrušených 14 plánovaných pripomienok, takže čistá zložitosť zmeny je záporná.

Samotná otázka, doslovne:

> Projekt 85: čo si dnes jedol/jedla a hýbal/hýbala si sa? (Odrážky stačia, matematiku spravím ja.)

Antipravidlá, ktoré k nej patria, majú rovnakú váhu ako samotná otázka. Nepýtať sa na raňajky: bežne sa vynechávajú, takže prázdne políčko nie je medzera. Nepýtať sa na hmotnosť: tá prichádza z hodiniek. Nikdy viac ako raz denne. Nikdy nemoralizovať — obed z rýchleho občerstvenia sa zaznamená ako čísla, nie ako komentár. Nástroj je meradlo, nie dozorca, a meradlo, ktoré komentuje, sa prestane používať.

## Vstup musel stratiť svoj tvar

Verzia jedna zlyhala, pretože vstup potreboval formulár. Verzia dva prijíma fotografiu úplne bez sprievodného textu:

```
Classify as a meal if A and (B or C):
  A  phone photo, timestamp today or yesterday
  B  frame contains food, a drink, a plate, packaging, a receipt or a nutrition label
  C  file time falls inside a meal window
Time is a supporting signal, never the only one. Content decides.
```

Do dvoch hodín od spustenia slučky prišli tri nevyžiadané vstupy — fotka len s popiskom *„testujem, či vieš, čo s tým máš robiť"*, zrušený tréning, káva. Dôkazy ukazujú jedným smerom: verzia jedna nevyprodukovala nič 66 dní nie preto, že by hlásenie bolo nevítané, ale preto, že hlásenie muselo mať formát.

Každý odvodený riadok nesie explicitnú značku `[estimate]` a deklarovanú chybu ±20 – 30 %.

## Genóm a krvné testy sú vrstva pravidiel, nie správa

Pod projektom ležia dve statické dátové sady: spotrebiteľský genotypizačný array s približne 700 000 markermi a laboratórny panel starý štyri roky.

Ani jedna sa nepoužíva ako dokument. Boli raz zostavené do **8 pomenovaných pravidiel s explicitnou váhou** — tri nesú približne 80 % očakávaného účinku, štyri asi 15 %, jedno asi 5 % — plus prehľadová tabuľka 8 čísel a zoznam antipravidiel: veci, ktoré sa nemajú robiť, pričom ku každej je priložený dôvod naviazaný na vlastné dáta tejto osoby, nie na všeobecné odporúčania.

Najužitočnejším výstupom nebolo odporúčanie. Bolo to toto:

> **5 z 8 čísel v prehľadovej tabuľke buď neexistovalo, alebo boli staré štyri roky.**

Bodovaná správa vyzerá ako súbor záverov. Prevádzkovo je to zoznam meraní, ktoré nikto neurobil. Prvou skutočnou úlohou vrstvy pravidiel bolo premeniť percentily na objednávkový zoznam s cenami a spôsobom objednania — a pri kontrole sa ukázalo, že ceny v prvej verzii pochádzali z lekárskeho sadzobníka, nie z cenníka pre samoplatcov, čím bol jeden test podhodnotený o 46 %. Zovšeobecnená verzia tejto pasce, aj bodovacej pasce pod ňou, je v `a-percentile-is-not-a-diagnosis`.

Klinické hodnoty sa v systéme nesú ako **pomery, nie ako absolútne čísla**: jeden pečeňový enzým na 1,9-násobku hornej referenčnej hranice, jeden lipid približne 45 % nad hranicou nízkeho rizika, filtrácia mierne znížená. Rovnaké pravidlo ako pri firemných číslach — pomer nesie zistenie, absolútna hodnota nesie identitu.

## Metrika, ktorá sa obracia

Strojom hlásený energetický výdaj počas štyroch tréningov na tom istom stacionárnom bicykli, zoradený podľa priemernej srdcovej frekvencie:

| Priem. SF (tep/min) | kcal/min |
|---|---|
| 121 | 9,1 |
| 127 | 10,1 |
| 133 | 11,2 |
| 136 | 11,3 |

Prvé tri body sú takmer lineárne: **+0,17 kcal/min na úder**. Štvrtý bod lomí priamku — model predpovedal 11,7, zariadenie hlásilo 11,3, čo je o 3,5 % menej. Z tejto tabuľky vzišli dve pravidlá.

**Číslo je funkciou srdcovej frekvencie, nie práce.** Zariadenie odvodzuje kalórie zo srdcovej frekvencie. Tréning pri 121 tep/min vykonal *viac* mechanickej práce než ten pri 133 tep/min — rovnaké trvanie, vyšší odpor, vyššia kadencia — a napriek tomu hlásil o 2,1 kcal/min menej. Takže **so zlepšujúcou sa aeróbnou kondíciou ten istý tréning hlási menej kalórií**. Ide o zlepšenie, ktoré prichádza zamaskované ako pokles, a akýkoľvek dashboard, ktorý to vykreslí ako trend, to prečíta obrátene.

**Plánovať podľa dolnej hranice.** Pracovný rozsah je 9,1 – 11,3 kcal/min; plánovacie číslo je 9,1. Rozpočet postavený na hornej hranici nameraného rozsahu je rozpočet, ktorý neexistuje.

Pod oboma pravidlami leží delenie, ktoré prerozdelilo celý projekt: 500 kcal pohybu je **0,065 kg tuku**, oproti týždennému aeróbnemu stropu 150 – 180 minút, nad ktorým tréning v deficite začína stáť svaly. Aritmetika je jednoznačná — o hmotnosti rozhoduje tanier, o kondícii bicykel. Nič iné, čo táto inštrumentácia vyprodukovala, nezmenilo toľko rozhodnutí ako toto jedno číslo.

## Vrstva dátumov klamala dvakrát

Riadky od dodávateľa nepopisujú všetky ten istý deň. Denné metriky patria dňu D; spánok patrí noci, ktorá *začala* v deň D, ale dodávateľ ju eviduje pod D+1; pripravenosť (readiness) sa počíta pre ráno dňa D. Pri naivnom spojení do jedného riadku na deň je pripravenosť o deň posunutá oproti spánku — a zlé skóre bolo pripísané dobrej noci skôr, než si to niekto všimol.

Druhá lož bola tichšia. Naplánované sťahovanie beží o 7:00, ešte pred synchronizáciou hodiniek. API vrátilo prázdnu kostru namiesto chyby, úloha skončila s kódom 0 a deň sa zapísal bez údajov o spánku. Jediným prezradením bola veľkosť dát: **78 kB namiesto približne 230 kB**.

Obe sú rozobraté v `the-readiness-that-belonged-to-yesterday`, vrátane dvojriadkového korelačného testu, ktorý dokázal posun.

Jedna štatistická poistka z toho istého subsystému stojí za priame prevzatie: ročný priemer sa uvádza iba vtedy, ak má daná konkrétna metrika za daný rok **aspoň 100 nameraných dní**. Prvý beh bez váhania porovnal rok so 355 meraniami oproti roku so 6. Mechanicky previazané dvojice sú z výsledkov výslovne vylúčené — tam, kde platforma počíta jednu metriku *z* druhej, ich r = 0,71 je aritmetika, nie poznatok.

## Chyba odhadu nie je rovnomerná

Agent odhaduje kalórie a bielkoviny z fotografií a textu. Keď sa proti týmto odhadom začali kontrolovať etikety, ukázalo sa, že chyba má štruktúru:

| Trieda položky | Chyba |
|---|---|
| Jednoduché celé potraviny (šunka, tvaroh, jogurt, ovocie) | do ±8 % |
| Formulované produkty (nápoje, tyčinky) | **podhodnotené o 21 – 27 %** |
| Obsah soli v jednom balenom mäse | podhodnotený o 23 % |

Príčinou bola kotva — *„proteínový nápoj má okolo 150 kcal"* — ktorá mlčky ignorovala pridaný cukor, pridanú vlákninu a mliečny základ. Prijaté pravidlo: **žiadny odhad pre formulovaný produkt.** Prečítať etiketu, alebo ho označiť `[estimate ±25%]` a nestavať naň žiadne rozhodnutie.

Jemnejšia chyba bola prenos. Kalibračný bod — bielkovina plus dve zeleniny, bez oleja, najlepší pomer v denníku — bol prenesený z uvareného domáceho jedla na desiatu zjedenú pri stole. Číslo sa prenieslo; exekútor nie. Pri stole nikto nevarí. **Pred opätovným použitím kalibračného bodu v novom kontexte overiť, či tam existuje aj osoba alebo proces, ktorý ho vytvoril.**

## Pomer, ktorý zmenil správanie

Ukazovateľ, ktorý skutočne zmenil rozhodnutia, nebola ani hmotnosť, ani kalórie. Bolo to **kcal na gram bielkoviny**, počítané na jedlo.

Naprieč zaznamenanými jedlami sa pohyboval od **7,9** do **31,2**; denný priemer potrebný na splnenie oboch cieľov je **10,9**. Prevádzkovo sa od počítania kalórií líši akciou, ktorú naznačuje. Počítanie kalórií naznačuje *menej*. Pomer naznačuje *iného nositeľa*:

> Štyri špízy namiesto troch a hranolčekov: −400 kcal, +28 g bielkovín, rovnaká objednávka, rovnaká cena, žiadny pocit obmedzenia.

A rekordné jedlo nebolo to, čo vyzeralo najcnostnejšie. Bolo to jedlo, ktoré nepotrebovalo žiadnu prípravu — tri obaly otvorené pri stole. To je dôležitejšie než samotný pomer, pretože je opakovateľné aj v zlý deň, a protokol, ktorý funguje iba v dobré dni, meria nesprávnu premennú.

## Týždenná uzávierka odmieta hádať

Skript bez akéhokoľvek modelu zapisuje riadok týždenného prehľadu: zmena hmotnosti, kroky, tréningy, spánok, pokojová srdcová frekvencia, aktívne kalórie — všetko namerané — a príjem aj dodržiavanie vyparsuje z denníka. Tam, kde denník mlčí, zapíše `—`. Z jeho vlastnej hlavičky:

> Skript preto nikdy nehlási „dodržiavanie 0/7", keď záznamy iba chýbajú; rozlišuje nulu od neznámej hodnoty (`—` vs `0`).

Toto rozlíšenie je celým návrhom. Týždenná správa, ktorá vykresľuje chýbajúce dáta ako nulu, vyrába zlyhanie, ku ktorému nedošlo, a čitateľ prestane dôverovať nástroju dávno predtým, než prestane dôverovať plánu.

## Náklady a kritérium na ukončenie

Priebežné náklady predstavuje asi pätnásť riadkov v hooku, jedna otázka denne a približne dve minúty písania. Kompenzáciou bolo odstránenie 14 plánovaných pripomienok.

Kritérium na ukončenie je zapísané a datované: **ak je k pevne stanovenému dátumu zaznamenaných menej ako 10 dní z 31, tretia verzia nevznikne.** Agent oznámi túto skutočnosť a navrhne buď hotovú aplikáciu, alebo úplné zastavenie sledovania. Návyk, ktorý potrebuje tretí zákazkový pokus, nie je problém nástrojov.

## Brána, ktorá nepokrýva telá

Jedno záverečné zistenie, a to sa týka skôr tejto stránky než samotného projektu.

Publikačný pipeline má bránu anonymity. Počíta *firemné* kategórie — pásmo tržieb, počet zamestnancov, sektor, geografiu — a zablokuje zostavenie (build), ak sa v jednom artefakte objaví viac ako jedna. Už predtým zachytila skutočný únik, a to v článku, ktorý už bol označený ako overený.

Až do tohto článku nemala pre telo vôbec nič. Vek, mesto, genotyp, laboratórne hodnoty a tréningový rozvrh sa nenachádzali na žiadnom zozname, pričom sa krížia s firemnými pásmami spôsobom, ktorý brána nedokázala vidieť: jedno firemné pásmo plus jeden klinický detail zúži populáciu rýchlejšie než dve firemné pásma.

Brána teraz obsahuje aj kategóriu tela, počítanú spolu s firemnými voči rovnakej hranici dvoch. Táto zmena bola vykonaná pred zverejnením tohto článku, nie po ňom, a to je jediný detail, ktorý stojí za zopakovanie: pravidlo presadzované tým, že si naň niekto spomenie, je pravidlo bez exekútora — a presne tam tento článok začal.

## Pozri tiež

`the-readiness-that-belonged-to-yesterday` · `a-percentile-is-not-a-diagnosis` · `a-rule-without-an-executor` · `empty-is-not-zero` · `the-anonymiser-that-passed`
