Agent, der selbst Arbeit findet
„Der Agent findet Arbeit selbst.“ Zum Versenden von Bestellungen sind keine Menschen erforderlich, die Arbeit selbst wird dem Taskboard abgenommen.
Vom „Aufwachen“ bis zum „eigenen Job finden“
Der Teamkollege von s09 / s10 ist passiv: Jemand muss eine Nachricht über die Mailbox senden, bevor es zu funktionieren beginnt; Wenn es fertig ist, bleibt es im Leerlauf und wird wieder aufgeweckt.
S11s autonomer Teamkollege Aktiv: Es hört nicht wirklich auf, wenn es keine Arbeit gibt. Das Verzeichnis .tasks/ wird alle 5 Sekunden gescannt. Wenn eine nicht besessene Aufgabe erkannt wird, beansprucht claim_task diese und beginnt mit der Arbeit.
Teamkollegen-Lebenszyklus:
+-------+
| laichen |
+---+---+
|
v
+-------+
| ARBEIT | <-- LLM-tool_use-Schleife
+---+---+
|
| stop_reason != tool_use ODER tool_use("idle")
v
+-------+
| LEERLAUF | Abfrage alle 5 Sekunden, insgesamt 12 Mal = 60 Sekunden Zeitüberschreitung
+---+---+
|
+--> Neue Nachrichten im Posteingang? → Arbeit wieder aufnehmen
|
+--> .tasks/ scannen, unbeansprucht gefunden → Anspruch → Arbeit fortsetzen
|
+--> 60s nichts wartet → Status = Herunterfahren, Thread wird beendet
Automatisch beanspruchen · „Bestellungen annehmen“ vom Taskboard
Kernfunktionen:
def scan_unclaimed_tasks() -> Liste: nicht beansprucht = [] für f in sortiert(TASKS_DIR.glob("task_*.json")): task = json.loads(f.read_text()) if (task.get("status") == "pending" und nicht task.get("owner") und nicht task.get("blockedBy")): unclaimed.append(task) Rückgabe ohne Anspruch
Drei Filter = ausstehend + kein Eigentümer + kein blockiert von. Beides ist unverzichtbar.
Die Anspruchsaktion selbst verfügt über eine Sperre (_claim_lock), um zu verhindern, dass zwei Agenten gleichzeitig dieselbe nicht beanspruchte Aufgabe übernehmen. Lesen Sie die Sperre erneut, prüfen Sie, ob der Eigentümer noch leer ist, und schreiben Sie dann die Markierung „in_progress“ + Eigentümer auf die Festplatte.
Simulieren Sie mehrere Agenten, um das Taskboard gleichzeitig zu scannen
Drei Teamkollegen befinden sich im Ruhezustand und drei Aufgaben warten darauf, übernommen zu werden. Klicken Sie auf „Nächste Runde scannen“, um zu sehen, wer sie zuerst erhält.
Wiederinjektion der Identität: Nach der Komprimierung wissen Sie immer noch, wer Sie sind
s06 erwähnte, dass auto_compact Nachrichten durch Zusammenfassungen ersetzen wird. Der autonome Agent kann nach stundenlanger Ausführung leicht ausgelöst werden – nach der Komprimierung kennt das Modell weder seinen Namen noch seine Rolle.
S11s Trick: Wenn Sie eine neue Aufgabe anfordern und len(messages) ≤ 3 (was anzeigt, dass sie gerade komprimiert wurde), fügen Sie automatisch den Identitätsblock in den Header ein:
if len(messages) <= 3: message.insert(0, { "role": "user", "content": f"<identity>Sie sind 'alice', Rolle: Coder, Team: my-team. Setzen Sie Ihre Arbeit fort.</identity>", }) messages.insert(1, {"role":"assistant", "content": f"I am alice. Continuing."})
Dieser Modus wird Identity Reinjection genannt – er nutzt eine künstlich konstruierte Dialogrunde, um „dem Model zu sagen, wer es ist“, damit es sein Charaktergefühl wiedererlangen kann.