안녕하세요. (주)이프입니다. AI 코딩 에이전트를 여러 대 띄우는 것과, 여러 대를 지휘하는 것은 다른 일입니다. 띄우기만 하면 사람이 창을 오가며 누가 끝났는지, 누가 막혔는지 일일이 확인해야 합니다. 오르카(Orca)에는 이 일을 구조로 만들어 주는 오케스트레이션(orchestration) 기능이 있습니다. 오늘은 오르카 오케스트레이션의 개념을, 간단한 브라우저 게임을 에이전트 여러 대가 나눠 만드는 예시로 풀어 봅니다.
이 글의 범위
명령과 개념은 오르카 CLI 1.4 의 orchestration 명령 기준입니다. 게임 만들기는 개념을 설명하기 위한 예시 시나리오입니다. 여러 에이전트 도구 비교는 이전 글 "AI 코딩 에이전트 여러 대 관리하는 법" 에 정리해 두었습니다.
먼저 단어 여섯 개
| 용어 | 뜻 | 게임 예시에서 |
|---|---|---|
| 코디네이터 | 일을 나누고 배정하고 결과를 받는 에이전트 | 전체를 지휘하는 에이전트 한 대 |
| 런 (Run) | 목표와 메일함을 가진 작업 묶음 | "블록 깨기 게임 만들기" |
| 태스크 (Task) | 나눠진 일 하나. 앞뒤 순서(의존 관계)를 지정할 수 있음 | 규칙 정의, 게임 로직, 화면, 통합 테스트 |
| 디스패치 (Dispatch) | 태스크를 워커에게 맡긴 공식 시도 하나 | "게임 로직을 Codex 에게" 한 번 |
| 워커 (Worker) | 태스크를 받아 실제로 일하는 에이전트 | Codex, Claude 같은 에이전트 |
| 결정 게이트 (Gate) | 사람의 결정이 나올 때까지 태스크를 멈춰 두는 장치 | "난이도 A / B 중 무엇?" |
오케스트레이션 구조 한눈에 보기

