실행 중 계획이 통째로 무너지면, Agent는 어떻게 스스로 경로를 바꾸는가
← 전체 목차 · 이전: 복잡한 작업일수록, 계획을 왜 모델에게 통째로 맡기면 안 되는가 · 다음: Agent가 같은 자리를 맴돌 때, 언제 멈춰야 하는지 어떻게 아는가
한 번에 다 쪼개 놓은 계획은 미래를 예측할 수 있다는 가정 위에 서 있다. 실행 도중 도구를 못 쓰게 되거나, 중간 결과가 기대와 어긋나거나, 사용자가 요구를 바꾸는 순간 그 가정은 깨진다. 작업 전 계획을 세워야 하는 이유가 계획의 "정적 골격"을 다뤘다면, 이 문서는 그 골격이 실행 중 깨졌을 때 어떻게 동적으로 재구성하는가를 다룬다.
정적 사전 계획이 실패하는 다섯 지점
| 실패 시나리오 | 결과 |
|---|
| 정적 사전 계획이 모든 경계·예외를 못 덮음 | 경계를 벗어나는 순간 통제 불능 |
| 고정 분해 입도가 난이도에 적응하지 못함 | 지나치게 굵거나 지나치게 잘게 쪼개짐 |
| 실행 결과 검증 메커니즘 부재 | 잘못된 길을 가도 제때 멈추지 못하고 끝까지 감 |
| 요구 변경 시 증분 계획 능력 부재 | 전부 처음부터 다시 함 |
| 다중 목표 충돌 시 동적 우선순위 조정 부재 | 실행이 뒤엉키고 핵심 목표를 이탈함 |
원인을 "모델이 부족해서"로 돌리면 해법은 영원히 "더 강한 모델로 바꾸는 것"에 머문다. 실제로는 작업 복잡도, 환경 불확실성, 피드백 메커니즘 부재, 목표 동적성이라는 네 가지가 겹친 결과다.
1층: 전역 굵은 계획 + 국소 세밀 계획, 2단계 혼합
상위층 (전역 굵은 계획)
이정표급 단계 목표만 골라낸다 — 큰 방향만 정하고 세부는 정하지 않는다
하위층 (단계별 세밀 계획)
한 스텝을 끝낼 때마다 → 현재 상태를 기반으로 다음 스텝의 구체 동작을 정한다
전체 흐름을 미리 확정하지 않는다
간단한 작업은 완전한 실행 계획을 바로 생성하고, 복잡한 작업은 단계적으로 점진 분해한다. 이 구조는 입도 문제(다음 스텝 계획이 이전 스텝 실행 이후에 일어나므로 과다 분해가 없다)와 동적 의존 문제(전후 스텝의 강의존이 자연히 소화된다)를 동시에 해소한다.
2층: 편차도로 분류하는 피드백 검증
매 라운드 실행 후 → 결과 검증 + 진도 평가 → 편차도 계산
├─ 소편차 → 파라미터 자동 보정, 도구 호출 방식 조정 → 계속 실행
└─ 대편차 → 국소 재계획 트리거
실패한 구간만 다시 함
완료된 유효 성과는 완전히 보존
절대 처음부터 다시 하지 않음
편차를 이진(성공/실패)으로 다루지 않고 정도로 다뤄야 한다. 이상 전부를 "처음부터 다시"로 승격시키면 이미 완료된 성과를 낭비하고 실행 비용을 감당 불가능한 수준으로 밀어올린다.
3층: 경로 상시 비교 후 평탄 전환
실행 중 현재 경로의 효율·비용을 지속적으로 평가하다가, 더 나은 대체 경로가 발견되면 수익을 먼저 비교한 다음 평탄하게 전환한다. 새 경로가 보인다고 바로 갈아타는 것이 아니라 — 갈아타기 전에 계산부터 한다는 뜻이다.
진행 상황 앵커 — 단절·재시도가 진행률을 삼키지 않도록
완료된 서브태스크마다 세 가지를 자동으로 수행한다.
- 진행 상황 기록
- 결과 아카이브
- 상태 표시(완료 / 대기 실행 / 실패 원인)
컨텍스트 리프레시나 인터페이스 재시도로 중단되어도, Agent는 최신 진행 앵커를 읽어 끊긴 지점부터 이어 실행한다. 진행 앵커가 없으면 재시도와 리프레시 자체가 진행률을 삼켜버리는 가장 큰 원흉이 된다.
후치 전역 검증 복기
작업이 끝난 뒤 초기 요구에 대조해 세 가지를 검증한다.
| 검증 항목 | 내용 |
|---|
| 단계 완전성 | 빠진 단계가 없는가 |
| 결과 정확성 | 산출물이 맞는가 |
| 목표 일치도 | 최초 요구와 부합하는가 |
편차가 발견되면 자동으로 보완 실행·자동 교정한다. 후치 복기가 없으면 Agent는 결과를 인도하는 것이 아니라 스텝을 실행하고 있을 뿐이다.
극단 상황 안전망
| 수단 | 내용 |
|---|
| 상한 제약 | 최대 계획 라운드 / 최대 실행 스텝 / 최장 실행 시간 |
| 보장 경로 | 핵심 작업에는 고정 흐름의 보장 실행 경로를 미리 준비해, 동적 계획이 실패하면 전환 |
| 모니터링 | 계획 성공률, 평균 재계획 횟수, 작업 완료 시간, 경로 유효율 |
| 강등 | 동적 계획 모듈 장애 시 "정적 사전 계획 + 사람 수동 재실행"으로 강등 |
핵심 통찰
- "정적 사전 분해"가 계획 실패의 근본 원인이지 모델 능력 부족이 아니다 — 한 번에 다 쪼개는 것은 미래가 예측 가능하다는 가정이다. 도구 불가용·결과 편차·요구 변경 중 하나만 벌어져도 이 가정은 깨진다. 원인을 모델로 돌리면 "더 강한 모델로 바꾸기"에서 영원히 못 벗어난다.
- 계획 입도는 상수가 아니라 적응해야 하는 변수다 — 지나치게 굵으면 중간 스텝이 빠져 실행 중 막히고, 지나치게 잘게 쪼개면 무의미한 도구 호출이 쌓여 연산과 응답을 함께 갉아먹는다. 어떤 고정 입도의 분해기도 특정 유형의 작업에서 반드시 무너진다.
- 재계획은 켜고 끄는 스위치가 아니라 편차도에 따른 등급 처리다 — 소편차는 파라미터·호출 방식만 조정하면 충분하고, 대편차만 국소 재계획을 트리거한다. 모든 이상을 "처음부터 다시"로 승격시키면 완료 성과를 낭비하고 비용을 감당 불가능한 수준으로 밀어올린다.
- 완료된 유효 성과를 보존하는 것이 프로덕션급과 Demo급을 가르는 분수령이다 — 국소 경로가 막혔다고 전량 재실행하면 Demo에서는 안 보이지만 장시간 작업에서는 재앙이다. "실패한 구간만 다시 한다"는 제약은 거꾸로 "실패 구간을 특정할 수 있어야 한다"는 요구로 이어진다.
- 경로 전환은 계산부터 하고 나서 움직인다 — 더 나은 대체 경로를 발견했다고 바로 전환하는 것이 아니라, 수익을 먼저 비교하고 나서 평탄하게 전환한다. 수익 비교 없는 자동 전환은 그 자체로 새로운 무효 탐색이 된다.
- 안전망은 선택지가 아니다: 라운드·스텝·시간 세 상한 + 보장 경로가 있어야 작업이 끊기지 않는다 — 동적 계획의 자유도가 높을수록 계획 순환에 빠질 가능성도 커진다. 그래서 자유도에는 반드시 하드 제약이 짝을 이뤄야 한다.
- 부정당한 방안도 강등 예비안이 될 수 있다 — "정적 사전 계획 + 사람 수동 재실행"은 주 방안으로는 불합격이지만, 동적 계획 모듈이 장애일 때는 기본 실행 능력을 보장하는 옳은 선택이다. 주 방안과 강등 방안의 평가 기준은 원래부터 다르다.
엔지니어링 실전 Tips
- "전체 흐름을 미리 확정하지 않는다"를 하드 제약으로 못 박을 것: 하위층 세밀 계획은 반드시 상위 스텝 실행 완료 이후에 일어나야 한다. 이 한 줄이 입도 문제와 전후 강의존 문제를 동시에 해결한다.
- 편차도를 계산 가능한 값으로 만들 것: 피드백 검증층의 분류는 "현재 산출물과 단계 목표 간 편차도"에 의존한다. 단계 목표를 비교 가능한 형태로 써 놓지 않으면 검증층은 장식품이 된다.
- 국소 재계획으로 전량 재실행을 대체해 연산을 절약할 것: 추론 기반 모델을 업그레이드하지 않고도, 무효 탐색과 중복 실행을 줄이는 것만으로 "보통 모델로도 높은 계획 효율"을 낼 수 있다.
- 업무 시나리오별로 계획 템플릿을 미리 만들어 둘 것: 데이터 처리·콘텐츠 생성·문제 트러블슈팅 등은 각각의 분해 전략과 제약 규칙을 갖게 하면, 매번 모델이 처음부터 생각하는 것보다 계획 정확도가 훨씬 높다.
- 가관측성 지표는 계획 행위 자체에 붙일 것: 계획 성공률, 평균 재계획 횟수, 작업 완료 시간, 경로 유효율 — 이 네 지표는 결과의 성패가 아니라 계획 체계 자체의 건강도를 직접 반영한다.
- 강등 경로를 미리 설계해 둘 것: 모듈이 장애 난 다음 "사람이 어떻게 개입할지" 그 자리에서 정하면 이미 늦다. "정적 사전 계획 + 사람 수동 재실행"을 명시적 강등 전략으로 문서에 박아 둘 것.