Röviden: Az AI-kreditek majdnem egy éles adatbázis leállását okozták, mert egy autonóm ágens rekurzív ciklusokba került, nem hatékony lekérdezéseket generált, kimerítette a kapcsolati kapacitást, és hatékony korlátok nélkül skálázódott. A cikk amellett érvel, hogy a kedvezményes számítási kapacitás gyengítheti a mérnöki fegyelmet, ezért az AI és adatbázis közötti rendszereknek még az éles hozzáférés előtt elkülönített, csak olvasható replikákra, gateway-szintű rate limitre, determinisztikus lekérdezés-ellenőrzésre, emberi felülvizsgálatra, terheléses tesztelésre, monitorozásra és visszaállítási biztosítékokra van szükségük.

  • Egy rekurzív ágensciklus 150-ről 4500-ra növelte az adatbázis-kapcsolatok számát, és óránként mintegy 200 € számítási kapacitást emésztett fel.
  • Ötven párhuzamos ágensszál nagy, indexeletlen scaneket generált, amelyek súlyosan megterhelték az adatbázist és annak write-ahead logját.
  • Az ingyenes kreditek látszólagos elérhetősége miatt a csapat kihagyta a szokásos terheléses tesztelést és stresszelemzést.
  • Az AI-ágensek elkülönített, automatikusan skálázódó olvasási replikákat használjanak, ne író példányokat.
  • Javasolt biztosítékok: munkamenetenkénti lekérdezési korlátok, emberi felülvizsgálat 60 másodpercen belüli 50 lekérdezés után, és determinisztikus ellenőrzések a generált lekérdezések végrehajtása előtt.

Az AI-automatizálás drága része nem mindig a modell számlája. Hanem az, ami akkor történik, amikor egy gyors rendszert határok, felülvizsgálat és visszaállítási lehetőség nélkül engednek az éles adatok közelébe.

Egy Slack-csatornában sajátos csend támad, amikor egy éles adatbázis CPU-kihasználtsága eléri a 99%-ot, és ott is marad. Ez nem egy tétlen rendszer csendje; ez annak a mérnökcsapatnak a csendje, amely rájön, hogy az imént elfogadott „ingyen pénz” éppen szétszedi az infrastruktúráját. A legtöbben nem tudják, hogy az AI-kreditek gyakran magas kamatozású kölcsönt jelentenek a technikai adósságra, amelyet egy keddi hajnalon, háromkor hajtanak be.

Épp akkor kaptunk 10 000 € értékű felhőkredit-támogatást, hogy felgyorsítsuk belső LLM-eszközeink fejlesztését. Úgy éreztük, szabad kezet kaptunk a kísérletezéshez, költségvetési jóváhagyások nélkül. Egy autonóm ágenst építettünk, amely végigjárja belső dokumentációnkat, és összeveti az élő sémametaadatokkal, hogy segítsen a junior fejlesztőknek eligazodni a legacy rendszereinkben. Termelékenységnövelőnek szántuk. Ehelyett saját VPC-nkből indított elosztott szolgáltatásmegtagadási (DDoS) támadássá vált.

Valószínűleg azt hallotta, hogy az AI legnagyobb kockázata a hallucináció vagy az adatvédelem. Ezek a felsővezetés felszíni aggodalmai. Nekünk, akik kódot szállítunk, a valódi veszélyt a korlátlan végrehajtási ciklusok jelentik, amelyek akkor jönnek létre, amikor egy nem determinisztikus modell kezébe adjuk egy determinisztikus környezet kulcsait. Az adatainkat nem egy hacker miatt veszítettük majdnem el, hanem egy rekurzív ciklus miatt, amely óránként 200 € „ingyenes” számítási kapacitást égetett el, miközben térdre kényszerítette a Postgres-példányunkat.

