Wir alle tun dies auf natürliche Weise und regelmäßig. In unserem Privatleben führen wir oft To-Do-Pay attention, um Urlaub, Besorgungen und alles dazwischen zu organisieren.
Bei der Arbeit verlassen wir uns auf Aufgabenverfolgung und Projektpläne, um die Groups auf dem Laufenden zu halten. Für Entwickler ist es auch üblich, zu gehen TODO Kommentare im Code als Erinnerung für zukünftige Änderungen.
Es überrascht nicht, dass LLM-Agenten auch von klaren To-Do-Pay attention profitieren, die ihnen bei ihrer Planung helfen.
To-Do-Pay attention helfen Agenten dabei, komplexe Aufgaben effektiver zu planen und zu verfolgen, was sie besonders nützlich für die Koordination mehrerer Instruments und langwierige Vorgänge macht, bei denen der Fortschritt sichtbar sein muss.
Codierungsagenten mögen OpenAI-Codex, ClineUnd Claude Code (die ich regelmäßig verwende) sind Paradebeispiele für dieses Konzept.
Sie unterteilen komplexe Anfragen in eine erste Reihe von Schritten, organisieren sie als To-Do-Liste mit Abhängigkeiten und aktualisieren den Plan in Echtzeit, wenn Aufgaben erledigt sind oder neue Informationen auftauchen.

Diese Klarheit ermöglicht es Agenten, lange Aktionssequenzen zu bewältigen, sich über verschiedene Instruments hinweg zu koordinieren und den Fortschritt auf verständliche Weise zu verfolgen.
In diesem Artikel befassen wir uns damit, wie Agenten Aufgabenlistenfunktionen nutzen, analysieren die zugrunde liegenden Komponenten des Planungsprozesses und demonstrieren dessen Implementierung mit LangChain.
Inhalt
(1) Beispielszenario für Planning Agent
(2) Schlüsselkomponenten der To-Do-Fähigkeiten
(3) Füge es in einer Middleware zusammen
Der zugehörige Code ist verfügbar in dieses GitHub-Repo.
(1) Beispielszenario für Planning Agent
Schauen wir uns das Beispielszenario an, um unsere exemplarische Vorgehensweise zu verankern.
Wir werden eine einrichten Einzelagent um eine Reiseroute zu planen und die Buchungsaufgaben auszuführen. Der Agent hat Zugriff auf:
In diesem Beispiel sind diese Instruments simuliert und führen keine echten Buchungen durch; Sie werden eingefügt, um die Planungslogik des Agenten und die Verwendung von To-Do-Pay attention zu veranschaulichen.
Hier ist der Code zur Implementierung unseres Planungsagent in LangChain:
Wir geben eine Benutzeranfrage ein und sehen uns die To-Do-Liste an, die sich aus der Planung des Agenten ergibt:

