Passer au contenu principal

Fleet Mode

Fleet Mode est une fonctionnalité d’orchestration expérimentale qui permet d’exécuter plusieurs sous-agents en parallèle depuis une seule session parente. Lorsque le travail peut être découpé en unités indépendantes, la session parente distribue les périmètres et agrège les résultats de chaque sous-agent. Dans la version Laravel, session.fleet.start s’appelle depuis la couche typed RPC.

Cas d’usage adaptés

  • Refactoring divisible par fichier, par paquet ou par SDK de langage
  • Tâches d’investigation portant sur plusieurs modules indépendants
  • Revues à l’unité (diff, alerte, page de documentation)
  • Migrations où chaque périmètre peut être vérifié de manière autonome
À l’inverse, ne convient pas aux traitements où le résultat concret d’une étape est indispensable à la suivante, où plusieurs workers éditeraient le même fichier, ou aux petites tâches ponctuelles.

Démarrer Fleet Mode

use Revolution\Copilot\Contracts\CopilotSession;
use Revolution\Copilot\Facades\Copilot;
use Revolution\Copilot\Types\Rpc\FleetStartRequest;

Copilot::start(function (CopilotSession $session): void {
    $result = $session->rpc()->fleet()->start(
        new FleetStartRequest(
            prompt: 'docs/jpの各ページを独立して確認し、必要な更新だけ報告して',
        ),
    );

    if ($result->started) {
        info('Fleet mode started');
    }
});
Vous pouvez aussi passer un tableau.
$result = $session->rpc()->fleet()->start([
    'prompt' => '各パッケージを独立してレビューし、最後にリスクをまとめて',
]);
prompt est optionnel. S’il est omis, Fleet Mode démarre avec les seules instructions côté runtime.

Démarrer depuis Plan Mode

Si vous gérez vous-même l’UI Plan Mode, choisir autopilot_fleet dans onExitPlanModeRequest fait passer un plan approuvé en Fleet Mode.
use Revolution\Copilot\Types\ExitPlanModeRequest;
use Revolution\Copilot\Types\ExitPlanModeResult;
use Revolution\Copilot\Types\SessionConfig;

$config = new SessionConfig(
    onExitPlanModeRequest: function (ExitPlanModeRequest $request): ExitPlanModeResult {
        return new ExitPlanModeResult(
            approved: true,
            selectedAction: 'autopilot_fleet',
        );
    },
);
autopilot = worker autonome unique ; interactive = intervention utilisateur continue ; autopilot_fleet = unités de travail indépendantes menées en parallèle.

Coordination des sous-agents

Fleet Mode ne repose pas sur une mémoire partagée implicite mais sur une coordination via des unités de travail explicites. La session parente découpe la tâche, chaque sous-agent traite uniquement son périmètre et renvoie un état terminé ou bloqué. Lors de la conception d’une unité de travail, précisez :
  • Le périmètre pris en charge par un worker
  • Les fichiers ou répertoires que ce worker peut modifier
  • Les livrables ou résultats de vérification à retourner à l’achèvement
  • Les dépendances avec les autres tâches

Points d’attention

  • Fleet RPC est une fonctionnalité expérimentale de la couche RPC générée. Assurez-vous de faire correspondre les versions du Copilot CLI et du SDK
  • Évitez les éditions de fichiers conflictuelles et séparez clairement les périmètres
  • Comme la session parente agrège les résultats, il est utile d’inclure le format de compte-rendu attendu dans le prompt de chaque worker

Voir aussi

Pour les dernières informations, consultez le dépôt GitHub.
Dernière modification le 13 juillet 2026