Claude DevFleet Multi-Agent-Orchestrierung
Verwendung
Verwende diese Skill, wenn du mehrere Claude Code Agenten entsenden musst, die parallel an Codierungsaufgaben arbeiten. Jeder Agent läuft in einem isolierten Git-Worktree mit voller Toolausstattung.
Einrichtung
Der DevFleet-Server ist ein separates Projekt und nicht in ECC enthalten. Installiere und starte es zuerst von 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 Verwendung, dass der Prozess, der auf Port 18801 lauscht, die von dir installierte DevFleet-Binärdatei ist (siehe SECURITY.md zu lokalen MCP-Servern).
Funktionsweise
Benutzer → "Erstelle eine REST-API mit Authentifizierung und Tests"
↓
plan_project(prompt) → project_id + Missions-DAG
↓
Plan dem Benutzer anzeigen → Genehmigung einholen
↓
dispatch_mission(M1) → Agent 1 startet im Worktree
↓
M1 abgeschlossen → automatisch mergen → automatisch M2 starten (depends_on M1)
↓
M2 abgeschlossen → automatisch mergen
↓
get_report(M2) → files_changed, what_done, errors, next_steps
↓
Rückmeldung an den Benutzer
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 ermöglichen. |
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?) | Blockiert, bis eine Mission abgeschlossen ist (siehe Hinweis unten) |
get_mission_status(mission_id) | Überprüfe den Missionsfortschritt ohne zu blockieren |
get_report(mission_id) | Lese den strukturierten Bericht (geänderte Dateien, getestet, Fehler, nächste Schritte) |
get_dashboard() | Systemübersicht: laufende Agenten, Statistiken, aktuelle Aktivität |
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). Für länger laufende Missionen bevorzuge stattdessen das Polling mitget_mission_statusalle 30–60 Sekunden, damit der Benutzer Fortschrittsaktualisierungen sieht.
Arbeitsablauf: Planen → Entsenden → Überwachen → Berichten
- Planen: Rufe
plan_project(prompt="...")auf → gibtproject_id+ Liste von Missionen mitdepends_on-Ketten undauto_dispatch=truezurück. - Plan anzeigen: Präsentiere dem Benutzer Missionstitel, Typen und Abhängigkeitskette.
- Entsenden: Rufe
dispatch_mission(mission_id=<erste_mission_id>)auf der Wurzelmission (leeresdepends_on) auf. Die restlichen Missionen werden automatisch gestartet, sobald ihre Abhängigkeiten abgeschlossen sind (weilplan_projectbei ihnenauto_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 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 (diejenige mit leerem
depends_on). - Die restlichen Missionen werden automatisch gestartet, 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 Endstatus erreicht haben (completed,failedodercancelled). get_report(mission_id=...)für jede abgeschlossene Mission — fasse Erfolge zusammen und weise auf Fehler mit Fehlern und nächsten Schritten hin.
Manuell: Schritt-für-Schritt-Kontrolle
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 →root_mission_iderfassen.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="...")→project_iderhalten.create_mission(project_id=project_id, title="Funktion implementieren", prompt="...")→impl_mission_iderhalten.dispatch_mission(mission_id=impl_mission_id), dann pollen mitget_mission_statusbis abgeschlossen.get_report(mission_id=impl_mission_id), um Ergebnisse zu überprüfen.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 Missionen startest, es sei denn, er hat gesagt, dass es losgehen soll.
- Gib bei der Statusmeldung die Missions-Titel und -IDs an.
- Wenn eine Mission fehlschlägt, lies ihren Bericht, bevor du es erneut versuchst.
- Überprüfe
get_dashboard()auf verfügbare Agenten-Slots, bevor du massenhaft startest. - Missionsabhängigkeiten bilden einen DAG — erstelle keine zirkulären Abhängigkeiten.
- Jeder Agent läuft in einem isolierten Git-Worktree und führt bei Abschluss automatisch einen Merge durch. Bei einem Merge-Konflikt bleiben die Änderungen im Agenten-Worktree-Branch für die manuelle Auflösung.
- Setze beim manuellen Erstellen von Missionen immer
auto_dispatch=true, wenn du möchtest, dass sie automatisch starten, sobald Abhängigkeiten erfüllt sind. Ohne dieses Flag bleiben Missionen im Statusdraft.