예시 : 블록 깨기 게임을 넷으로 나누기
게임은 오케스트레이션을 연습하기 좋은 과제입니다. 결과가 눈에 바로 보이고, 게임 로직과 화면처럼 나누기 쉬운 경계가 있고, 다 만든 뒤 브라우저에서 직접 실행해 확인할 수 있기 때문입니다.
| 태스크 | 하는 일 | 먼저 끝나야 할 것 | 워커 |
|---|---|---|---|
| 1. 규칙 · 구조 | 공 · 패들 · 블록의 상태와 점수 규칙, 파일 구조 정의 | 없음 | 코디네이터 |
| 2. 게임 로직 | 충돌 판정, 점수, 스테이지 전환 | 1 | Codex |
| 3. 화면 · 조작 | 캔버스 그리기, 키보드 입력 | 1 | Claude |
| 4. 통합 · 테스트 | 합쳐서 실행하고 내장 브라우저로 동작 확인 | 2, 3 | Claude |
2 와 3 은 서로 기다리지 않고 동시에 진행됩니다. 4 는 둘 다 끝나야 시작합니다. 코디네이터가 이 흐름을 오르카 명령으로 만들면 대략 다음과 같습니다.
orca orchestration run-create --objective "블록 깨기 게임 만들기" orca orchestration task-create --task-title "게임 로직" --spec "충돌 판정 · 점수 · 스테이지" --deps '["태스크1 ID"]' orca orchestration task-create --task-title "화면 · 조작" --spec "캔버스 그리기 · 키 입력" --deps '["태스크1 ID"]' orca orchestration worker-start --task "태스크2 ID" --worktree current --agent codex orca orchestration worker-start --task "태스크3 ID" --worktree current --agent claude orca orchestration check --wait --types "worker_done,escalation,question"
마지막 줄의 check 가 지휘의 핵심입니다. 코디네이터는 창을 돌아다니지 않고 메일함만 봅니다. 워커가 끝나면 worker_done, 막히면 question, 혼자 풀 수 없으면 escalation 이 메일함에 들어옵니다.
사람은 결정 게이트에서 고른다
에이전트끼리 정하면 안 되는 일이 있습니다. 게임에서는 난이도, 디자인 방향, 범위 같은 것입니다. 이런 지점에 결정 게이트를 걸면 해당 태스크는 사람이 답할 때까지 멈춥니다.
orca orchestration gate-create --task "태스크2 ID" --question "공 속도 난이도는?" --options '["A : 천천히 시작해 빨라짐","B : 처음부터 빠름"]'
사람이 답하면 게이트가 풀리고 멈춰 있던 태스크가 이어서 진행됩니다. 결정은 사람이, 반복 작업은 에이전트가 하는 구조를 명령으로 강제하는 셈입니다.
워커가 지켜야 하는 약속
- 맡은 태스크만 합니다. 막히면 코디네이터에게 질문(ask)하고, 혼자 화면에 질문창을 띄우지 않습니다.
- 끝나면 worker_done 을 정확히 한 번 보냅니다. 세 문장 요약과 함께 성공인지 실패인지를 명시합니다. 실패를 문장 속에만 숨기지 않습니다.
- 끝낸 뒤에는 새 일을 시작하지 않고 기다립니다. 다음 일은 코디네이터가 정합니다.
지휘할 때 저지르기 쉬운 실수
| 실수 | 왜 문제인가 | 대신 이렇게 |
|---|---|---|
| 응답이 없으니 실패로 보고 재시도 | 워커가 아직 일하는 중이면 같은 일을 두 에이전트가 동시에 고치게 됨 | 응답 없음은 "확인 시점" 일 뿐. 워커 상태를 조회해 확실히 멈췄을 때만 중지 · 재시도 |
| 의존 관계를 길게 줄 세움 | 앞 단계 하나가 늦으면 전체가 멈춤 | 가능하면 병렬로 나누고, 순서는 3~4 단계 이내로 |
| 창 제목이나 화면을 보고 판단 | 보이는 것과 실제 상태가 다를 수 있음 | 디스패치 단위의 공식 상태와 메시지로 판단 |
| 끝난 워커 터미널 방치 | 자원이 쌓이고 어떤 결과가 최종인지 헷갈림 | 결과를 확인한 뒤 정리(release)하거나, 디버깅용이면 명시적으로 남김(retain) |
오케스트레이션까지 필요한 경우, 필요 없는 경우
| 상황 | 추천 |
|---|---|
| 일 하나를 다른 에이전트에게 통째로 넘김 | 오케스트레이션 없이 새 워크트리에 에이전트를 띄워 넘기기(핸드오프) |
| 같은 과제를 두 AI 에 시켜 비교 | 병렬 실행 후 교차 리뷰 (이전 글 "ChatGPT · Claude 교차 코드리뷰") |
| 여러 조각이 순서를 갖고 합쳐져야 함 | 오케스트레이션 : 태스크 · 의존 관계 · 게이트 |
| 중간에 사람이 방향을 골라야 함 | 오케스트레이션의 결정 게이트 |
검사 · 제어 개발에 적용한다면
저희가 만드는 검사 프로그램도 화면, 알고리즘, 테스트처럼 나눌 수 있어 같은 구조를 쓸 수 있습니다. 다만 안전 인터록, 판정 기준, 현장 반영 같은 일은 워커에게 맡기지 않고 결정 게이트로 사람에게 올립니다. 어떤 일을 사람이 쥐고 있어야 하는지는 이전 글 "AI 코딩 에이전트에게 맡기면 안 되는 일" 에 정리했습니다.
마치며
에이전트가 많아질수록 필요한 것은 더 똑똑한 에이전트가 아니라 일을 나누고, 순서를 정하고, 결정 지점을 표시하는 구조입니다. 오르카 오케스트레이션은 그 구조를 런 · 태스크 · 디스패치 · 게이트라는 명령으로 만들어 줍니다. 작은 게임 하나로 먼저 연습해 보시길 권합니다. 멀티 에이전트 개발 환경 구성이 궁금하시면 편하게 문의해 주세요.
홈페이지 : www.intelligentfactory.co.kr/insights
☎ 070-7543-2022 · ✉ hssong@intelligentfactory.co.kr · 🌐 www.intelligentfactory.co.kr
아래 QR 코드를 카카오톡으로 스캔하시면 바로 상담이 연결됩니다.




