Der Status wird auf die Festplatte geschrieben und übersteht die Komprimierung
「State that survives compression — because it's outside the conversation.」
Was ist der Unterschied zwischen TodoWrite und Task?
s03s TodoManager kann auch Aufgaben auflisten – diese werden jedoch im Speicher gespeichert. Sobald auto_compact, das in s06 erwähnt wird, ausgelöst wird, wird „messages[]“ durch „summary“ ersetzt und der Status von TodoManager ist verschwunden (da er sich im Speicher befindet).
s07s Aufgabe ist anders: Jede Aufgabe ist eine .tasks/task_42.json-Datei. Unabhängig davon, ob der Kontext komprimiert, der Prozess neu gestartet oder der Agent ersetzt wird – solange die Festplattendatei noch vorhanden ist, existiert die Aufgabe weiterhin.
# .tasks/task_12.json { "id": 12, "subject": "Refactor Auth Middleware", "description": "JWT-Logik in gemeinsames Modul extrahieren", "status": "pending", "blockedBy": [8, 11], # Muss #8 und #11 abschließen "owner": "
Auswahlregeln: Verwenden Sietodofür temporäre Aufgaben (vergessen Sie es, wenn Sie damit fertig sind); Verwenden Sietaskfür persistente Aufgaben (die sitzungsübergreifend und abhängig bleiben).
blockiertBy · Abhängigkeitsdiagramm temper
blockedBy ist eine Liste von Aufgaben-IDs – diese müssen abgeschlossen sein, bevor die aktuelle Aufgabe „ausführbar“ ist.
Die Implementierung von s07 hat ein nettes Detail: Wenn eine Aufgabe abgeschlossen ist, wird sie automatisch aus der BlockedBy-Liste aller anderen Aufgaben entfernt.
def _clear_dependency(self, abgeschlossene_id: int): # Scannen Sie jede Aufgabe und entfernen Sie die abgeschlossene_ID aus ihrem blockierten By for f in self.dir.glob("task_*.json"): task = json.loads(f.read_text()) if abgeschlossene_id in task.get("blockedBy", []): task["blockedBy"].remove(completed_id) self._save(task)
Auf diese Weise muss der Agent keine separate Tabelle „Welche Aufgaben sind entsperrt“ verwalten – durchsuchen Sie einfach .tasks/ und suchen Sie nach status=="pending" und nicht blockiertBy, die jetzt ausführbar sind.
Interaktion des Abhängigkeitsdiagramms
Das Widget unten zeigt Ihnen ein Abhängigkeitsdiagramm von 5 Aufgaben. Klicken Sie auf „Abschließen“, um zu sehen, dass blockiertBy automatisch aktualisiert wird und welche Aufgaben „ausführbar“ werden (grün hervorgehoben).
Kann es nach der Komprimierung noch überleben?
s06 erwähnte, dass auto_compact Nachrichten[] durch eine Zusammenfassung ersetzen wird. Die Aufgabe ist jedoch nicht betroffen, da sie sich auf der Festplatte befindet. Testen Sie es: Lassen Sie den Agenten 5 Aufgaben erledigen. Nach dem Komprimieren des Dialogs scannt es .tasks/ und kann dort fortfahren, wo es war.