본문 바로가기
AI Agent/Patterns

Plan and Solve

by AteN 2025. 10. 5.

Plan-and-Solve 완전 정리, 프롬프트 한 줄로 단계 누락 줄이기

요약

  • 예시 없이 쓰는 zero-shot 프롬프팅 기법입니다. "Let's think step by step"을 한 단계 발전시켜, 먼저 계획을 세우고 그 계획대로 실행하게 시킵니다.
  • 문제의식이 구체적입니다. zero-shot CoT는 계산 오류, 단계 누락, 의미 오해 세 가지로 틀리는데, 그중 단계 누락을 정조준합니다.
  • 기법은 둘로 나뉩니다. PS는 계획 후 실행으로 단계 누락을, PS+는 거기에 변수 추출과 중간 계산 기록을 더해 계산 오류까지 겨냥합니다.
  • 가장 강한 결과는 이겁니다. 수학 추론에서 예시 8개를 준 8-shot CoT에 필적했습니다. 손으로 예시를 만들지 않고도 few-shot급에 근접했다는 뜻입니다.
  • 실무적 매력은 비용이 거의 0이라는 점입니다. 파인튜닝도 예시 제작도 없이 프롬프트 문장만 바꿉니다.
  • 한계도 분명합니다. 처음 계획이 틀리면 그 위 실행이 통째로 흔들립니다. 그래서 에이전트로 일반화될 때 재계획 루프가 사실상 필수가 됐습니다.

1장. 왜 나왔나

1.1 논문 정보

제목   Plan-and-Solve Prompting: Improving Zero-Shot Chain-of-Thought
       Reasoning by Large Language Models
저자   Lei Wang, Wanyu Xu, Yihuai Lan, Zhiqiang Hu,
       Yunshi Lan, Roy Ka-Wei Lee, Ee-Peng Lim
출처   ACL 2023 Long Paper (pp. 2609-2634), arXiv:2305.04091

1.2 few-shot CoT에서 zero-shot CoT로

few-shot CoT
   사람이 "이렇게 단계적으로 푸는 거야" 하는 예시 몇 개를 손으로 만들어
   프롬프트에 넣는다
   └──► 잘 되지만 손이 많이 간다

zero-shot CoT
   문제 뒤에 "Let's think step by step" 한 줄만 붙인다
   └──► 예시 없이도 모델이 추론 과정을 풀어낸다

수고를 없앤 게 zero-shot CoT의 기여입니다. 그런데 논문은 여기서 멈추지 않습니다.

1.3 zero-shot CoT가 틀리는 세 가지

논문이 진단한 세 유형입니다.

계산 오류 (calculation error)
   중간 산수를 틀린다

단계 누락 오류 (missing-step error)
   풀이에 꼭 필요한 단계를 건너뛴다

의미 오해 오류 (semantic misunderstanding)
   문제 자체를 잘못 이해한다

Plan-and-Solve는 이 중 단계 누락을 정조준합니다.

1.4 직관

사람도 어려운 문제 앞에서 곧장 계산에 뛰어들면 중간을 빼먹는다

   먼저 풀이 개요를 적고 그 순서를 따라가면
   빠뜨리는 단계가 줄어든다

   이 습관을 프롬프트로 모델에게 강제하는 것

요리 비유가 정확합니다. 재료를 보자마자 손이 먼저 나가는 대신, 먼저 레시피를 적고 그 순서대로 조리합니다. 레시피를 적는 단계에서 "아, 소금을 빼먹을 뻔했네"처럼 빠진 단계를 미리 잡습니다.


2장. 두 국면

2.1 구조

문제
   │
   ▼
① Plan (계획)   전체 과제를 더 작은 하위 과제로 나누는 계획을 세운다
   │
   ▼
② Solve (실행)  그 계획에 따라 하위 과제를 순서대로 푼다
   │
   ▼
최종 답

zero-shot CoT가 "생각하자"는 막연한 한 마디였다면, Plan-and-Solve는 "무엇을 어떤 순서로 할지 개요부터 적고 그대로 따라가자"로 추론의 뼈대를 먼저 만들게 합니다.

2.2 여기서 말하는 "계획"의 범위

혼동하기 쉬운 지점이라 명확히 해 둡니다.

Plan-and-Solve 의 계획은
   모델이 텍스트로 적는 추론 계획이다

   외부 도구를 호출하는 실행 계획이 아니다
   프롬프트 한 번으로 계획과 풀이가 한 응답 안에서 이어진다

이 구분이 5장의 ReAct 대비와 6장의 에이전트 일반화로 이어집니다.


3장. PS와 PS+

3.1 기법의 전부는 트리거 문장이다

문제 뒤에 붙이는 지시문만 바뀝니다. 그게 전부입니다.

3.2 PS, 기본형

Let's first understand the problem and devise a plan to solve the problem.
Then, let's carry out the plan and solve the problem step by step.
먼저 문제를 이해하고 풀이 계획을 세우자.
그런 다음 그 계획대로 단계별로 풀자.

겨냥하는 오류는 단계 누락입니다.

3.3 PS+, 강화형

