Claude DevFleet 다중 에이전트 조율
사용 시기
여러 Claude Code 에이전트를 병렬로 디스패치하여 코딩 작업을 수행해야 할 때 이 스킬을 사용하세요. 각 에이전트는 완전한 도구 세트를 갖춘 격리된 git 작업 트리에서 실행됩니다.
설정
DevFleet 서버는 ECC에 번들로 제공되지 않는 별도 프로젝트입니다. 먼저 해당 저장소에서 설치하고 실행하세요: https://github.com/LEC-AI/claude-devfleet
그런 다음 MCP를 통해 실행 중인 인스턴스를 연결합니다:
claude mcp add devfleet --transport http http://localhost:18801/mcp
처음 사용하기 전에 18801 포트에서 수신 대기 중인 프로세스가 설치한 DevFleet 바이너리인지 확인하세요 (로컬호스트 MCP 서버에 대한 SECURITY.md 참조).
작동 방식
사용자 → "인증 및 테스트가 포함된 REST API 구축"
↓
plan_project(prompt) → project_id + 미션 DAG
↓
사용자에게 계획 표시 → 승인 받기
↓
dispatch_mission(M1) → 에이전트 1이 작업 트리에서 생성
↓
M1 완료 → 자동 병합 → M2 자동 디스패치 (depends_on M1)
↓
M2 완료 → 자동 병합
↓
get_report(M2) → files_changed, what_done, errors, next_steps
↓
사용자에게 보고
도구
| 도구 | 목적 |
|---|---|
plan_project(prompt) | AI가 설명을 체인 미션이 있는 프로젝트로 분해 |
create_project(name, path?, description?) | 수동으로 프로젝트 생성, project_id 반환 |
create_mission(project_id, title, prompt, depends_on?, auto_dispatch?) | 미션 추가. depends_on은 미션 ID 문자열 목록 (예: ["abc-123"]). auto_dispatch=true로 설정하면 의존성이 충족될 때 자동 시작. |
dispatch_mission(mission_id, model?, max_turns?) | 미션에 에이전트 시작 |
cancel_mission(mission_id) | 실행 중인 에이전트 중지 |
wait_for_mission(mission_id, timeout_seconds?) | 미션이 완료될 때까지 차단 (아래 참고 참조) |
get_mission_status(mission_id) | 차단하지 않고 미션 진행 상태 확인 |
get_report(mission_id) | 구조화된 보고서 읽기 (변경된 파일, 테스트된 항목, 오류, 다음 단계) |
get_dashboard() | 시스템 개요: 실행 중인 에이전트, 통계, 최근 활동 |
list_projects() | 모든 프로젝트 탐색 |
list_missions(project_id, status?) | 프로젝트의 미션 목록 |
wait_for_mission참고: 이 도구는 최대timeout_seconds(기본값 600) 동안 대화를 차단합니다. 장시간 실행 미션의 경우 사용자가 진행 상황 업데이트를 볼 수 있도록 30~60초마다get_mission_status로 폴링하는 것을 권장합니다.
워크플로우: 계획 → 디스패치 → 모니터링 → 보고
- 계획:
plan_project(prompt="...")호출 →project_id와depends_on체인 및auto_dispatch=true가 설정된 미션 목록 반환. - 계획 표시: 미션 제목, 유형, 의존성 체인을 사용자에게 제시.
- 디스패치: 루트 미션 (빈
depends_on)에dispatch_mission(mission_id=<첫 번째_미션_id>)호출. 나머지 미션은 의존성이 완료됨에 따라 자동 디스패치됨 (plan_project가auto_dispatch=true를 설정하기 때문). - 모니터링:
get_mission_status(mission_id=...)또는get_dashboard()호출하여 진행 상태 확인. - 보고: 미션이 완료되면
get_report(mission_id=...)호출. 주요 내용을 사용자와 공유.
동시성
DevFleet은 기본적으로 최대 3개의 동시 에이전트를 실행합니다 (DEVFLEET_MAX_AGENTS로 설정 가능). 모든 슬롯이 가득 차면 auto_dispatch=true인 미션이 미션 감시자에서 대기열에 들어가고 슬롯이 비워지면 자동으로 디스패치됩니다. 현재 슬롯 사용량은 get_dashboard()에서 확인하세요.
예제
완전 자동: 계획 및 실행
plan_project(prompt="...")→ 의존성이 있는 미션과 계획 표시.- 첫 번째 미션 (
depends_on이 비어 있는 미션) 디스패치. - 나머지 미션은 의존성이 해결됨에 따라 자동 디스패치됨 (
auto_dispatch=true설정됨). - 프로젝트 ID와 미션 개수를 사용자에게 보고하여 무엇이 실행되었는지 알림.
- 모든 미션이 완료, 실패, 또는 취소 같은 종료 상태에 도달할 때까지
get_mission_status또는get_dashboard()로 주기적으로 폴링. - 각 종료 미션에 대해
get_report(mission_id=...)— 성공 요약 및 오류와 다음 단계와 함께 실패 사항 강조.
수동: 단계별 제어
create_project(name="My Project")→project_id반환.- 첫 번째 (루트) 미션에 대해
create_mission(project_id=project_id, title="...", prompt="...", auto_dispatch=true)→root_mission_id캡처. 각 후속 작업에 대해create_mission(project_id=project_id, title="...", prompt="...", auto_dispatch=true, depends_on=["<root_mission_id>"]). - 첫 번째 미션에
dispatch_mission(mission_id=...)호출하여 체인 시작. - 완료되면
get_report(mission_id=...).
순차적 검토 포함
create_project(name="...")→project_id획득.create_mission(project_id=project_id, title="기능 구현", prompt="...")→impl_mission_id획득.dispatch_mission(mission_id=impl_mission_id), 그런 다음get_mission_status로 완료될 때까지 폴링.get_report(mission_id=impl_mission_id)로 결과 검토.create_mission(project_id=project_id, title="검토", prompt="...", depends_on=[impl_mission_id], auto_dispatch=true)— 의존성이 이미 충족되었으므로 자동 시작.
지침
- 사용자가 진행하라고 말하지 않는 한, 항상 디스패치 전에 사용자와 계획을 확인하세요.
- 상태 보고 시 미션 제목과 ID를 포함하세요.
- 미션이 실패하면 재시도 전에 보고서를 읽으세요.
- 대량 디스패치 전에
get_dashboard()에서 에이전트 슬롯 가용성을 확인하세요. - 미션 의존성은 DAG를 형성합니다 — 순환 의존성을 만들지 마세요.
- 각 에이전트는 격리된 git 작업 트리에서 실행되며 완료 시 자동 병합됩니다. 병합 충돌이 발생하면 변경 사항은 수동 해결을 위해 에이전트의 작업 트리 브랜치에 남습니다.
- 수동으로 미션을 생성할 때 의존성이 완료될 때 자동으로 트리거되게 하려면 항상
auto_dispatch=true를 설정하세요. 이 플래그가 없으면 미션은draft상태로 유지됩니다.