TL;DR
Claude Code har fått en innebygd /goal-kommando som setter en sluttbetingelse og lar modellen kjøre tur etter tur til betingelsen er innfridd. Etter hver tur evaluerer en liten, rask modell (Haiku som standard) om målet er nådd, og enten stopper kjøringen eller gir Claude en grunn til å fortsette. OpenAI Codex slapp tilsvarende funksjon noen dager tidligere.
Hva er "ralph mode"? Et begrep som har vokst frem i AI-engineering-miljøet for løkker der en agent jobber autonomt mot et mål uten å spørre om lov mellom hver tur. Tidligere måtte du sette opp /loop, en Stop-hook, eller eksterne skript for å få det. Nå er det én kommando.
Slik bruker du det
Kommandoen tar selve betingelsen som argument og starter en tur umiddelbart:
/goal alle tester i test/auth består og lint er ren
Mens målet er aktivt vises en indikator (◎ /goal active) med varighet. Du kan sjekke status uten argumenter, og rydde med /goal clear. Aksepterte aliaser er stop, off, reset, none og cancel. /clear nullstiller også målet.
Hvordan skrive en god betingelse
Evaluator-modellen leser bare det som faktisk har dukket opp i samtalen. Den kjører ikke kommandoer eller leser filer selv. Det betyr at betingelsen må kunne bevises i transkriptet:
- Én målbar slutt-tilstand — et testresultat, en exit-kode, et filtall, en tom kø
- En oppgitt sjekk — hvordan Claude skal vise det ("npm test exits 0", "git status er ren")
- Begrensninger som teller — det som ikke skal endres underveis
Limit er 4 000 tegn. Du kan også gi et tak på antall turer i selve betingelsen, for eksempel ...eller stopp etter 20 turer.
Når dette gir mening
Anthropic peker selv på fire klassiske bruksområder:
- Migrere en modul til ny API til alle kallsteder kompilerer og testene består
- Implementere et designdokument til alle akseptkriterier holder
- Splitte en stor fil i fokuserte moduler til hver er under et størrelsesbudsjett
- Jobbe gjennom en merkelapp i issue-køen til den er tom
Felles nevner: en verifiserbar slutt-tilstand modellen selv kan demonstrere.
/goal vs /loop vs Stop-hook
Alle tre holder sesjonen i gang mellom turer, men trigger og stopp er ulike:
| Tilnærming | Neste tur starter når | Stopper når |
|---|---|---|
| /goal | Forrige tur er ferdig | En modell bekrefter betingelsen er møtt |
| /loop | Et tidsintervall har gått | Du stopper, eller Claude vurderer at jobben er gjort |
| Stop-hook | Forrige tur er ferdig | Ditt eget skript eller prompt avgjør |
/goal er sesjons-scoped — du setter den for én sesjon, ikke globalt. En Stop-hook ligger i settings-filen din og virker på alle sesjoner i sin scope. Auto mode er noe annet igjen: det godkjenner verktøykall innenfor én tur, men starter ikke en ny.
OpenAI Codex kom først
Dager før Anthropic lanserte sin /goal, slapp OpenAI samme grep i Codex CLI. Samme syntaks (/goal), samme mønster: ett objektiv, én sluttbetingelse, kjør til den holder. Codex anbefaler eksplisitt bruk til migreringer, refaktor og prototyper.
Det er ikke en tilfeldighet at de to ledende kode-CLI-ene konvergerer på samme primitiv samtidig. Den autonome løkken med ekstern verifisering er i ferd med å bli et standard byggekloss for kodeagenter, ikke noe du må lime sammen selv.
Praktisk for Velo-prosjekter
Vi har brukt /loop og Stop-hooks i en del prosjekter når vi ville at en agent skulle holde det gående. /goal er enklere å forklare til en kunde: du skriver hva som må være sant, agenten jobber til det er sant. Spesielt nyttig for ryddejobber, migrasjoner og kø-arbeid — alt der målet kan formuleres som en betingelse fremfor en oppskrift.
Takeaway: Sluttbetingelsen er produktet. Skriv den slik at evaluator-modellen kan bevise den fra transkriptet, og du har en agent som vet når den er ferdig.