PS에 더 자세한 지시를 얹어 계산 오류까지 겨냥합니다. 추가 지시는 둘입니다.

① 관련 변수와 수치를 먼저 추출하라
   문제에 나온 값들을 명시적으로 뽑아 적게 한다

② 중간 계산 결과를 적으며 계산에 주의하라
   산수를 건너뛰지 말고 한 줄씩 남기게 한다

PS+는 "계획을 세워라"에 더해 "값을 빠짐없이 뽑고, 중간 계산을 눈에 보이게 적어라"를 추가해 풀이의 품질 자체를 끌어올립니다.

3.4 어느 걸 쓰나

PS    단계 누락이 주 문제일 때
PS+   계산이 들어가는 문제. 수학류라면 거의 항상 PS+

4장. 한 문제로 따라가기

4.1 문제

한 베이커리가 하루에 컵케이크 24개를 굽는다. 오전에 전체의 3/4을 팔았고, 오후에는 남은 것의 절반을 팔았다. 하루가 끝났을 때 남은 컵케이크는 몇 개인가?

4.2 계획 단계

PS+는 먼저 변수를 뽑고 개요를 적습니다.

변수 추출
   하루 생산량 = 24
   오전 판매 = 전체의 3/4
   오후 판매 = (오전 후 남은 것)의 1/2

계획
   1) 오전 판매량을 구한다
   2) 오전이 끝난 뒤 남은 수를 구한다
   3) 오후 판매량을 구한다
   4) 최종 남은 수를 구한다

4.3 실행 단계

1) 오전 판매량      = 24 x 3/4 = 18
2) 오전 후 남은 수  = 24 - 18  = 6
3) 오후 판매량      = 6 x 1/2  = 3
4) 최종 남은 수     = 6 - 3    = 3

답: 3개

4.4 두 함정이 어떻게 막혔나

이 예시의 요점입니다.

단계 누락이 막힌 지점
   계획의 2번("오전 후 남은 수")을 명시했기 때문에
   오후 판매를 전체 24 가 아니라 남은 6 에 적용해야 한다는 걸 놓치지 않는다

   계획 없이 곧장 가면
   "24의 절반인 12" 같은 실수가 슬며시 끼어든다

계산 오류가 막힌 지점
   각 줄의 산수를 눈에 보이게 적었기 때문에 검산이 쉽다

설명용 예시이고, 실제 논문의 프롬프트와 수치는 원문을 따릅니다.


5장. 실험 결과

5.1 평가 규모

데이터셋   세 부류(산술, 상식, 기호 추론)에 걸친 10개
백본       GPT-3

5.2 논문이 보고한 것

① PS 와 PS+ 가 모든 데이터셋에서
   zero-shot CoT 를 큰 차이로 일관되게 앞섰다

② Zero-shot Program-of-Thought 프롬프팅에 필적하거나 능가했다

③ 수학 추론에서 예시 8개를 준 8-shot CoT 에 필적했다

③이 가장 강한 셀링포인트입니다. 손으로 만든 예시 없이도 few-shot급 성능에 근접했다는 뜻입니다.

5.3 오류 분석

저자들은 PS 가 단계 누락 오류를
PS+ 가 추가로 계산 오류를 줄인다고 보고한다

   다만 "단계 누락 비율 몇 %에서 몇 %" 같은 구체 수치는
   초록 수준에서 확인되지 않는다
   본문 표를 인용할 때는 원문을 직접 대조하는 게 안전하다

5.4 이 수치를 읽을 때

중요한 유보 조건입니다.

위 성능은 GPT-3 시점의 측정이다

   요즘처럼 추론이 강한 모델은
   프롬프트 없이도 내부적으로 계획을 세우는 경향이 있어
   "계획을 명시하게 만드는" 이득이 그때만큼 크지 않을 수 있다

   이건 원 논문 범위를 벗어난 해석이므로 검증되지 않은 추정이다

2차 자료가 이 유보를 빼고 인용하는 경우가 많습니다. 최신 모델에서 그대로 재현되리라 단정하면 안 됩니다.


6장. 계획 계열 안에서의 위치

6.1 이웃 기법과 비교

Plan-and-Solve는 "계획을 세우는" 기법 중 가장 가벼운 축입니다.

기법 계획의 성격 특징
zero-shot CoT 계획 없음 한 줄로 추론만 유도
Plan-and-Solve 추론 계획, 프롬프트 1회 계획을 글로 적고 그대로 실행
ReAct 계획과 행동을 번갈아 관찰마다 LLM 재호출. 도구 사용에 강함
Tree of Thoughts 경로 탐색 여러 계획을 트리로 펼쳐 백트래킹
ReWOO 도구 호출 선계획 외부 도구 시퀀스를 미리 통째로 계획

6.2 핵심 대비는 ReAct와의 관계

ReAct
   추론과 행동을 번갈아 섞어
   매 관찰마다 큰 모델을 다시 부른다
   호출 수가 단계에 비례한다

Plan-and-Solve
   계획과 실행을 분리한다
   순수 프롬프팅 형태에서는 계획과 풀이가 한 응답에 담겨
   호출 1회로 끝난다