A probléma egy egyszerű prompt engineering-mulasztással kezdődött. Egy új ágensalapú munkafolyamatot teszteltünk, amelyben a modell feladata az volt, hogy „keresse meg az összes árva táblát, és vesse össze az utolsó módosításuk időbélyegét”. Egy hagyományos szkriptben véges ciklust írunk. Egy ágenskeretrendszerben a modell dönti el, mikor végzett. Mivel a sémánk összetett volt – ez a szuperapp-adósság évei nyomán alakult így –, az AI logikai ciklusba ragadt. Folyamatosan „lehetséges” kapcsolatokat talált, új részfeladatokat indított az ellenőrzésükre, és minden részfeladat új kapcsolatot nyitott az adatbázishoz.

Negyven percen belül az ágens kimerítette a connection poolt. Mivel az „ingyenes” AI-számítási szolgáltatáson nem állítottunk be szigorú rate limitet, horizontálisan skálázódott, hogy kiszolgálja saját rekurzív logikájának „igényét”. Valós időben néztük, ahogy az adatbázis-kapcsolatok száma 150-ről 4500-ra ugrik, gyakorlatilag kizárva minden legitim felhasználót és szolgáltatást. Az irónia kézzelfogható volt: AI-robotpilótákat használtunk stratégiánk javítására, de elmulasztottuk bevezetni azokat az alapvető circuit breakereket, amelyeket bármely senior mérnök megkövetelne egy szokványos cron jobnál is.

Ez az AI-aranyláz rejtett költsége. Ha a számítási kapacitást ingyenesnek érzékeljük, a mérnöki fegyelem hajlamos lazulni. Már nem tekintünk a kódra tehertételként, hanem eldobható árucikként kezeljük. Figyelmen kívül hagytuk, hogy még ha az LLM-tokeneket fedezi is a támogatás, a menedzselt adatbázis IOPS-ára és memóriájára gyakorolt hatás nagyon is valós költség, amely az elsődleges felhőszámlánkon jelenik meg.

A végtelen sandbox tévhite

Ha ötjegyű összeget kap kreditben, ösztönösen növeli a párhuzamosságot. Látni szeretné, milyen gyorsan érkezhet meg az „új korszak”. Ágensünket 50 párhuzamos szálra konfiguráltuk, abban a hitben, hogy RDS-példányunk elbírja a terhelést. Nem számoltunk azonban az AI által generált lekérdezések nem determinisztikus természetével. Egy emberi fejlesztővel ellentétben, aki kiszámítható JOIN-t ír, az AI hatalmas, indexeletlen scaneket generált több millió soros táblákon.

Ez nem csupán teljesítményromlás volt; a write-ahead log (WAL) majdnem teljesen összeomlott. Az adatbázis annyi időt töltött a zárolások kezelésével és a beérkező AI-kérések ezrei közötti kontextusváltással, hogy abbahagyta az alkalmazásszervereink heartbeat-jeleinek feldolgozását. Három percre voltunk egy olyan adatbázis-failovertől, amely valószínűleg adatsérüléshez vezetett volna a folyamatban lévő, még nem véglegesített tranzakciók puszta mennyisége miatt.

Miért történik ez tapasztalt csapatokkal? Mert a prompt engineering az új szoftverfejlesztés, és még nem fejlesztettük ki azt az „orrot” a veszélyes promptokra, amely a rossz SQL-re már megvan. A promptot javaslatként kezeljük, de egy autonóm ágens számára ez parancs arra, hogy minden elérhető erőforrást felemésszen, amíg a cél nem teljesül. Ha a cél rosszul van meghatározva, a fogyasztás végtelen.

Sötét tónusú szerkesztőségi DataTip-illusztráció a következő cikkhez: 10 000 € AI-kredit majdnem egy éles adatbázisunkba került.

A csavar a történetben: a kreditek csak eltereltek a figyelmet

