Skip to main content
Der Befehl /goal legt eine Abschlussbedingung fest und Claude arbeitet darauf hin, ohne dass Sie jeden Schritt eingeben müssen. Nach jedem Turn überprüft ein kleines schnelles Modell, ob die Bedingung erfüllt ist. Falls das Modell urteilt, dass sie noch nicht erfüllt ist, startet Claude einen weiteren Turn, anstatt die Kontrolle an Sie zurückzugeben. Das Ziel wird automatisch gelöscht, sobald die Bedingung erfüllt ist, wenn das Modell urteilt, dass die Bedingung unmöglich zu erfüllen ist, oder wenn ein Turn bei einem Fehler fehlschlägt, den Sie beheben müssen. Verwenden Sie ein Ziel für umfangreiche Arbeiten mit einem überprüfbaren Endzustand:
  • Migration eines Moduls zu einer neuen API, bis jede Aufrufstelle kompiliert und Tests bestanden sind
  • Implementierung eines Design-Dokuments, bis alle Akzeptanzkriterien erfüllt sind
  • Aufteilung einer großen Datei in fokussierte Module, bis jedes unter einem Größenlimit liegt
  • Durcharbeitung einer gekennzeichneten Issue-Warteschlange, bis die Warteschlange leer ist

Vergleich zu anderen autonomen Workflows

Drei Ansätze halten die aktuelle Sitzung zwischen Eingaben aktiv. Wählen Sie basierend darauf, was den nächsten Turn starten sollte: /goal und ein Stop Hook werden beide nach jedem Turn ausgelöst. /goal ist eine Sitzungs-Verknüpfung: Sie geben eine Bedingung ein und sie ist nur für die aktuelle Sitzung aktiv. Ein Stop Hook befindet sich in Ihrer Einstellungsdatei, gilt für jede Sitzung in seinem Bereich und kann ein Skript für deterministische Überprüfungen oder eine Eingabe für modellbewertete Überprüfungen ausführen. Auto-Modus genehmigt von selbst Tool-Aufrufe innerhalb eines einzelnen Turns, startet aber keinen neuen. Claude stoppt, wenn es die Arbeit als erledigt einstuft. /goal fügt einen separaten Evaluator hinzu, der Ihre Bedingung nach jedem Turn überprüft, sodass die Fertigstellung von einem frischen Modell entschieden wird, anstatt von dem, das die Arbeit ausführt. Die beiden sind komplementär: Auto-Modus entfernt Pro-Tool-Eingaben und /goal entfernt Pro-Turn-Eingaben.
Die obigen Ansätze halten die aktuelle Sitzung aktiv. Sie können auch Arbeiten planen, die unabhängig von einer offenen Sitzung ausgeführt werden, z. B. nächtliche Tests oder morgendliche Triage. Siehe Planungsoptionen für Cloud-Routinen und Desktop-geplante Aufgaben.

/goal verwenden

Pro Sitzung kann ein Ziel aktiv sein. Der gleiche Befehl legt es fest, überprüft es und löscht es je nach Argument.

Ziel festlegen

Führen Sie /goal gefolgt von der Bedingung aus, die Sie erfüllt haben möchten. Wenn bereits ein Ziel aktiv ist, ersetzt das neue es.
Das Festlegen eines Ziels startet sofort einen Turn mit der Bedingung selbst als Direktive. Sie müssen keine separate Eingabe senden. Während das Ziel aktiv ist, zeigt ein ◎ /goal active Indikator, wie lange das Ziel bereits läuft. Ein Ziel ändert Ihren Berechtigungsmodus nicht. Um Goal-Turns unbeaufsichtigt ausführen zu lassen, führen Sie /goal im Auto-Modus aus. Im Manuellen Modus fragt Claude immer noch vor Tool-Aufrufen, die Ihre Einstellungen nicht bereits zulassen, wie z. B. der oben genannte Test-Befehl. Während das Ziel aktiv ist, zeigt das Transkript jeden Verdikt, das der Evaluator zurückgibt, und Sie können Ctrl+O drücken, um den Grund dahinter zu sehen. Die Statusansicht zeigt auch den neuesten Grund, damit Sie sehen können, worauf Claude als nächstes hinarbeitet.

Effektive Bedingung schreiben

