20장 · 복합 요청 분해 처리왜 복합 요청 분해가 필요한가 — 한 문장에 일이 세 개다Planner-Worker — 계획하고, 실행하고, 합친다계획도 구조화 출력이다 — 작업 목록을 정해진 모양으로 받는다Worker와 결과 이어 주기 — 앞의 보고가 뒤의 재료가 된다따라하기 — 복합 문의 분해 처리정리와 체크리스트실습문제와 해답
20장. 복합 요청 분해 처리
Planner-Worker — 계획하고, 실행하고, 합친다
한 줄 요약
Planner-Worker는 일을 세 단계로 나누는 구조입니다. Planner(계획 담당)가 문의를 작업 목록으로 쪼개고, Worker(실행 담당)가 작업을 하나씩 처리하고, 마지막에 결과를 취합해 답 하나로 만듭니다. 핵심은 실행하기 전에 계획이 데이터로 먼저 나온다는 점입니다.
1. 세 단계

| 단계 | 입력 | 출력 | LLM 호출 |
|---|---|---|---|
| 계획 (Planner) | 고객 문의 | 작업 목록 | 1번 |
| 실행 (Worker) | 작업 하나 + 지금까지의 결과 | 그 작업의 보고 | 작업 수만큼 |
| 취합 | 문의 + 모든 보고 | 고객에게 보낼 답변 | 1번 |
작업이 세 개인 문의라면 LLM을 적어도 다섯 번 부릅니다. 19장의 라우터는 같은 문의에 두 번(분류 1번, 답변 1번)이었습니다. 복합 요청을 제대로 처리하는 데 드는 비용입니다.
2. 9장의 에이전트 루프와 무엇이 다른가
9장에서 만든 ReAct 루프도 여러 단계를 거쳐 문제를 풉니다. 도구를 전부 주면 이 복합 문의도 풀 수 있습니다. 둘의 차이는 계획이 어디에 있는가입니다.
| ReAct 루프 (9장) | Planner-Worker (이번 장) | |
|---|---|---|
| 계획 | 따로 없다. 매번 "다음에 무엇을 할지"를 그때그때 정한다 | 먼저 세운다. 실행 전에 작업 목록이 나온다 |
| 좋은 점 | 중간 결과를 보고 방향을 바꿀 수 있다 | 무엇을 할지 실행 전에 볼 수 있다. 몇 번 호출할지 미리 안다 |
| 약한 점 | 몇 번 돌지 미리 알 수 없다 | 계획을 세울 때 몰랐던 상황에 대응하지 못한다 |
| 어울리는 일 | 해 봐야 다음 단계를 알 수 있는 일 | 할 일을 미리 셀 수 있는 일 |
"운동화 주문 찾기, 배송비 규정 찾기, 재고 보기"는 문의만 읽어도 할 일을 셀 수 있습니다. Planner-Worker가 어울리는 경우입니다.
3. 계획이 데이터로 있으면 할 수 있는 것
ReAct 루프에서 모델이 "다음엔 이걸 하자"고 정한 것은 지나가면 흔적이 흩어집니다. Planner-Worker의 계획은 실행 전에 코드가 손에 쥐는 데이터입니다. 그래서 이런 일을 할 수 있습니다.
- 출력한다. 이 문의에 무엇을 하려는지 실행 전에 눈으로 봅니다. 이번 장의 코드가
[Plan]을 먼저 찍는 이유입니다. - 검사한다. 작업 수가 너무 많으면 멈추거나, 특정 작업이 들어 있으면 사람의 승인을 받게 할 수 있습니다.
- 기록한다. "이 문의에 왜 이 작업들이 실행됐는가"를 나중에 확인할 수 있습니다.
계획을 먼저 받는다는 것은, 모델이 하려는 일을 실행하기 전에 한 번 들여다볼 자리를 만든다는 뜻입니다.
4. 누가 무엇을 정하는가
| 정하는 것 | 누가 |
|---|---|
| 이 문의를 어떤 작업들로 쪼갤 것인가 | 모델 (Planner) |
| 작업의 종류로 무엇이 가능한가 | 개발자 (작업 유형 네 가지를 코드로 정해 둔다) |
| 각 작업을 어느 함수가 맡는가 | 개발자 (유형과 함수를 잇는 표) |
| 작업을 어떤 순서로, 어떻게 이어서 실행하는가 | 개발자 (반복문) |
| 각 작업 안에서 어떤 도구를 부르는가 | 모델 (Worker 안의 호출) |
| 보고들을 어떤 문장으로 합치는가 | 모델 (취합) |
모델이 정하는 것은 셋, 개발자가 정하는 것도 셋입니다. 모델이 자유롭게 정하는 것처럼 보이는 자리마다 개발자가 그어 둔 테두리가 있습니다. 그 테두리를 어떻게 긋는지가 다음 두 절의 내용입니다.
핵심 정리
- Planner-Worker는 계획 → 실행 → 취합 세 단계입니다.
- LLM 호출은 계획 1번 + 작업 수만큼 + 취합 1번입니다.
- ReAct 루프는 다음 행동을 그때그때 정하고, Planner-Worker는 미리 정합니다.
- 계획이 데이터로 있으면 실행 전에 출력하고, 검사하고, 기록할 수 있습니다.
- 할 일을 미리 셀 수 있는 복합 요청에 어울립니다.