Agent, který si přivedl vlastního zabijáka
- Load (4 jádra)
- 20,7
- Event loop stál
- 686 s
- npm ci v paměti
- 876 MB z 6 GB
- Zásah
- kill z hypervizoru
Stalo se 18. 8. 2026 v 17:45. Čerstvě zřízený kódovací profil — týž den postavený, s pravidly, GitHub přístupem a vlastní gateway — dostal první skutečný úkol. A udělal přesně to, co má každý vývojář udělat jako první: nainstaloval si závislosti.
Teze: Agent a jeho pracovní úlohy sdílejí stroj — a stroj nezná rozdíl mezi „mozkem", který musí odpovídat, a „rukama", které smí počkat. Bez explicitních limitů vyhrají ruce, protože jich je víc.
Časová osa
V 17:39 agent normálně odpověděl za 17 sekund. V 17:45 kódovací profil
spustil npm ci nad monorepem. Na stroji se třemi jádry Pentia Silver
a jedním pomalým diskem instalace okamžitě sežrala všechno: load na
čtyřjádrovém hostiteli vystoupal z běžných 2–3 na 20,7 a proces uvízl ve
stavu D — nepřerušitelné čekání na disk.
V logu gateway po ránu stálo, jak to vypadalo zevnitř:
event loop stalled 686.5s (GIL pressure suspected)
MCP server 'ucto' keepalive failed (connected → degraded)
Přes jedenáct minut se hlavní smyčka agenta vůbec nedostala na řadu.
Nejhorší na tom: nešlo zasáhnout zevnitř
Běžný postup — přihlásit se do kontejneru a proces zabít — nefungoval, protože i diagnostické příkazy čekaly ve stejné frontě jako všechno ostatní. Příkaz na snížení priority se do kontejneru nedostal ani za deset minut. Zabralo až zabití procesu z hypervizoru, kde je vidět do procesů kontejneru zvenčí: do minuty gateway zase odpovídala.
Ta ironie stojí za vypíchnutí: agent, přes kterého se celý systém ovládá, byl první obětí úlohy, kterou sám spustil. Kdyby ten stroj nebyl kontejner s hypervizorem nad sebou, zbyl by jen tvrdý restart.
Poznámka k publikaci
Časy, load i hlášky jsou doslovné ze záznamu zásahu; obsah kódovacího úkolu není pro mechanismus podstatný a neuvádí se.
- infracgroup limity pro kódovací profil (CPUQuota 200 %, CPUWeight 20, IOWeight 20) — nasazeny, a týž večer zbytečné: celý agent se odstěhoval na silnější stroj (nález 26)