Ett möte den 28 juli och en siffra ingen ville ha
Den 28 juli informerade seniora Amazon-ingenjörer sina kollegor om vad som hänt med en rad interna AI-projekt. Financial Times rapporterade innehållet. Ett projekt hade använt Anthropics Claude Sonnet för att matcha författaruppgifter mot poster i näthandeln. Det lade 1,8 miljoner dollar. Det gick 860 procent över budget. Det körde fem månader innan någon fångade det, och det gick aldrig i drift. Ett team beskrev mönstret som katastrofalt dyrt.
Två mindre fall följde med. Ett verktyg för finansiell granskning sköt över med omkring 541 000 dollar. Ett logistikprojekt hamnade cirka 134 000 dollar över plan. En senior Amazon-anställd sammanfattade grundproblemet för FT i en mening: det är svårt att lista ut vad något AI-relaterat kostar. Amazon svarar att bolaget experimenterar, lär sig och förbättrar hur tekniken används, kallar exemplen körsbärsplockade och inför obligatorisk kollegial granskning samt utgiftstak på AI-projekt.
Börja med räkneövningen, för ingen publicerade den. Om 1,8 miljoner dollar är ett överskridande på 860 procent låg den godkända budgeten kring 190 000 dollar. Det är siffran en kontroll borde ha försvarat.
Två månader tidigare bar samma misstag en annan kostym
Den 29 maj stängde Amazon KiroRank, en intern topplista på utvecklarplattformen Kiro som rangordnade personal efter förbrukade AI-token. Den hade satts upp för att driva på användningen. Det den drev på var en praktik som personalen kallade tokenmaxxing: att rikta agenter mot arbete ingen behövde, så att placeringen rörde sig. Dave Treadwell, senior vice president, skrev till personalen i ett memo att listan byggts med goda avsikter och bad folk att inte använda AI bara för att använda AI.
Läs de två episoderna som en. I maj belönade Amazon förbrukning och fick förbrukning. I juli upptäckte bolaget förbrukning som ingen godkänt och ingen läst. Topplistan och det skenande jobbet är inte separata disciplinbrister; det är samma lucka, nämligen att en mätare gick och det saknades en vana att läsa av den.
Instruktionen ligger i ersättningen, inte i stängningen. Amazon raderade inte bara listan. Bolaget ersatte måttet med normaliserade utrullningar, som räknar AI-assisterad kod som faktiskt går i drift.
Varför ett debiterat misslyckande förblir osynligt
Vanlig programvara meddelar sina egna fel. En trasig loop tömmer minnet och processen dör, en sida går i timeout, ett larm går och någon väcks klockan tre på natten. Ett felkonfigurerat modellanrop gör inget av det. Det lyckas. Det returnerar ett svar, debiterar token och kör ett varv till. Det finns ingen krasch att upptäcka, för sett från plattformen gick inget fel, och det är exakt det tillstånd där fem månader kan passera.
Tre saker sträcker sedan ut upptäcktsfönstret. Faktureringen är månadsvis, så ekonomifunktionen ser formen på ett problem veckor efter utgiften, och ser den aggregerad. Priset är per token, så kostnaden skalar med volym i stället för med antal instanser, och det senare är den axel merparten av infrastrukturövervakningen byggts för. Och agenter mångdubblar token, eftersom en agentisk loop gör många modellanrop där ett chattgränssnitt gör ett.
För en europeisk operatör är följden densamma oavsett region: mätaren går i molnkontot, fakturan kommer i månadsrytm, och inget däremellan berättar att jobbet slutade vara nyttigt i mars.
Kontrollerna fanns och var inte påslagna
Detta är den obekväma delen av historien, och skälet till att den hör hemma i en beslutsspalt snarare än en teknikspalt. Motmedlen fanns på plattformen hela tiden. AWS publicerar batchinferens till halva tokenpriset jämfört med vid behov för arbete som inte kräver omedelbart svar, vilket är exakt profilen för en fem månader lång matchning i bakgrunden. Det erbjuds promptcachning så att en upprepad kontext inte betalas till full taxa vid varje anrop. Det erbjuds billigare modellnivåer och routning mellan dem. Inget av detta är exotiskt och inget krävde en förhandling.
Ett jobb som körde fem månader utan att ett svar behövdes brådskande är läroboksexemplet på batchlast. Att köra det vid behov är inte ett tekniskt misslyckande, det är ett beslut ingen ombads fatta, eftersom den som konfigurerade jobbet inte var den som såg fakturan.
Konstruera mot den separationen. Den som kan starta ett debiterat jobb bör se dess löpande kostnad i samma gränssnitt där jobbet startas.
Fyra kontroller innan din nästa agent går i drift
Sätt ett hårt tak per jobb, inte per konto. Ett budgetlarm på kontonivå berättar att summan rörde sig; det berättar inte vilket jobb som rörde den, och när ett kontobudgetlarm löser ut har de fem månaderna redan gått. För det andra, kräv vid godkännandet ett uttryckligt svar på en fråga: måste detta besvaras nu? Är svaret nej är det en batchlast och bör prissättas som en.
För det tredje, sätt ett utgångsdatum på varje långkörande jobb. En matchningsuppgift som gått sedan mars borde ha krävt att en människa förnyade den i april. För det fjärde, mät resultatet. Om ett projekts poäng är det AI-assisterade arbete som gick i drift, då får en utrullning som aldrig gick i drift noll oavsett hur många token den förbrukade, och den hade dykt upp vid den första månadsgenomgången i stället för den femte.
Läs vidare: Amazon skär ned AGI-teamet i ett 200-miljardersår | Era människokontrollerade data var redan halvt maskin



