Subagents
Erfahre, wie Bob subagents verwendet, um fokussierte, in sich geschlossene Aufgaben in isolierten Kontexten zu bearbeiten, ohne die Hauptkonversation zu belasten.
Was sind subagents?
Ein subagent ist ein unabhängiger Agent, den Bob spawnen kann, um eine fokussierte, in sich geschlossene Aufgabe zu bearbeiten. Er läuft in einem eigenen, isolierten context window, führt die zugewiesene Arbeit aus und gibt eine Zusammenfassung der Ergebnisse an die Hauptkonversation zurück.
Subagents sind nützlich für Arbeiten, die sonst große Mengen irrelevanter Inhalte zur laufenden Konversation hinzufügen würden – zum Beispiel, wenn ein Abschnitt einer Codebasis eingehend untersucht werden soll, um bestimmte Informationen zu sammeln, bevor Bob mit der Hauptaufgabe weitermacht.
Wie subagents funktionieren
Wenn Bob einen subagent spawnt:
- Es wird ein neuer, unabhängiger Agent mit eigenem context window erstellt.
- Bob übergibt ihm eine Beschreibung der fokussierten Aufgabe, die auszuführen ist.
- Du wirst aufgefordert, den spawn zu genehmigen, bevor er beginnt. Bob wartet, bis du bestätigst.
- Der subagent führt die Aufgabe mit seinen verfügbaren Tools aus.
- Der subagent gibt eine Zusammenfassung seiner Ergebnisse an Bob zurück.
- Bob nutzt diese Zusammenfassung, um die Hauptkonversation fortzusetzen.
Der subagent läuft getrennt von der Hauptkonversation. Er teilt weder Status, Dateien noch Tool-Ergebnisse mit Bob, außer Bob übergibt sie explizit in der Beschreibung.
Subagent-Typen
Es gibt zwei subagent-Typen, die jeweils für unterschiedliche Aufgaben geeignet sind:
| Typ | Beschreibung | Am besten geeignet für |
|---|---|---|
explore | Schreibgeschützte Codebase-Erkundung, läuft auf einem leichteren Modell | Suchen und Zusammenfassen von Code, Finden relevanter Dateien, Strukturverständnis |
general | Vollständiger Tool-Zugriff, läuft auf dem Standard-Modell | Beliebige in sich geschlossene Aufgaben, die Lesen, Schreiben oder Befehle erfordern |
Kontext und Konversationsverlauf
Standardmäßig sieht ein subagent den Verlauf der übergeordneten Konversation nicht. Dadurch bleibt sein Kontext schlank und auf die jeweilige Aufgabe fokussiert.
Wenn ein subagent frühere Entscheidungen, Einschränkungen oder Präferenzen aus der Konversation kennen muss, kann Bob fork_context: true setzen, um den Konversationsverlauf an den subagent weiterzugeben.
Modusbeschränkungen
Der Modus, in dem du arbeitest, bestimmt, welche subagent-Typen Bob spawnen darf. Einige Modi erlauben alle subagent-Typen; andere beschränken das Spawnen auf bestimmte Typen oder verbieten es ganz. Falls ein subagent-spawn durch den aktiven Modus nicht erlaubt ist, erledigt Bob die Arbeit direkt ohne Spawnen.
Wann Bob subagents verwendet
Bob verwendet subagents sparsam. Die Standardvorgabe ist immer, die Arbeit direkt ohne Spawnen eines subagents zu erledigen. Ein subagent wird nur in Betracht gezogen, wenn alle der folgenden Bedingungen erfüllt sind:
- Die Aufgabe ist klar in sich geschlossen und es wird nur eine Zusammenfassung benötigt.
- Sie würde der Hauptkonversation erhebliche irrelevante Inhalte hinzufügen.
- Sie kann nicht mit einem oder zwei direkten Tool-Aufrufen erledigt werden.
Bob verwendet keine subagents für:
- Einfache Datei-Lesevorgänge oder schnelle Suchen.
- Einzelne Tool-Operationen.
Parallele Subagents-Panel
Wenn mehrere Subagents gleichzeitig laufen – zum Beispiel während eines Workflows, der mehrere spezialisierte Agenten parallel spawnt – werden sie in einem einzigen zusammenklappbaren Panel im Chat gruppiert.
Der Panel-Header zeigt aggregierte Statistiken über alle laufenden Subagents:
- Anzahl der abgeschlossenen Subagents von der Gesamtzahl
- Insgesamt verwendete Tools über alle Subagents
- Kombinierte Token-Nutzung, Kosten und verstrichene Zeit
- Eine Anzahl fehlgeschlagener Tool-Aufrufe
Erweitere das Panel, um jeden Subagent einzeln zu sehen. Jeder einzelne Eintrag kann weiter erweitert werden, um seine Tool-Aufrufe zu inspizieren. Wenn ein Subagent auf Tool-Fehler stößt, wird die Fehleranzahl sowohl im aggregierten Header als auch beim einzelnen Eintrag angezeigt.
- Aufgaben, bei denen der relevante Kontext bereits verfügbar ist.
Subagents vs. subtasks
Subagents und subtasks sind verwandte, aber unterschiedliche Konzepte:
| Subagent | Subtask | |
|---|---|---|
| Sichtbarkeit | Läuft still im Hintergrund | Erscheint in der UI mit eigenem Breadcrumb und Konversation |
| Interaktion | Nicht interaktiv – gibt nur eine Zusammenfassung zurück | Vollständig interaktiv – du kannst den Fortschritt verfolgen und die Konversation fortsetzen |
| Zweck | Informationen sammeln oder isolierte Arbeit erledigen, ohne den Hauptkontext zu belasten | Arbeit bearbeiten, die komplex genug ist, um von dediziertem Tracking und einem separaten Thread zu profitieren |
| Ausgabe | Zusammenfassung wird an Bob zurückgegeben | Unabhängiger Konversationsthread |
Verwende subagents für Hintergrundinformationssammlung. Verwende subtasks für komplexe Arbeit, die von Sichtbarkeit und einer dedizierten Konversation profitiert.
Verhalten von subagents anpassen
Du kannst steuern, worauf sich ein subagent konzentriert, wie er seine Ausgabe formatiert und welche Tools er verwenden darf, indem du eine Agent-Persona-Datei in .bob/agents/ erstellst. Persona-Dateien geben einem subagent eine definierte Rolle und bestimmte Einschränkungen – zum Beispiel einen Code-Reviewer, der eine nach Schweregrad sortierte Fundtabelle erstellt und explizit angewiesen wird, keine Korrekturen vorzuschlagen.
Setup-Anweisungen und Beispiele findest du unter Agent-Personas.
Modi
Modi sind spezialisierte Personas, die das Verhalten von Bob auf deine spezifischen Aufgaben abstimmen. Jeder Modus bietet unterschiedliche Funktionen und Zugriffsebenen, um dir zu helfen, bestimmte Ziele effizienter zu erreichen.
Kontext-Erwähnungen
Referenziere spezifische Elemente deines Projekts direkt in Bob-Unterhaltungen mithilfe von @-Erwähnungen für präzise, kontextbewusste Unterstützung.