Der Ein-Icon-Engpass

Stellen Sie sich Ihren Bildschirm während einer intensiven Coding-Session vor. In einem Terminal-Tab refactort Claude Code gerade eine React-Komponente. In einem anderen schreibt Codex ein Python-Modul um. Ein dritter Agent generiert Unit-Tests, ein vierter wartet auf einen API-Key und ein fünfter hat gerade einen Hintergrund-Linter-Durchlauf abgeschlossen. Ihre Menüleiste – oder welches System-Tray Sie auch nutzen – bietet Platz für genau ein Status-Icon. Ein winziger Punkt oder ein Label soll den gesamten Schwarm repräsentieren. Die Frage ist, welche Session diesen Platz verdient.

Die faule Antwort ist, die Session anzuzeigen, die sich zuletzt bewegt hat. Das wirkt rational. Etwas ist passiert, also rückt es in den Vordergrund. Dieser Instinkt ist falsch, und er wird Sie teuer zu stehen kommen. Ein File-Watcher im Hintergrund, der einen Zeitstempel aktualisiert, ist kein Hilferuf. Währenddessen könnte eine Session, die vor zehn Minuten auf einen Berechtigungsfehler gestoßen ist, unsichtbar dasitzen und darauf warten, dass Sie „yes“ tippen oder einen Pfad korrigieren. Wenn Sie nach Aktualität sortieren, verbergen Sie genau das, was Ihre Aufmerksamkeit erfordert. Sie müssen nach Handlungsrelevanz sortieren.

Warum Aktualität versagt

Entwickler greifen zu Zeitstempeln, weil sie einfach sind. Jedes System erzeugt sie, jede Datenbank indiziert sie, und das Sortieren ist eine einzige Zeile Code. Aber „einfach“ hört auf, nützlich zu sein, sobald man beginnt, mehrere unabhängige Worker zu orchestrieren.

Hier ist ein konkretes Fehlerszenario. Session fünf hat gerade eine Log-Zeile angehängt, weil ihr Dependency-Watcher eine Dateiänderung in node_modules bemerkt hat. Ihr Zeitstempel wurde auf „jetzt“ aktualisiert. Session zwei hingegen hat Ihnen vor drei Minuten eine Frage gestellt: „Soll ich dieses Paket installieren? (y/n)“. Sie haben noch nicht geantwortet. Wenn Ihre Menüleiste die neueste Session anzeigt, erhält Session fünf das grüne Leuchten und Session zwei verschwindet in der Liste. Nichts sieht kaputt aus. Doch einer Ihrer Agenten steht wegen Ihrer Entscheidung still, während Sie damit beschäftigt sind, einen Linter zu überwachen, den Sie gar nicht brauchen.

Aktualität misst Bewegung. Dringlichkeit erfordert Bedeutung. Ein Dateischreibvorgang hat keine inhärente Bedeutung, es sei denn, er erzeugt eine Aufgabe für Sie. Ein wartender Prompt hingegen ist pure Handlungsrelevanz. Sie können keinen Code ausliefern, indem Sie nur zusehen, wie sich Dinge im Hintergrund ändern. Sie liefern ihn aus, indem Sie Blocker beseitigen. Der erste Denkschritt ist simpel: Behandeln Sie den Zeitstempel als Tiebreaker, niemals als primäres Signal.

Erst klassifizieren, dann sortieren

Ein besserer Ansatz ist ein zweistufiger Filter. Erstens: Kennzeichnen Sie jede Session basierend darauf, was sie von Ihnen benötigt. Zweitens: Sortieren Sie diese Labels. Nur wenn zwei Sessions dasselbe Label teilen, werfen Sie einen Blick auf die Uhr.

Dies zwingt Sie dazu, zu definieren, was „dringend“ in Ihrem Workflow tatsächlich bedeutet. Eine durch Rate-Limiting begrenzte Session ist nicht dringend; sie schläft. Eine arbeitende Session ist beschäftigt, aber wenn sie keine Entscheidung benötigt, kann sie in Ruhe weiterrechnen. Eine blockierte Session ist dringend, weil Fehler eskalieren können. Eine unbeantwortete Übergabe (Handoff) ist dringend, weil Sie buchstäblich den nächsten Schritt verantworten und der Agent nicht fortfahren kann, bis Sie handeln.

Die Klassifizierung verwandelt Ihre Menüleiste von einem Newsfeed in eine Aufgabenliste. Der Sortierschritt wird dann mechanisch. Sie haben bereits entschieden, dass ein blockierter Worker schwerer wiegt als ein beschäftigter. Sie haben bereits entschieden, dass eine ungesehene Frage schwerer wiegt als eine gesehene. Die Zeit spielt erst dann eine Rolle, wenn zwei Sessions auf demselben Prioritätslevel um Aufmerksamkeit schreien. Dann, und nur dann, gewinnt die ältere. Es ist ein kleines Zugeständnis an die Fairness nach dem Prinzip „Wer zuerst kommt, mahlt zuerst“, aber es sollte niemals den Zustand selbst überschreiben.

Eine praktische Prioritätsskala

In Agent Island v1.7.1 hat das Team dies in einer fünfstufigen Skala formalisiert, die jeder nutzen kann, der mehrere KI-Sessions gleichzeitig betreibt:

  • Unbeachtete Interaktion (Benötigt Sie): 4. Die Session hat etwas an Sie zurückgegeben, und Sie haben es noch nicht gesehen. Sie verantworten den nächsten Schritt.
  • Blockiert (Stalled): 3. Die Session ist auf einen Fehler, einen Berechtigungsfehler oder einen anderen Blocker gestoßen. Sie benötigt Ihre Aufmerksamkeit, da sie sich nicht selbst heilen kann.
  • In Arbeit (Working): 2. Die Session rechnet aktiv. Sie wartet nicht auf Sie, daher erhält sie das Icon nur, wenn nichts Dringenderes vorliegt.
  • Beachtete Interaktion (Benötigt Sie): 1. Sie haben den Prompt oder die Frage bereits gesehen, aber noch nicht beantwortet. Sie sind sich der Situation bewusst, daher sinkt die Dringlichkeit eine Stufe unter ungesehene Unterbrechungen.
  • Leerlauf oder Rate-Limiting: 0. Die Session ist Hintergrundrauschen. Sie wartet auf ihren Einsatz oder tut einfach nichts.

Diese Skala lässt sich sauber auf das Nutzerverhalten übertragen. Wenn Sie eine Übergabe abschließen, sinkt die Session auf „Working“ oder „Idle“. Wenn eine arbeitende Session einen Fehler verursacht, springt sie auf „Stalled“. Wenn Sie auf einen Prompt klicken, um ihn zu bestätigen, aber noch