메인 콘텐츠로 건너뛰기

Fleet Mode

Fleet Mode는 하나의 부모 세션에서 여러 서브에이전트를 병렬로 실행하기 위한 실험적인 오케스트레이션 기능입니다. 작업을 독립적인 단위로 분할할 수 있는 경우, 부모 세션이 담당 범위를 할당하고 각 서브에이전트의 결과를 집약합니다. Laravel 버전에서는 typed RPC layer로부터 session.fleet.start를 호출할 수 있습니다.

적합한 용도

  • 파일, 패키지, 언어 SDK별로 나눌 수 있는 리팩터링
  • 여러 모듈을 각각 조사하는 조사 태스크
  • 차분, 알림, 문서 페이지 단위의 리뷰
  • 마이그레이션 작업처럼 각 담당 범위를 독립적으로 검증할 수 있는 태스크
반대로, 이전 단계의 구체적인 결과가 다음 단계에 필수인 처리, 같은 파일을 여러 워커가 편집하는 처리, 작은 단발 태스크에는 적합하지 않습니다.

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');
    }
});
배열로도 지정할 수 있습니다.
$result = $session->rpc()->fleet()->start([
    'prompt' => '각 패키지를 독립적으로 리뷰하고, 마지막에 리스크를 정리해줘',
]);
prompt는 임의입니다. 생략하면 런타임 측의 Fleet Mode 지시만으로 시작합니다.

Plan Mode에서 시작

Plan Mode UI를 자체적으로 다루는 경우, onExitPlanModeRequest에서 autopilot_fleet을 선택하면 승인된 플랜에서 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은 단일 자율 워커, interactive는 사용자가 지속적으로 관여하는 운영, autopilot_fleet은 독립된 작업 단위를 병렬로 진행하는 운영에 사용합니다.

서브에이전트의 협조

Fleet Mode는 암묵적인 공유 메모리가 아니라 명시적인 작업 단위로 협조합니다. 부모 세션이 태스크를 분할하고, 각 서브에이전트는 자신의 담당 범위만을 처리하며, 완료 또는 블록 상태를 반환합니다. 작업 단위를 설계할 때는 다음을 명확히 하세요.
  • 워커 1개가 담당할 범위
  • 해당 워커가 편집해도 되는 파일이나 디렉터리
  • 완료 시 반환해야 할 성과물이나 검증 결과
  • 다른 태스크와의 의존 관계

주의점

  • Fleet RPC는 생성 RPC 층의 실험적 기능입니다. 이용할 경우 Copilot CLI와 SDK의 버전을 맞춰 주세요
  • 충돌하기 쉬운 파일 편집은 피하고, 담당 범위를 명확히 나누어 주세요
  • 부모 세션 측에서 결과를 집약하는 전제로, 각 워커의 보고 형식을 프롬프트에 포함시키면 다루기 쉬워집니다

참고

최신 정보는 GitHub 저장소를 참고하세요.
마지막 수정일 2026년 7월 13일