Der Evaluator beurteilt Ihre Bedingung anhand dessen, was Claude im Gespräch dargelegt hat. Er führt Befehle nicht aus oder liest Dateien unabhängig, daher schreiben Sie die Bedingung als etwas, das Claudes eigene Ausgabe demonstrieren kann. „Alle Tests in test/auth bestanden” funktioniert, weil Claude die Tests ausführt und das Ergebnis im Transkript für den Evaluator zum Lesen landet. Eine Bedingung, die über viele Turns hinweg hält, hat normalerweise:
  • Einen messbaren Endzustand: ein Testergebnis, ein Build-Exit-Code, eine Dateianzahl, eine leere Warteschlange
  • Eine angegebene Überprüfung: wie Claude es beweisen sollte, z. B. „npm test beendet mit 0” oder „git status ist sauber”
  • Einschränkungen, die wichtig sind: alles, das sich auf dem Weg dorthin nicht ändern darf, z. B. „keine andere Testdatei wird geändert”
Die Bedingung kann bis zu 4.000 Zeichen lang sein. Um zu begrenzen, wie lange ein Ziel läuft, fügen Sie eine Turn- oder Zeitklausel in die Bedingung ein, z. B. or stop after 20 turns. Claude meldet den Fortschritt gegen diese Klausel jeden Turn und der Evaluator beurteilt sie aus dem Gespräch.

Status überprüfen

Führen Sie /goal ohne Argumente aus, um den aktuellen Zustand zu sehen.
Wenn ein Ziel aktiv ist, zeigt der Status:
  • Die Bedingung
  • Wie lange es läuft
  • Wie viele Turns evaluiert wurden
  • Die aktuelle Token-Ausgabe
  • Den neuesten Grund des Evaluators
Der Turn-Count und der neueste Grund werden nach der ersten Evaluierung angezeigt. Wenn kein Ziel aktiv ist, aber eines früher in der Sitzung erreicht wurde, zeigt der Status die erreichte Bedingung zusammen mit ihrer Dauer, Turnanzahl und Token-Ausgabe.

Ziel löschen

Führen Sie /goal clear aus, um ein aktives Ziel zu entfernen, bevor es sich auflöst.
Claude gibt Goal cleared: gefolgt von der Bedingung aus, um zu bestätigen, oder No goal set, wenn nichts aktiv war. stop, off, reset, none und cancel werden als Aliase für clear akzeptiert. Das Ausführen von /clear zum Starten eines neuen Gesprächs entfernt auch alle aktiven Ziele.

Mit aktivem Ziel fortfahren

Wenn Sie eine Sitzung fortsetzen, stellt Claude Code ein Ziel wieder her, das noch aktiv war, als die Sitzung endete. Claude Code stellt es auf jeder Fortsetzungsroute wieder her: --continue, --resume mit einer Sitzungs-ID, einem Namen oder einem Transkript-Dateipfad, und der Sitzungsauswahl. Vor v2.1.239 stellte Claude Code das Ziel auf jeder Route außer der claude --resume Auswahl wieder her. Claude Code übernimmt die Bedingung, setzt aber die Turnanzahl, den Timer und die Token-Ausgabe-Baseline zurück. Es stellt ein Ziel nicht wieder her, das bereits erreicht oder gelöscht wurde.

Nicht-interaktiv ausführen

/goal funktioniert im nicht-interaktiven Modus, in der Desktop-App und über Remote Control. Das Festlegen eines Ziels mit -p führt die Schleife in einem einzigen Aufruf bis zur Fertigstellung aus:
Mit der Standard-Textausgabe wird nichts gedruckt, bis die Ausführung endet, daher kann ein Ziel, das viele Turns läuft, stecken bleiben. Fügen Sie --output-format stream-json --verbose hinzu, um jede Nachricht auszugeben, während die Schleife läuft. Unterbrechen Sie den Prozess mit Ctrl+C, um ein nicht-interaktives Ziel zu stoppen, bevor es sich auflöst.

Wie Evaluierung funktioniert

/goal ist ein Wrapper um einen Sitzungs-Bereich prompt-basierten Stop Hook. Jedes Mal, wenn Claude einen Turn beendet, sendet Claude Code die Bedingung und das bisherige Gespräch an Ihr konfiguriertes kleines schnelles Modell, das standardmäßig Haiku auf der Claude API ist; bei einem Drittanbieter-Provider überprüfen Sie Ihre Provider-Seite für den Standard der Plattform. Das Modell gibt eines von drei Urteilen zurück, jeweils mit einem kurzen Grund:
  • Noch nicht erfüllt: Claude arbeitet weiter und nimmt den Grund als Anleitung für den nächsten Turn.
  • Erfüllt: Claude Code löscht das Ziel und zeichnet einen erreichten Eintrag im Transkript auf.
  • Unmöglich: Der Evaluator hat beurteilt, dass die Bedingung niemals erfüllt werden kann. Claude Code löscht das Ziel und zeichnet einen fehlgeschlagenen Eintrag im Transkript zusammen mit dem Grund auf. Sie müssen es nicht selbst löschen.
