Saltar al contenido principal

Fleet Mode

Fleet Mode es una función experimental de orquestación para ejecutar varios subagentes en paralelo desde una sola sesión padre. Cuando el trabajo se puede dividir en unidades independientes, la sesión padre asigna el ámbito y agrega los resultados de cada subagente. En la versión Laravel puedes invocar session.fleet.start desde la typed RPC layer.

Casos adecuados

  • Refactorizaciones que se pueden dividir por fichero, paquete o SDK de un lenguaje
  • Tareas de investigación que analizan varios módulos por separado
  • Revisiones por diff, alerta o página de documentación
  • Trabajos de migración en los que cada ámbito se puede validar por separado
Al contrario, no es adecuado para procesos en los que el paso siguiente necesita el resultado concreto del anterior, ni cuando varios workers editan el mismo fichero o para pequeñas tareas puntuales.

Iniciar 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');
    }
});
También puedes indicarlo como array:
$result = $session->rpc()->fleet()->start([
    'prompt' => '各パッケージを独立してレビューし、最後にリスクをまとめて',
]);
prompt es opcional. Si lo omites, se inicia únicamente con las instrucciones de Fleet Mode del runtime.

Iniciar desde Plan Mode

Si gestionas por tu cuenta la UI de Plan Mode, puedes elegir autopilot_fleet en onExitPlanModeRequest para pasar de un plan aprobado a 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',
        );
    },
);
Se usa autopilot para un único worker autónomo, interactive para un uso con implicación continua del usuario y autopilot_fleet para avanzar unidades de trabajo independientes en paralelo.

Coordinación entre subagentes

Fleet Mode no coordina con memoria compartida implícita, sino con unidades de trabajo explícitas. La sesión padre divide la tarea, cada subagente procesa únicamente su ámbito y devuelve el estado de finalización o de bloqueo. Al diseñar las unidades de trabajo, deja claros estos puntos:
  • Ámbito del que se encarga un worker
  • Ficheros o directorios que ese worker puede editar
  • Entregables o resultados de validación que debe devolver al terminar
  • Dependencias con otras tareas

Consideraciones

  • Fleet RPC es una funcionalidad experimental de la capa de RPC generada. Si la usas, alinea las versiones de Copilot CLI y del SDK
  • Evita editar ficheros propensos a conflictos y divide los ámbitos con claridad
  • Como es la sesión padre la que agrega los resultados, es más fácil trabajar si incluyes en el prompt el formato de reporte de cada worker

Referencias

Consulta la información más reciente en el repositorio de GitHub.
Última modificación el 13 de julio de 2026