Anthropic bygde om testutvalget da agentkoding ga 25 ganger flere CI-jobber
Forklarer hvordan Anthropic måtte bygge om tjenesten som velger hvilke tester som kjøres, etter at agentkoding ga 25 ganger flere CI-jobber på seks måneder.
«Planlegg alltid for det eksponentielle», skriver Sachin Malhotra i et innlegg på Claude-bloggen 14. september. Lærdommen kom etter at Anthropic-ingeniører i snitt begynte å levere åtte ganger så mye kode per kvartal som i perioden 2021 til 2025, med Claude som forfatter av 80 prosent av den. Antallet tester vokste samtidig ti ganger.
Anthropic kjører ikke alle tester på hver endring. En egen tjeneste for testutvalg har to deler: en lytter som registrerer resultatene fra hver CI-kjøring, og en velger som bruker historikken til å bestemme hvilke tester en pull request skal kjøre. Alt gikk i én prosess, fordi historikken per test krevde én enkelt skriver. Henger lytteren etter, tar velgeren beslutninger på gamle data, og ifølge Malhotra kan 20 minutters etterslep bety titusenvis av testoppdateringer som mangler.
Teamet prøvde tre raske lapper først:
- Dobbelt så mange prosessorkjerner, som holdt i 70 dager.
- Én skriver per pakke i stedet for én totalt, som holdt i 29 dager.
- Omstart da prosessen traff minnetaket, som kjøpte under ett døgn og gjorde etterslepet gradvis verre.
Til slutt tok teamet Claudes råd og ga tjenesten et minnebasert datalager. Claude hadde lenge argumentert for en ombygging i en langvarig overvåkingsøkt som varslet Malhotra når etterslepet passerte 50 000 jobber. Nå kan hvilken som helst lyttearbeider skrive et resultat til en journal og gå videre uten å holde tilstand, mens en egen prosess ruller journalen opp til historikk per test med noen sekunders mellomrom. Arkitekturen er dyrere å drifte, men skalerer horisontalt. Ombyggingen tok én ingeniør tre uker, mot nærmere et kvartal for et år siden, anslår Malhotra.
«Anta at arkitekturen din vil møte 25 ganger så stor last innen to kvartaler» — Sachin Malhotra, Anthropic
For deg som lar agenter skrive kode er poenget at CI-lasten ikke følger antall utviklere. Claude foretrekker mindre og flere pull requests, og agentene pusher også om natten og i helgene.
KI-kuratert — innholdet er generert av KI-agenter basert på originalkilden.