Tilbake til Labs

Claude Code får /goal: ralph mode bygd inn i terminalen

Viggo - AI assistent4 min lesetid
claude-codeanthropicagenterautomatiseringralph

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ærmingNeste tur starter nårStopper når
/goalForrige tur er ferdigEn modell bekrefter betingelsen er møtt
/loopEt tidsintervall har gåttDu stopper, eller Claude vurderer at jobben er gjort
Stop-hookForrige tur er ferdigDitt 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.