Lassen Sie den Agenten seinen eigenen Fortschritt verwalten
„Der Agent kann seinen eigenen Fortschritt verfolgen – und ich kann ihn sehen.“ Lassen Sie das Modell seine eigene Liste erstellen und verwenden Sie dann einen kleinen Mechanismus, um es daran zu erinnern, die Liste zu aktualisieren.
Strukturierte Selbstplanung
Claude Code muss bei der Arbeit oft mehrere Schritte ausführen: grep, um Referenzen zu finden → ein paar Dateien lesen → den Code ändern → Tests ausführen. Wenn Sie das Modell „nach Gefühl voranschreiten“ lassen, werden Sie feststellen, dass es in den ersten paar Schritten gut zurechtkommt, dann in der Mitte anfängt zu vergessen und schließlich auf halbem Weg aufgibt.
Die Lösung für s03 besteht darin, ihm ein Manifest-Tool zu geben: Das Modell passt sein eigenes todo-Tool an, um Aufgabenelemente hineinzustopfen, und TodoManager überprüft die Struktur, bleibt bestehen und gibt die aktuelle Ansicht zurück. Dies hat zwei Vorteile:
- Das Modell ist gezwungen, zu erklären, „was zu tun ist“ – allein das Aufschreiben hilft ihm, seine Denkweise zu klären.
- Menschen können sehen, was es denkt. Das Debugging-Erlebnis ist zehnmal besser.
# TODO-Ansicht, jedes Element ist strukturiert [ ] #1: grep „TODO“ über src/ [>] #2: src/app.py lesen und Kommentare auflisten # in Bearbeitung [ ] #3: Zusammenfassenden Markdown generieren [ ] #4: In TODO_LIST.md schreiben (0/4 abgeschlossen)
Eine strenge Regel: Es gibt jeweils nur einen in_progress
TodoManager.update() Es gibt eine Prüfung:
if in_progress_count > 1: raise ValueError("Es kann immer nur eine Aufgabe gleichzeitig ausgeführt werden")
Es mag hart erscheinen, aber es hilft dem Modell tatsächlich. Wenn Sie 3 „Tätigkeiten“ gleichzeitig zulassen, wird es überall zu kämpfen beginnen und keines davon beenden. Erzwungener Fortschritt in einer einzelnen Mission, es ist erzwungen, jede Mission abzuschließen, bevor die nächste geöffnet wird.
Mit dem Widget unten können Sie als Modell fungieren, verschiedene Aufgaben-Nutzdaten einreichen und sehen, welche die Überprüfung bestehen und welche abgelehnt werden.
Nörgler-Erinnerung: Keine Updates für 3 aufeinanderfolgende Runden? stupse es an
Selbst wenn das Todo-Tool vorhanden ist, „vergisst“ das Modell gelegentlich, die Liste zu aktualisieren – es hat viele Dinge getan, aber in_progress bleibt immer noch in Punkt 2 hängen. Der Umzug in s03 ist ein sehr einfacher Zähler:
rounds_since_todo = 0 while True: Antwort = LLM (Nachrichten, Tools) ... used_todo = any(b.name == "todo" for b in tool_uses) Rounds_since_todo = 0 if used_todo else Rounds_since_todo + 1 ifrounds_since_todo >= 3: results.append({"type":"text", "text":"<reminder>Aktualisieren Sie Ihre Aufgaben.</reminder>"})
Wenn die Zahl 3 erreicht, fügen Sie eine Erinnerung in die nächste Runde von Benutzernachrichten ein. Wenn das Modell es sieht, passt es die Aufgabe instinktiv an. Dabei geht es darum, mit technischen Mitteln einen weichen Zwang („Bitte halten Sie ihn auf dem Laufenden“) in einen erzwungenen Reiz umzuwandeln.
Wie heißt diese Routine?
In Kreisen des Agentendesigns wird dies als strukturierte Selbstplanung mit sanften Anstößen bezeichnet – sie geben dem Modell einen strukturierten Zustand, in den es schreiben muss, ergänzt durch opportunistische Erinnerungen. Claude Code verwendet ein ähnliches Muster in echtem Code, jedoch zurückhaltender (geringe Häufigkeit, neutrale Formulierung).
Warum schreiben Sie nicht einfach „Update todo at every step“ in die Systemeingabeaufforderung? Schreiben ist möglich, aber die Gehorsamsfähigkeit des Modells gegenüber den allgemeinen Anweisungen in der Systemaufforderung nimmt mit zunehmender Dauer des Gesprächs ab. Die Aufteilung der Anweisungen in „Erinnerungen, die ständig neu eingefügt werden“ ist viel stabiler.