병렬 작업 (Parallel Work)은(는) 무엇을 하나요?
병렬성은 단위마다 새로운 컨텍스트를 제공하고 속도를 높입니다. 대신 조정 비용이 따릅니다: 기다려야 하는 팬인, 충돌하지 않아야 하는 병합, 생성자가 아닌 별도의 판단자가 필요합니다. 단위가 진정으로 독립적일 때 사용하고, 조정 비용을 명시적으로 지불하십시오.
전제 조건
- 단위가 독립적이어야 합니다: 어떤 단위도 다른 단위의 결과를 기다리지 않고 시작할 수 있어야 합니다.
- 단위가 무엇인지 알고 있어야 합니다. 원인을 모른다면 먼저 조사 디스패치를 한 번 보내십시오.
- 쓰기가 격리되어야 합니다: 각 단위는 서로 다른 파일에 쓰거나, 각 단위가 자체 작업 트리에서 실행되어 해당 단위가 수정한 파일만 커밋해야 합니다 (자세한 내용: delegate/references/harness-notes/claude-code.md의 격리 섹션 참조).
하나라도 충족되지 않으면 → 직렬화하거나 먼저 조사하십시오.
패턴
팬아웃, 팬인. 동일한 단계의 N개 디스패치를 단위당 하나씩, 함께 보냅니다. 모든 디스패치를 기다리는 단일 통합 디스패치가 (그 기다림이 배리어입니다) 전달 파일들을 하나로 병합합니다. 각 단위의 출력을 파일로 유지하고, 통합자는 파일 경로를 읽으며 여러분의 컨텍스트를 읽지 않습니다.
기계적 팬아웃. 하나의 process 디스패치가 정확한 변경 사항을 한 번 결정합니다. N개의 일반 디스패치가 이를 그대로 각 대상에 적용합니다. 하나의 review 디스패치가 전체 세트를 검사합니다. 오케스트레이터는 세트가 아무리 작아도 직접 편집을 적용하지 않습니다.
메이커/체커. 결과를 만든 사람이 그 결과를 평가하지 않습니다. review를 다른 에이전트(해당 도메인에 리뷰어 유형의 에이전트가 있으면 그 에이전트로, 없으면 다른 역할의 전문가로)에게 성공 기준과 아티팩트 경로와 함께 라우팅하고, 생성자의 추론 내용은 전달하지 않습니다.
생성 후 필터링. 후보를 생성하기 위해 팬아웃합니다. 하나의 디스패치가 작성된 루브릭에 따라 중복을 제거하고 점수를 매깁니다. 점수가 높은 후보만 계속 진행됩니다. 생성 전에 루브릭을 먼저 작성하십시오.
토너먼트. 한 번에 판단하기에는 너무 큰 세트를 순위 매길 때 사용합니다. 각각 두 항목을 보유한 쌍별 비교 디스패치, 파일에 저장된 브래킷을 사용합니다. 비교 판단이 절대 점수보다 더 신뢰할 수 있습니다.
가설 팬아웃. 근본 원인 분석용: 각기 다른 증거 소스(로그, 코드, 데이터)당 하나의 디스패치가 자신의 소스만으로 가설을 수립합니다. 그런 다음 각 가설당 하나의 디스패치가 이를 반증하려고 시도합니다. 반증에서 살아남은 것이 결과입니다.
조건부 중지 루프. 크기를 알 수 없는 작업용: 관찰 가능한 조건(새로운 발견 없음, 게이트 출력에 오류 없음, 체크리스트 파일에 체크되지 않은 항목 없음)이 충족될 때까지 디스패치를 반복합니다. 첫 번째 반복 전에 캡을 설정하십시오 (기본값 5). 캡에 도달하면 나머지와 함께 PARTIAL을 보고합니다.
체크리스트 팬아웃
- [ ] 항목이 있는 마크다운 파일은 바로 사용 가능한 단위 목록입니다: 체크되지 않은 각 항목당 하나의 디스패치를 보내고, 각 디스패치는 자신의 항목을 DONE 시 체크하도록 지시받은 후, "체크되지 않은 항목이 없음" 조건에서 조건부 중지 루프를 실행합니다. 같은 파일을 명명하는 항목은 직렬화하십시오.
캡 및 중지 조건
모든 루프와 모든 팬인은 시작하기 전에 숫자가 명시되어 있어야 합니다: 반복 횟수, 재디스패치 횟수, 또는 단위 수. 캡에 도달하면 사용자에게 PARTIAL 또는 BLOCKED를 보고하고, 절대 조용히 재시도하지 않습니다.
지속적 팀
일부 하네스는 공유 작업 목록과 메시징 기능이 있는 장기 실행 에이전트 팀을 제공합니다. 이들은 에이전트가 일관되지 않게 따르는 지시 및 통신 오버헤드를 추가하며, 하네스 간에 이식 가능하지 않습니다. 위의 패턴은 이러한 기능이 전혀 필요하지 않습니다. 에이전트가 작업 중간에 메시지를 교환해야 하는 경우에만 팀을 사용하고, 그런 경우 하네스 노트를 참조하십시오.
참고 자료
- delegate — 각 단위가 사용하는 프롬프트 템플릿.
- delegate/references/harness-notes/claude-code.md — Claude Code에서 동시 디스패치를 보내고, 작업 트리를 격리하며, 긴 파이프라인을 워크플로 스크립트로 이동하는 방법.