교환 관계가 명확합니다.

Plan-and-Solve 가 유리한 것   호출 수, 지연, 비용
ReAct 가 유리한 것            실행 도중 환경이 바뀔 때의 적응력

7장. 프롬프팅에서 에이전트로

7.1 plan-and-execute 패턴

Plan-and-Solve의 "계획 먼저" 사상은 이후 에이전트 아키텍처로 일반화됐습니다.

Planner   큰 모델이 전체 계획을 한 번 세운다
   │
   ▼
Executor  각 단계는 가벼운 실행기가 처리한다

   큰 모델을 계획하고 재계획할 때만 부른다
   ReAct 의 단계 비례 재호출보다 호출 수와 지연과 비용이 준다

LangChain은 이 패턴을 공식 제공하며 "Wang et al.의 Plan-and-Solve Prompting에 느슨히 기반"한다고 밝힙니다.

7.2 재계획 루프

첫 계획이 틀리면 그 위 실행이 다 흔들리므로, 실무 구현은 재계획 루프를 덧붙입니다.

Hugging Face smolagents

   planning_interval    N 스텝마다 계획을 갱신
   Human-in-the-Loop    사람이 계획을 검토하고 수정하는 워크플로

순수 프롬프팅 기법을 에이전트로 옮기면 반드시 이 보완이 붙는다는 게 이 계보의 특징입니다.

7.3 저비용 환경에서의 응용

매 관찰마다 큰 모델을 부르는 대신
한 번의 호출로 계획(또는 도구와 인자)을 한꺼번에 뽑고
값이 갖춰지면 즉시 실행한다

   Plan-and-Solve 가 프롬프팅 층에서 보여 준
   "계획과 실행 분리"의 실무 버전이다

온디바이스나 저비용 환경 에이전트가 이 사상을 빌려 호출 수를 압축합니다.


8장. 한계와 정리

8.1 네 가지 한계

① 계획 오류의 전파
   처음 계획이 틀리면 그 위 실행이 통째로 무너진다
   그래서 실무에선 재계획 루프가 사실상 필수다

② PS 만으로는 계산 오류가 남는다
   수학류에서 PS+ 의 "변수와 중간계산 적기"를 빼면
   계산 실수가 그대로 남는다

③ 동적 과제와 도구 과제엔 부적합
   외부 환경 상호작용이 필요한데 순수 PS 를 쓰면 변화에 대응하지 못한다
   그땐 ReAct 나 plan-and-execute 로 간다

④ 강추론 모델에서의 이득은 열린 문제
   GPT-3 시점의 이득이 최신 모델에서 얼마나 남는지는 재검증이 필요하다

8.2 핵심 셋

① zero-shot CoT 의 단계 누락을
   "계획을 먼저 적고 그대로 실행하라"는 프롬프트로 줄인다

② PS+ 는 "변수와 중간계산을 적어라"를 더해 계산 오류까지 겨냥하고
   수학 추론에서 8-shot CoT 에 필적했다 (GPT-3 기준)

③ 파인튜닝도 예시 제작도 없이 프롬프트 문장만 바꿔 얻는 이득이다
   이 비용 구조가 실무적 매력의 전부다

8.3 남는 질문

  • 계획을 내부적으로 이미 세우는 강추론 모델에서도 계획 명시의 이득이 남을까. 남는다면 어떤 과제 유형에서인지가 재검증 대상입니다.
  • 계획의 품질을 실행 전에 검증할 수 있나. 지금은 실행해 봐야 계획이 틀렸는지 알 수 있습니다.
  • 재계획 주기를 어떻게 정하나. 너무 잦으면 호출 절감 효과가 사라지고, 너무 드물면 어긋난 계획으로 오래 갑니다.

8.4 용어 정리

용어 한 줄 뜻
Plan-and-Solve (PS) "계획을 먼저 세우고 단계대로 실행"하라는 zero-shot 프롬프팅 기법
PS+ PS에 변수 추출과 중간 계산 기록 지시를 더해 계산 오류까지 겨냥한 강화판
zero-shot CoT 예시 없이 한 줄 지시로 단계적 추론을 유도하는 프롬프팅
단계 누락 오류 추론에서 필요한 단계를 빠뜨려 생기는 오답
계획-실행 분리 계획과 행동을 한 번에 나누는 방식. ReAct의 인터리빙과 대비
Planner / Executor 큰 모델이 계획하고 가벼운 실행기가 단계를 처리하는 분업
재계획 (replanning) 실행 중 계획을 다시 세우거나 갱신하는 루프
Human-in-the-Loop 계획이나 행동을 사람이 검토하고 수정하도록 끼워 넣는 것

8.5 참고자료

'AI Agent > Patterns' 카테고리의 다른 글

DoT (Division of Thoughts)  (0) 2026.08.11
Reflexion  (0) 2025.10.19
ReWOO: Decoupling Reasoning from Observations for Efficient Augmented Language Models  (0) 2024.10.14
ReAct (Reasoning + Acting)  (0) 2024.02.05

댓글