Claude DevFleet Multi-Agent-Orchestrierung
Verwendungszweck
Verwende diese Fähigkeit, wenn du mehrere Claude Code Agenten gleichzeitig an Codierungsaufgaben arbeiten lassen möchtest. Jeder Agent läuft in einem isolierten Git-Worktree mit vollständiger Werkzeugausstattung.
Einrichtung
Der DevFleet-Server ist ein separates Projekt, das nicht im ECC enthalten ist. Installiere und starte ihn zuerst aus seinem Repository: https://github.com/LEC-AI/claude-devfleet
Verbinde dann die laufende Instanz über MCP:
claude mcp add devfleet --transport http http://localhost:18801/mcp
Überprüfe vor der ersten Nutzung, dass der auf Port 18801 lauschende Prozess die von dir installierte DevFleet-Binärdatei ist (siehe SECURITY.md zu localhost-MCP-Servern).
Funktionsweise
Benutzer → „Baue eine REST-API mit Authentifizierung und Tests“
↓
plan_project(prompt) → project_id + Mission DAG
↓
Zeige Plan dem Benutzer → Erhalte Genehmigung
↓
dispatch_mission(M1) → Agent 1 startet im Worktree
↓
M1 abgeschlossen → auto-merge → auto-dispatch M2 (depends_on M1)
↓
M2 abgeschlossen → auto-merge
↓
get_report(M2) → files_changed, what_done, errors, next_steps
↓
Berichte dem Benutzer zurück
Werkzeuge
| Werkzeug | Zweck |
|---|---|
plan_project(prompt) | KI zerlegt eine Beschreibung in ein Projekt mit verketteten Missionen |
create_project(name, path?, description?) | Manuelles Erstellen eines Projekts, gibt project_id zurück |
create_mission(project_id, title, prompt, depends_on?, auto_dispatch?) | Mission hinzufügen. depends_on ist eine Liste von Missions-ID-Strings (z.B. ["abc-123"]). Setze auto_dispatch=true, um automatischen Start bei erfüllten Abhängigkeiten zu aktivieren. |
dispatch_mission(mission_id, model?, max_turns?) | Starte einen Agenten für eine Mission |
cancel_mission(mission_id) | Stoppe einen laufenden Agenten |
wait_for_mission(mission_id, timeout_seconds?) | Blockiere, bis eine Mission abgeschlossen ist (siehe Hinweis unten) |
get_mission_status(mission_id) | Prüfe den Missionsfortschritt ohne Blockierung |
get_report(mission_id) | Lese strukturierten Bericht (geänderte Dateien, getestet, Fehler, nächste Schritte) |
get_dashboard() | Systemübersicht: laufende Agenten, Statistiken, letzte Aktivitäten |
list_projects() | Alle Projekte durchsuchen |
list_missions(project_id, status?) | Missionen in einem Projekt auflisten |
Hinweis zu
wait_for_mission: Dies blockiert die Unterhaltung für bis zutimeout_seconds(Standard 600). Bei langlebigen Missionen empfiehlt sich stattdessen das Polling mitget_mission_statusalle 30–60 Sekunden, damit der Benutzer Fortschrittsaktualisierungen sieht.
Workflow: Planen → Starten → Überwachen → Berichten
- Planen: Rufe
plan_project(prompt="...")auf → gibtproject_idund Liste von Missionen mitdepends_on-Ketten undauto_dispatch=truezurück. - Plan anzeigen: Präsentiere dem Benutzer Missions-Titel, -Typen und die Abhängigkeitskette.
- Starten: Rufe
dispatch_mission(mission_id=<erste_mission_id>)auf der Wurzelmission (leeresdepends_on) auf. Die restlichen Missionen starten automatisch, sobald ihre Abhängigkeiten erfüllt sind (daplan_projectauto_dispatch=truesetzt). - Überwachen: Rufe
get_mission_status(mission_id=...)oderget_dashboard()auf, um den Fortschritt zu prüfen. - Berichten: Rufe
get_report(mission_id=...)auf, wenn Missionen abgeschlossen sind. Teile die wichtigsten Ergebnisse mit dem Benutzer.
Gleichzeitigkeit
DevFleet führt standardmäßig bis zu 3 gleichzeitige Agenten aus (konfigurierbar über DEVFLEET_MAX_AGENTS). Wenn alle Slots belegt sind, werden Missionen mit auto_dispatch=true im Missions-Watcher in die Warteschlange gestellt und automatisch gestartet, sobald Slots frei werden. Überprüfe get_dashboard() auf die aktuelle Slot-Auslastung.
Beispiele
Vollautomatisch: Planen und starten
plan_project(prompt="...")→ zeigt Plan mit Missionen und Abhängigkeiten.- Starte die erste Mission (die mit leerem
depends_on). - Die restlichen Missionen starten automatisch, sobald Abhängigkeiten aufgelöst sind (sie haben
auto_dispatch=true). - Berichte mit Projekt-ID und Missionsanzahl, damit der Benutzer weiß, was gestartet wurde.
- Rufe regelmäßig
get_mission_statusoderget_dashboard()auf, bis alle Missionen einen Endzustand erreicht haben (completed,failedodercancelled). get_report(mission_id=...)für jede Endmission – fasse Erfolge zusammen und hebe Fehler mit Fehlermeldungen und nächsten Schritten hervor.
Manuell: Schritt-für-Schritt-Steuerung
create_project(name="Mein Projekt")→ gibtproject_idzurück.create_mission(project_id=project_id, title="...", prompt="...", auto_dispatch=true)für die erste (Wurzel-)Mission → erfasseroot_mission_id.create_mission(project_id=project_id, title="...", prompt="...", auto_dispatch=true, depends_on=["<root_mission_id>"])für jede nachfolgende Aufgabe.dispatch_mission(mission_id=...)auf der ersten Mission, um die Kette zu starten.get_report(mission_id=...), wenn fertig.
Sequentiell mit Überprüfung
create_project(name="...")→ erhalteproject_id.create_mission(project_id=project_id, title="Funktion implementieren", prompt="...")→ erhalteimpl_mission_id.dispatch_mission(mission_id=impl_mission_id), dann poll mitget_mission_status, bis abgeschlossen.get_report(mission_id=impl_mission_id)zur Überprüfung der Ergebnisse.create_mission(project_id=project_id, title="Überprüfung", prompt="...", depends_on=[impl_mission_id], auto_dispatch=true)— startet automatisch, da die Abhängigkeit bereits erfüllt ist.
Richtlinien
- Bestätige den Plan immer mit dem Benutzer, bevor du ihn ausführst, es sei denn, der Benutzer hat grünes Licht gegeben.
- Füge Missions-Titel und -IDs in Statusmeldungen ein.
- Wenn eine Mission fehlschlägt, lies ihren Bericht, bevor du sie erneut startest.
- Prüfe
get_dashboard()auf Verfügbarkeit von Agenten-Slots, bevor du massenhaft startest. - Missions-Abhängigkeiten bilden einen DAG – erstelle keine zirkulären Abhängigkeiten.
- Jeder Agent läuft in einem isolierten Git-Worktree und führt beim Abschluss automatisch einen Merge durch. Bei Merge-Konflikten bleiben die Änderungen im Worktree-Branch des Agenten zur manuellen Auflösung erhalten.
- Setze bei manueller Missionserstellung immer
auto_dispatch=true, wenn sie automatisch starten sollen, sobald Abhängigkeiten erfüllt sind. Ohne dieses Flag bleiben Missionen im Statusdraft.