Wenn Claude weiterhin den Evaluator beantwortet, ohne Fortschritt zu machen (keine Tool-Nutzung für mehrere Turns hintereinander), stoppt Claude Code die Schleife, gibt eine Warnung aus und gibt die Kontrolle an Sie zurück, wobei das Ziel noch gesetzt ist. Die Evaluierung wird nach Ihrer nächsten Eingabeaufforderung fortgesetzt. Der Hooks-Leitfaden erklärt den zugrunde liegenden Mechanismus.

Wenn ein Turn fehlschlägt

Wenn ein Turn fehlschlägt, löscht Claude Code das Ziel, wenn der Fehler einer ist, den Sie beheben müssen. Nach jedem anderen Fehler bleibt das Ziel gesetzt.

Fehler, die Sie beheben müssen, löschen das Ziel

Wenn ein Turn bei einem Fehler fehlschlägt, der nicht gelöscht wird, bis Sie ihn beheben, löscht Claude Code das Ziel und gibt eine Warnung aus, die die Ursache benennt. Die Warnung beginnt mit Goal cleared after an unrecoverable error und endet mit Run /goal again to continue. Beheben Sie die Ursache, dann setzen Sie das Ziel erneut mit /goal <condition>. Vier Arten von Fehlern löschen das Ziel:
  • Ein Authentifizierungsfehler, wenn Claude Code seine eigenen Anmeldedaten verwaltet. Wenn ein Host diese für Sie verwaltet, z. B. die Desktop-App, die VS Code-Erweiterung oder eine Cloud-Sitzung, behält Claude Code das Ziel aktiv, da der Host den Zugriff selbst wiederherstellt.
  • Ein erschöpfter Guthabensaldo
  • Ein Kontext-Overflow, den Auto-Komprimierung nicht löschen konnte
  • Ein Modell, das nicht verfügbar ist

Andere Fehler wiederholen oder pausieren das Ziel

Nach jedem anderen Fehler bleibt das Ziel gesetzt. In einer interaktiven Sitzung auf Claude Code v2.1.269 oder später gibt Claude Code auch eine Zeile aus, die die Ursache benennt, und wiederholt entweder automatisch oder wartet auf Sie:
  • Wiederholung: Nach einem Fehler, der dazu neigt, sich selbst zu beheben, z. B. ein überladener Server oder eine unterbrochene Verbindung, zeigt eine Mitteilung, die mit Goal still active beginnt, die Wartezeit vor dem nächsten Versuch. Nach drei automatischen Wiederholungen wird das Ziel stattdessen pausiert.
  • Pause: Nach einem Fehler, den eine Wiederholung nur wiederholen würde, z. B. ein API-Ratenlimit, ein claude.ai Nutzungslimit oder ein Hook, der den Turn beendet hat, zeigt eine Mitteilung, die mit Goal paused beginnt, die Ursache. Wenn die Sitzung wartet, um automatisch fortzufahren, wenn ein Nutzungslimit zurückgesetzt wird, setzt Claude die Arbeit zum Ziel dann fort.
Senden Sie jederzeit eine Nachricht, um den nächsten Turn sofort zu starten. Um automatische Wiederholungen auszuschalten, setzen Sie CLAUDE_CODE_GOAL_CHECKIN_MINUTES auf 0, was auch Überprüfungen ausschaltet.

Hintergrundarbeit verschiebt die Evaluierung