Túl későn jöttünk rá: a 10 000 € kredit pszichológiai kerülőútként működött a szokásos terheléses tesztelési és stresszelemzési protokolljaink megkerülésére. Ha ezeket a tokeneket az első naptól a működési költségvetésünkből fizettük volna, egyetlen szállal kezdtünk volna. Figyeltük volna a késleltetést. Építettünk volna egy proxyréteget, amely megtisztítja az AI lekérdezéseit, mielőtt azok elérik az éles környezetet. Az erőforrás „ingyenessége” arra csábított, hogy kihagyjuk a gondolkodás-első mérnöki szemléletet, amely cégünk filozófiáját meghatározza.

Annyira az „áttörésre” összpontosítottunk, hogy figyelmen kívül hagytuk az „összeomlást”. Ez gyakori minta a mai piacon. A cégek sietve próbálják megoldani a tudásadósság-válságot azzal, hogy AI-t zúdítanak az adatsilóikra, csak hogy aztán kiderüljön: a mögöttes infrastruktúrájuk nincs felkészülve az LLM-alapú alkalmazások puszta „bőbeszédűségére”. Egy AI-ágens nem egyszerűen olvassa az adatokat; kihallgatja őket, gyakran a lehető legkevésbé hatékony módon.

A circuit breakerek bevezetése

Az adatbázis megmentéséhez le kellett állítanunk az AI-workereket futtató teljes Kubernetes-névteret. Durva eszköz volt, de működött. Miután a por leülepedett, három megkerülhetetlen szabályt vezettünk be minden AI és adatbázis közötti interakcióra, amelyeket ma már minden ügyfelünknél alkalmazunk:

  1. A csak olvasható replika kötelezettsége: Egyetlen AI-ágens sem csatlakozhat író példányhoz, bármennyire „biztonságos” is. Elkülönített, automatikusan skálázódó olvasási replikákon futnak, ahol egy 100%-os CPU-csúcs nem viszi le a checkout folyamatot.
  2. Tokenalapú rate limit a gatewayen: Építettünk egy middleware-t, amely „ágensmunkamenetenként” számolja az adatbázis-hívásokat. Ha egy ágens 60 másodperces időablakban 50-nél több lekérdezést futtat, a munkamenetet leállítjuk, és emberi felülvizsgálatra jelöljük.
  3. A „Magyarázd, mielőtt végrehajtod” minta: Minden AI által generált lekérdezésnek a futtatás előtt át kell mennie egy determinisztikus parseren, amely ellenőrzi a hiányzó WHERE-feltételeket vagy az indexeletlen joinokat. Ha a lekérdezés teljes táblaszkennek tűnik, még azelőtt elutasítjuk, hogy elhagyná a gépet.

Jelenlegi „AI-stratégiájának” mekkora része épül arra a feltételezésre, hogy infrastruktúrája elbírja egy modell kiszámíthatatlan viselkedését? Ha nem építi ki ezeket a biztosítékokat, nem innovál; csak arra vár, hogy a kreditjei porig égessék a házát.

A krediteket továbbra is használjuk, de úgy bánunk velük, mint a nagyfeszültségű árammal. Erőteljesek, de komoly szigetelést igényelnek. Figyelmünket ismét a gondolkodás-első mérnöki szemléletre fordítottuk, és gondoskodunk róla, hogy minden AI-integrációt szigorú erőforrás-allokációs terv előzzön meg. A cél nem pusztán az AI szállítása, hanem olyan AI szállítása, amely után nem kell egy szerda reggel biztonsági mentésből visszaállítani a rendszert.


Végül a 10 000 € támogatás olcsó lecke volt. Néhány óra leállásba és jókora büszkeségbe került, de megóvott minket egy későbbi, jóval nagyobb katasztrófától. Az AI sokszorozó, de mindent megsokszoroz – az architekturális hibáit és a fegyelem hiányát is. Ha egy AI kezébe adja az adatbázisa kulcsait, előbb gondoskodjon róla, hogy ketrecet épített a motor köré.

Következő lépés

Használja ezt AI-automatizálási biztonsági ellenőrzőlistaként. Beszéljen a DataTippel.

Privacy Preference Center