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 바이너리인지 확인하세요(localhost 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=<first_mission_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와 미션 개수를 보고하여 사용자가 무엇이 실행되었는지 알 수 있도록 함.
- 모든 미션이 종료 상태(
completed,failed, 또는cancelled)에 도달할 때까지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="Implement feature", 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="Review", prompt="...", depends_on=[impl_mission_id], auto_dispatch=true)— 종속성이 이미 충족되었으므로 자동 시작.
지침
- 사용자가 진행하라고 명시하지 않는 한, 파견 전에 항상 계획을 사용자와 확인하세요.
- 상태를 보고할 때 미션 제목과 ID를 포함하세요.
- 미션이 실패하면 재시도 전에 보고서를 읽으세요.
- 대량 파견 전에
get_dashboard()로 에이전트 슬롯 가용성을 확인하세요. - 미션 종속성은 DAG를 형성합니다. 순환 종속성을 만들지 마세요.
- 각 에이전트는 격리된 git 워크트리에서 실행되며 완료 시 자동 병합됩니다. 병합 충돌이 발생하면 에이전트의 워크트리 브랜치에 변경 사항이 남아 수동 해결을 기다립니다.
- 수동으로 미션을 생성할 때, 종속성이 완료되면 자동으로 트리거되도록 하려면 항상
auto_dispatch=true를 설정하세요. 이 플래그가 없으면 미션은draft상태로 유지됩니다.