Projekt Pizza dropper loops for at gøre AI-agenter stabile
Ved at gemme alle hændelser i en log i stedet for en variabel tilstand bliver det lettere at debugge og forgrene samtaler.
Læs i dit tempo
Kort
Projekt Pizza erstatter traditionelle loops (gentagne processer) med en log over alle hændelser. Dette gør systemet mere stabilt, da man undgår fejl ved afbrydelser eller komplekse tilstande (systemets hukommelse). Denne tilgang gør det muligt at spole tilbage i samtaler og styre dem mere fleksibelt.
Begynder
Mange agenter baseret på kunstig intelligens (AI-agenter) — som for eksempel Claude Code og Codex — fungerer som en gentagen cirkel, et såkaldt loop. Man kan forestille sig det som en kok, der følger en opskrift trin for trin. Selve AI-modellen er hjernen, mens loopet styrer processen. Her bruger man en »tilstand« (state), som er en slags huskeliste over, hvad der er sket indtil nu. Det virker fint i små demonstrationer, men i den virkelige verden skaber det problemer.
Hvis man pludselig afbryder processen, eller et værktøj fejler, bliver huskelisten ufuldstændig og usikker. Det bliver ekstra kompliceret, hvis flere værktøjer skal bruges på samme tid. Det er desuden umuligt at »spole tiden tilbage« for at finde fejl i en lang samtale, fordi man kun har det nuværende resultat og ikke hele historikken.
Projektet Pizza bruger en anden metode, hvor en log er den eneste sandhed. En log fungerer som en bankudskrift, hvor hver eneste besked, hvert værktøjskald og hver filrettelse bliver skrevet ned som en linje i en database, der kaldes en EventStore. Selve tilstanden er her ikke en separat huskeliste, men blot et øjebliksbillede af alt det, der står i loggen.
Systemet gemmer ikke informationen i sin aktive hukommelse. I stedet læser det slutningen af loggen, udfører den næste handling og skriver resultatet ind i loggen igen. Hver besked i samtalen er dermed en reel ændring af systemets tilstand. Det gør det nemt at bruge store sprogmodeller (LLM) til at læse loggen. Man kan endda starte en ny gren af samtalen ved at gå tilbage til et tidligere punkt i loggen og starte en ny tråd.
Vil du have, at jeg uddyber forskellen på en »huskeliste« og en »bankudskrift« i denne sammenhæng?

De fleste AI-agenter, herunder Claude Code og Codex, bruger den samme grundstruktur baseret på loops. Modellen fungerer som hjernen, mens et loop styrer processen og opdaterer en variabel tilstand (state). Denne model fungerer i demonstrationer, men skaber problemer i praksis.
Håndtering af afbrydelser og fejl bliver ofte til usikre løsninger. Hvis en bruger stopper processen, eller et værktøj fejler, efterlader det en ufuldstændig tilstand. Parallelle værktøjskald gør det yderligere komplekst at styre tilstanden, og det er umuligt at spole tilbage i en samtale for at debugge lange sessioner.
Projektet Pizza bruger en anden tilgang, hvor en log er den eneste kilde til sandhed. Tilstanden er her blot en projektion af loggen. Hver besked, hvert værktøjskald og hver filredigering gemmes som en række i en EventStore.
Runtime-miljøet holder ikke tilstanden i hukommelsen. Det læser slutningen af loggen, sender den næste hændelse til en handler og tilføjer resultatet til loggen igen. En tur i samtalen er dermed en tilstandsændring frem for blot en ny iteration i et loop.
Denne struktur gør det muligt at behandle brugerfladen og LLM-konteksten som simple forespørgsler i loggen. Forgrening af samtaler sker ved at starte et nyt thread_id fra et tidligere punkt i sekvensen.
Kilder
Produktionshistorie
- Radar Signal ? af 100 · spredning 1 kilder
- Vurdering Nyheds 5/5 — Teknisk diskussion om arkitektur for AI-agenter.
- Skrevet Model: mimo-v2.5-free · temperatur 0.4
- Overskrift 5 kandidater, valgt af chat.dk
- Vedtagelse Godkendt af Lars Louvre