Durch die Verwendung strukturierter Notizen über To-Do-Pay attention können Agenten ein persistentes Gedächtnis außerhalb des Kontextfensters aufrechterhalten. Diese Strategie verbessert die Fähigkeit eines Agenten, relevanten Kontext im Laufe der Zeit zu verwalten und beizubehalten.
Die Code-Einrichtung ist unkompliziert: create_agent Erstellt die LLM-Agenteninstanz, wir übergeben die Systemeingabeaufforderung und wählen das Modell aus (GPT-5.1) und verknüpfen Sie die Instruments.
Bemerkenswert ist die TodoListMiddleware() Objekt, das an übergeben wird middleware Parameter.
Erstens: Was ist LangChain? Middleware?
Wie der Identify schon sagt, handelt es sich um eine mittlere Ebene, mit der Sie benutzerdefinierten Code vor und nach LLM-Aufrufen ausführen können.
Stellen Sie sich Middleware als eine programmierbare Ebene vor, die es uns ermöglicht, Code einzufügen, um sein Verhalten zu überwachen, anzupassen oder zu erweitern.
Es gibt uns Kontrolle und Transparenz über das Verhalten von Agenten, ohne ihre Kernlogik zu ändern. Es kann verwendet werden, um Eingabeaufforderungen und Ausgaben umzuwandeln, Wiederholungsversuche oder vorzeitige Beendigungen zu verwalten und Schutzmaßnahmen anzuwenden (z. B. Leitplanken, PII-Prüfungen).
TodoListMiddleware ist eine integrierte Middleware, die Agenten speziell Funktionen zur Verwaltung von Aufgabenlisten bietet. Als nächstes untersuchen wir, wie die TodoListMiddleware funktioniert unter der Haube.
(2) Schlüsselkomponenten der To-Do-Fähigkeiten
Die Verwaltungsfunktionen für To-Do-Pay attention eines Planungsagenten laufen darauf hinaus vier Schlüsselkomponenten:
- Zu erledigendes Aufgabenelement
- Liste der zu erledigenden Aufgaben
- Ein Software, das die To-Do-Liste schreibt und aktualisiert
- Zu erledigendes System-Immediate-Replace
Der TodoListMiddleware führt diese Elemente zusammen, um die Aufgabenlistenfunktionen eines Agenten zu ermöglichen.
Schauen wir uns die einzelnen Komponenten und ihre Implementierung im genauer an To-Do-Middleware-Code.
(2.1) Zu erledigender Aufgabenpunkt
Ein To-do-Eintrag ist die kleinste Einheit in einer To-do-Liste und stellt eine einzelne Aufgabe dar. Es wird durch zwei Felder dargestellt: Aufgabenbeschreibung und aktueller Standing.
In LangChain wird dies als modelliert Todo Typ, definiert mit TypedDict:
Der content material Das Feld stellt die Beschreibung der Aufgabe dar, die der Agent als Nächstes ausführen muss, während das standing verfolgt, ob die Aufgabe nicht gestartet wurde (pending), in Bearbeitung (in_progress) oder fertig (accomplished).
Hier ist ein Beispiel für einen To-do-Eintrag:
{
"content material": "Examine flight choices from Singapore to Tokyo",
"standing": "accomplished"
},
(2.2) Liste der Aufgaben
Nachdem wir nun die Struktur von a definiert haben Todo Ingredient untersuchen wir, wie eine Reihe von To-Do-Elementen als Teil des Gesamtplans gespeichert und verfolgt wird.
Wir definieren a State Objekt (PlanningState), um den Plan als zu erfassen Liste Anzahl der zu erledigenden Elemente, die aktualisiert werden, wenn Aufgaben ausgeführt werden:
Der todos Feld ist elective (NotRequired), was bedeutet, dass es bei der ersten Initialisierung möglicherweise nicht vorhanden ist (d. h. der Agent hat möglicherweise noch keine Aufgaben in seinem Plan).
OmitFromInput bedeutet das todos wird intern von der Middleware verwaltet und sollte nicht direkt als Benutzereingabe bereitgestellt werden.
Der Standing ist das Kurzzeitgedächtnis des Agenten, das aktuelle Gespräche und wichtige Informationen erfasst, damit er auf der Grundlage früherer Kontexte und Informationen angemessen handeln kann.
In diesem Fall bleibt die Aufgabenliste im Standing, sodass der Agent während der gesamten Sitzung konsistent auf Aufgaben verweisen und diese aktualisieren kann.
Hier ist ein Beispiel für eine To-Do-Liste:
todos: record(Todo) = (
{
"content material": "Analysis visa necessities for Singapore passport holders visiting Japan",
"standing": "accomplished"
},
{
"content material": "Examine flight choices from Singapore to Tokyo",
"standing": "in_progress"
},
{
"content material": "E book flights and motels as soon as itinerary is finalized",
"standing": "pending"
}
)
(2.3) Software zum Schreiben und Aktualisieren von Aufgaben
Nachdem die Grundstruktur der To-Do-Liste festgelegt ist, benötigen wir nun ein Software, mit dem der LLM-Agent sie verwalten und aktualisieren kann, wenn Aufgaben ausgeführt werden.
Hier ist die Standardmethode zur Definition unseres Instruments (write_todos):
Der write_todos Das Software gibt a zurück Command Dadurch wird der Agent angewiesen, seine Aufgabenliste zu aktualisieren und eine Nachricht anzuhängen, in der die Änderung aufgezeichnet wird.
Während die write_todos Die Struktur ist unkompliziert, die Magie liegt in der Beschreibung (WRITE_TODOS_TOOL_DESCRIPTION) des Werkzeugs.
Wenn der Agent das Software aufruft, dient die Toolbeschreibung als entscheidende zusätzliche Eingabeaufforderung. Anleitung zur richtigen Verwendung und zur Bereitstellung von Eingaben.
Hier ist LangChains (ziemlich langer) Ausdruck der Werkzeugbeschreibung:
Wir können sehen, dass die Beschreibung sehr strukturiert und präzise ist und definiert, wann und wie das Software verwendet werden soll, sowie Aufgabenstatus und Verwaltungsregeln.
Es bietet außerdem klare Richtlinien für die Verfolgung komplexer Aufgaben, deren Aufteilung in klare Schritte und deren systematische Aktualisierung.
Schauen Sie sich gerne die prägnantere Interpretation einer To-Do-Software-Beschreibung durch Deepagents an Hier
(2.4) Aktualisierung der Systemaufforderung
Das letzte Ingredient beim Einrichten der Aufgabenfunktion ist die Aktualisierung der Systemaufforderung des Agenten.
Dies geschieht durch Injektion WRITE_TODOS_SYSTEM_PROMPT in die Haupteingabeaufforderung ein und informiert den Agenten ausdrücklich darüber, dass die write_todos Werkzeug existiert.
Es leitet den Agenten weiter wann und warum das Software verwendet werden sollbietet Kontext für komplexe, mehrstufige Aufgaben und beschreibt Greatest Practices für die Pflege und Aktualisierung der To-Do-Liste:
(3) Zusammenstellung in einer Middleware
Schließlich sind alle vier Schlüsselkomponenten in einer einzigen Klasse namens „ TodoListMiddlewaredas die Aufgabenfunktionen in einen zusammenhängenden Ablauf für den Agenten bündelt:
- Definieren
PlanningStateum Aufgaben als Teil einer To-Do-Liste zu verfolgen - Dynamisch erstellen
write_todosSoftware, um die Liste zu aktualisieren und dem LLM zugänglich zu machen - Injizieren
WRITE_TODOS_SYSTEM_PROMPTum die Planung und Argumentation des Agenten zu leiten
Der WRITE_TODOS_SYSTEM_PROMPT wird über die Middleware injiziert wrap_model_call (Und awrap_model_call)-Methode, die sie bei jedem Modellaufruf an die Systemnachricht des Agenten anhängt, wie unten gezeigt:
Ich schließe es ab
Genau wie Menschen nutzen Agenten To-Do-Pay attention, um komplexe Probleme aufzuschlüsseln, organisiert zu bleiben und sich in Echtzeit anzupassen, sodass sie Probleme effektiver und genauer lösen können.
Durch die Middleware-Implementierung von LangChain erhalten wir außerdem tiefere Einblicke in die Artwork und Weise, wie geplante Aufgaben von Agenten strukturiert, verfolgt und ausgeführt werden können.
Kasse dieses GitHub-Repo für die Code-Implementierung.