Wenn ein Subagent oder ein Hintergrund-Shell-Befehl noch läuft, wenn ein Turn endet, überspringt Claude Code die Evaluierung für diesen Turn. Es evaluiert am Ende des nächsten Turns, der ohne laufende Hintergrundarbeit endet. Wenn die Hintergrundarbeit endet, liefert Claude Code das Ergebnis an Claude als neuen Turn, sodass Sie nicht auffordern müssen. Sobald die Hintergrundarbeit das Ziel 30 Minuten lang wartet, ist eine Überprüfung fällig. Bei der Überprüfung listet Claude Code die laufenden Aufgaben auf und fordert Claude auf, ihre Ausgabe zu lesen, zu warten, wenn sie Fortschritt machen, und alle zu beheben oder zu stoppen, die steckengeblieben sind. Nach der ersten Überprüfung wartet Claude Code zweimal so lange vor jeder späteren Überprüfung, bis zu viermal das erste Intervall: mit dem Standard, 1 Stunde nach der ersten Überprüfung, dann alle 2 Stunden. Claude Code liefert eine fällige Überprüfung, die erste eingeschlossen, auf eine von zwei Arten:
  • Wenn ein Turn endet: Claude Code liefert die Überprüfung am Ende des nächsten Turns, der mit der noch laufenden Arbeit endet. In einer nicht-interaktiven Sitzung, z. B. einer, die mit -p gestartet wurde, ist dies die einzige Möglichkeit, wie Claude Code Überprüfungen liefert.
  • Während die Sitzung untätig ist: In einer interaktiven Sitzung startet Claude Code auch einen Turn selbst, um die Überprüfung zu liefern, anstatt auf Ihre nächste Eingabeaufforderung zu warten. Wenn die Hintergrundarbeit ohne Ergebnis gestoppt hat, fordert Claude Code Claude auf, zum Ziel zu arbeiten. Claude Code startet höchstens drei untätige Überprüfungen pro Ziel zwischen Ihren Eingabeaufforderungen. Bei der dritten untätigen Überprüfung sagt Claude Code, dass untätige Überprüfungen pausiert sind, bis Sie eine weitere Eingabeaufforderung senden. Vor v2.1.246 waren untätige Überprüfungen unbegrenzt. Untätige Überprüfungen erfordern Claude Code v2.1.236 oder später.
Vor v2.1.239 wurden nur untätige Überprüfungen auf diese Weise zurückgefahren; eine Überprüfung, die am Ende eines Turns geliefert wurde, wiederholte sich beim ersten Intervall. Um das erste Intervall zu ändern, setzen Sie CLAUDE_CODE_GOAL_CHECKIN_MINUTES. Claude Code verwendet Ihren Wert anstelle des 30-Minuten-Intervalls und skaliert die späteren Intervalle damit. Setzen Sie es auf 0, um Überprüfungen und automatische Wiederholungen auszuschalten. Überprüfungen erfordern Claude Code v2.1.234 oder später.

Evaluierungsmodell und Kosten

Um auf einem anderen Modell zu evaluieren, setzen Sie ANTHROPIC_DEFAULT_HAIKU_MODEL.
Claude Code liest ANTHROPIC_DEFAULT_HAIKU_MODEL überall dort, wo es das kleine schnelle Modell verwendet, nicht nur für die /goal-Evaluierung. Wenn Sie es setzen, löst Claude Code auch den haiku-Alias zu diesem Modell auf und führt Hintergrundfunktionalität, wie Gesprächszusammenfassung, darauf aus.
Der Evaluator läuft auf dem Provider, für den Ihre Sitzung konfiguriert ist. Er ruft keine Tools auf, daher kann er nur beurteilen, was Claude bereits im Gespräch dargelegt hat.
Evaluierungs-Token werden auf dem kleinen schnellen Modell abgerechnet, das für Ihren Provider konfiguriert ist, und sind normalerweise vernachlässigbar im Vergleich zur Hauptausgabe.

Anforderungen

Claude Code stellt /goal unter der gleichen Arbeitsbereichs-Vertrauensregel wie Hooks in Einstellungsdateien zur Verfügung, da der Evaluator Teil des Hooks-Systems ist. /goal ist auch nicht verfügbar, wenn disableAllHooks nach Anwendung der Einstellungspriorität true ist, oder wenn allowManagedHooksOnly in verwalteten Einstellungen festgelegt ist. In jedem Fall teilt Ihnen der Befehl mit, warum, anstatt stillschweigend nichts zu tun.

Siehe auch

  • Eingabe wiederholt mit /loop ausführen: auf einem Zeitintervall erneut ausführen, anstatt bis eine Bedingung erfüllt ist
  • Prompt-basierte Hooks: schreiben Sie Ihren eigenen Stop Hook, wenn Sie benutzerdefinierte Evaluierungslogik benötigen
  • Auto-Modus: genehmigen Sie Tool-Aufrufe automatisch, damit jeder Ziel-Turn unbeaufsichtigt läuft
  • Planungsvergleich: führen Sie Arbeiten unabhängig von einer offenen Sitzung nach einem Zeitplan aus