오케스트레이션
실행, 작업, 감독되는 워커, 메시지 및 결정 게이트를 사용하여 에이전트를 조정합니다.
오케스트레이션은 Orca의 구조화된 다중 에이전트 계층으로, 실행(네임스페이스 + 코디네이터 받은 편지함), 작업, 디스패치, 감독되는 워커, 메시지 및 결정 게이트로 구성됩니다.
소유권, 완료 추적 또는 DAG가 필요할 때 사용합니다. 일회성 프롬프트에는 orca terminal send을 사용합니다. 감독 없이 소유권 전체를 인계하려면 orca-cli 스킬의 worktree/terminal 명령을 사용합니다.
실험적 기능
이 명령을 사용하기 전에 Settings(설정) → Experimental(실험)에서 오케스트레이션을 활성화합니다. CLI는 실행 중인 Orca 런타임과 통신하므로 먼저 orca status --json가 성공해야 합니다.
이전 명령 사용 중단
orca orchestration run 및 run-stop와 coordinator-start / coordinator-stop는 아무런 효과도 수행하지 않습니다. 이 명령은 orca skills get orchestration --full를 안내하는 복구 텍스트를 반환합니다. 아래의 실행 + 워커 시작 흐름을 사용합니다.
핵심 모델
섹션 제목: “핵심 모델”- 실행 — 지속되는 네임스페이스와 기본 받은 편지함입니다. 워커를 예약하거나 배치하지 않습니다.
- 작업 — 명세, 의존성 및
pending,ready,dispatched,completed,failed,blocked중 하나의 상태가 있는 작업 항목입니다. - 디스패치 — 터미널에서 작업을 한 번 시도하는 단위이며
worker_done/ 하트비트 수명 주기를 관리합니다. - 메시지 — 받은 편지함 메일(
status,dispatch,worker_done,escalation,question,heartbeat등)입니다. - 결정 게이트 — 해결될 때까지 작업을 차단하는 코디네이터 소유 질문입니다.
완료 권한은 활성 디스패치 컨텍스트에서 발생합니다. 작업자 완료 및 하트비트 메시지에는 taskId 및 dispatchId가 모두 포함되어야 합니다.
task_...과 같이 터미널에 인쇄된 작업 ID는 클릭 가능한 링크입니다. 하나를 클릭하면 Orca 런타임에 작업의 현재 디스패치를 요청하고 작업이 원격 또는 SSH 런타임에 있는 경우를 포함하여 할당된 터미널에 초점을 맞춥니다.
권장 감독 루프
섹션 제목: “권장 감독 루프”orca orchestration run-create --objective "Split checkout QA and summarize blockers" --jsonorca orchestration task-create --spec "Audit billing settings for mobile layout" --task-title "Billing audit" --jsonorca orchestration worker-start --task <taskId> --worktree current --agent codex --json# or new worktree:orca orchestration worker-start --task <taskId> --worktree new-child --name billing-audit --agent codex --setup run --json# optional per-worker model / effort (Claude, Codex, Muse, Cursor, Antigravity, OpenCode; not with --terminal):orca orchestration worker-start --task <taskId> --worktree current --agent claude --model <opaque-model-id> --effort high --json# Run Antigravity as a supervised worker in a local child worktree:orca orchestration worker-start --task <taskId> --worktree new-child --name research --agent antigravity --setup run --json--model은 Claude, Codex, Muse, Cursor, Antigravity 및 OpenCode에 대해 불투명한 제공자 모델 ID를 허용합니다. Muse에는 설치된 Muse에서 허용하는 모델 ID(예: muse-spark-1.3)를 전달하고, Antigravity에는 agy models가 보고한 모델 슬러그를 사용합니다. OpenCode 워커가 요청한 모델은 실행 호스트에서 검증되고 해당 워커에만 적용되므로 다른 실행의 기본 모델은 변경되지 않습니다. --effort을 사용하려면 --model이 필요하며, 해당 agent/model에서 그 수준을 지원할 때만 적용됩니다. 두 플래그 모두 기존 창을 재사용하는 --terminal과 함께 사용할 수 없습니다. Codex 모델이 Orca의 기본 제공 목록보다 최신인 경우(예: gpt-6.x), --effort은 max 및 ultra를 포함한 알려진 전체 어휘를 허용하며, 설치된 Codex에서 이를 지원해야 합니다. 알 수 없는 노력 수준 이름은 계속 거부됩니다. 재정의는 해당 실행에만 적용되며 시작 확인서의 launch.requested / launch.effective 아래에 표시됩니다. 연합형 실행에는 시작 환경 설정 지원을 알리는 워커 호스트가 필요합니다.
채팅 UI가 켜져 있으면 worker-start는 새 에이전트 탭과 같은 방식으로 지원되는 에이전트를 시작합니다. 에이전트와 호스트가 지원하면 구조화된 채팅으로, 그렇지 않으면 터미널로 시작합니다. --terminal은 계속 기존 창을 재사용합니다.
Orca는 로컬 Antigravity 하위 작업 트리의 워커를 시작하기 전에 해당 작업 트리를 신뢰하도록 준비합니다. 이 신뢰 설정은 SSH를 통한 Antigravity 감독을 지원하지 않습니다. 일반 에이전트 기능은 지원되는 에이전트를 참조하세요.
완료를 기다립니다(Delivery의 모든 메시지를 처리한 다음 확인 응답을 보냅니다).
orca orchestration check --wait --types worker_done,escalation,question --timeout-ms 900000 --jsonorca orchestration check --ack <deliveryId> --wait --types worker_done,escalation,question --timeout-ms 900000 --json워커 완료 시 다음을 실행합니다(워커 창에서 주입된 ID를 포함합니다).
orca orchestration send \ --type worker_done \ --subject "Completed mobile audit" \ --body "Fixed footer overlap; no follow-ups." \ --task-id <taskId> \ --dispatch-id <dispatchId> \ --outcome succeeded \ --files-modified "src/app/settings/Billing.tsx" \ --jsonworker_done에는 --outcome succeeded|failed가 필요합니다.
검사하거나 복구하려면 다음을 실행합니다.
orca orchestration worker-show --dispatch <dispatchId> --jsonorca orchestration worker-read --dispatch <dispatchId> --limit 50 --jsonorca orchestration worker-stop --dispatch <dispatchId> --json# After an accepted worker_done: reuse the same terminal for a follow-up Dispatch, or release it# (archives inspectable output, then closes only that coordinator-owned agent terminal):orca orchestration worker-release --dispatch <dispatchId> --json# Keep a settled worker live for debugging when the user asked to retain it:orca orchestration worker-retain --dispatch <dispatchId> --json# retry placement is explicit — --retry-of does not inherit --on/worktree:orca orchestration worker-start --task <taskId> --retry-of <dispatchId> --worktree current --agent codex --json출력을 다시 읽기 위한 목적으로 완료된 워커 터미널을 열어 두지 마세요. worker-release 후 worker-read을 사용합니다. release가 release_pending 또는 release_unknown를 반환할 때 광범위한 terminal close으로 대체하지 말고, 영수증에 표시된 복구 작업을 따릅니다.
연합 워커(선택 사항)
섹션 제목: “연합 워커(선택 사항)”orca orchestration worker-start \ --task <taskId> \ --on windows \ --worktree new-top-level \ --repo <exact_remote_repo_selector> \ --name remote-worker \ --agent codex \ --setup run \ --jsonorca orchestration send --to dispatch:<dispatchId> --subject "Follow-up" --body "…" --json이후 명령은 디스패치 ID로 라우팅되므로 --on을 반복하지 않습니다.
저수준 디스패치(사용자 지정 토폴로지)
섹션 제목: “저수준 디스패치(사용자 지정 토폴로지)”orca worktree create --name billing-audit --agent codex --jsonorca terminal wait --terminal <workerHandle> --for tui-idle --timeout-ms 60000 --jsonorca orchestration dispatch --task <taskId> --to <workerHandle> --inject --json메시징 참고 사항
섹션 제목: “메시징 참고 사항”- 기본
check은 바인딩된 실행에서 확인되지 않은 가장 오래된 Delivery(FIFO)입니다.--ack가 될 때까지 재생합니다. --peek/--all는 메일을 소비하지 않습니다.- 그룹 주소:
@all,@idle,@claude,@codex,@opencode,@gemini,@droid,@grok,@cursor,@worktree:<id>이며worker_done/ 하트비트에는 절대 사용하지 않습니다. - PowerShell 그룹 주소는
--to "@all"처럼 따옴표로 묶습니다.
orca orchestration send --to @all --subject "Heads up" --body "Pausing dispatches for a review." --jsonorca orchestration send --to @idle --subject "Anyone free?" --jsonorca orchestration send --to @codex --subject "Codex agents only" --json대기가 활성화된 동안 CLI는 15초마다 작은 JSON 하트비트 줄을 stderr에 내보냅니다. stdout에는 최종 명령 결과만 유지됩니다.
근로자 계약
섹션 제목: “근로자 계약”디스패치된 워커는 코디네이터와 통신하는 방법을 안내하는 서문을 받습니다.
- 실패한 경우에도
--outcome와 함께worker_done을 정확히 한 번 보냅니다. - 수행한 내용, 발견한 내용 및 남은 내용을 담은 짧은
--body요약을 포함합니다. - 오래된 재시도가 잘못된 디스패치를 완료하지 않도록 작업 ID와 디스패치 ID를 모두 포함합니다.
- 활성 작업이 오래 걸리면
heartbeat메시지를 보냅니다. - 차단 질문에는 로컬 TUI 프롬프트 대신
orca orchestration ask를 사용합니다.
orca orchestration ask \ --to <coordinatorHandle> \ --question "Should I update the shared component or only this page?" \ --options "shared,page-only" \ --timeout-ms 600000 \ --json--json을 사용하면 ask가 단일 JSON 객체를 출력하므로 워커가 이를 jq -r .answer으로 파이프할 수 있습니다.
결정 게이트
섹션 제목: “결정 게이트”작업자와 코디네이터 간의 질문에는 ask을 사용하세요. 코디네이터가 작업 DAG를 생성했고 결정이 기록될 때까지 작업을 차단하려는 경우 명시적 게이트를 사용합니다.
orca orchestration gate-create \ --task <taskId> \ --question "Merge the shared button change into the task branch?" \ --options '["yes","no"]' \ --json
orca orchestration gate-resolve --id <gateId> --resolution "yes" --jsonorca orchestration dispatch-show --task <taskId> --jsonorca orchestration dispatch-show --task <taskId> --preamble --jsonorca orchestration task-list --jsonorca orchestration task-update --id <taskId> --status blocked --result '{"reason":"waiting on credentials"}' --json오케스트레이션 상태를 의도적으로 포기할 때만 초기화합니다.
orca orchestration reset --tasks --jsonorca orchestration reset --messages --jsonorca orchestration reset --all --jsonreset은 런타임 전역 오케스트레이션 상태에 영향을 줍니다. 의도한 정리 작업이 아니라면 다른 코디네이터가 활성 상태일 때 실행하지 않습니다.
올바른 명령 선택
섹션 제목: “올바른 명령 선택”감시 중인 에이전트에게 간단한 프롬프트를 표시하려면 orca terminal send을 사용하세요.
워커가 worker_done을 보고하고 코디네이터를 통해 질문하며 작업 ID로 추적되어야 하면 orca orchestration worker-start 또는 dispatch --inject를 사용합니다.
지속되는 실행 네임스페이스와 감독되는 다중 에이전트 루프가 필요하면 사용 중단된 orchestration run 명령이 아니라 orca orchestration run-create + 작업 + 워커를 사용합니다.
전체 가이드
섹션 제목: “전체 가이드”명령 플래그는 앱과 함께 변경됩니다. 설치 후 에이전트는 다음을 실행해야 합니다.
orca skills get orchestration --full