거대 언어 모델(LLM)은 한 번에 너무 많은 일을 시키면 비틀거립니다. 50페이지짜리 PDF를 채팅창에 던져 넣고, 동시에 구조적 분석, 리스크 평가, 그리고 요약본을 만들어 달라고 해보세요. 결과는 대개 빈약하거나, 혼란스럽거나, 아예 틀린 내용일 것입니다. 더 나은 방법은 기계적인 방식입니다. 작업을 개별 단계로 나누는 것입니다. 첫 번째 단계의 출력을 두 번째 단계로 직접 전달하고, 이런 식으로 계속 이어가는 것이죠. Anthropic은 이 패턴을 프롬프트 체이닝(prompt chaining)이라 부르고, Google은 순차적 파이프라인(sequential pipeline)이라고 부릅니다. 두 이름 모두 같은 것을 설명합니다. 각 스테이션이 하나의 특정 변환을 처리하는 조립 라인과 같습니다.
실제 적용 사례
하나의 거대한 프롬프트 대신, 작고 집중된 일련의 단계들을 구축합니다. 벤더 보안 평가를 처리하는 컴플라이언스 팀을 상상해 보세요. 1단계는 스캔된 PDF에서 원문 텍스트를 추출합니다. 2단계는 암호화 표준과 액세스 제어에 대한 모든 언급을 식별합니다. 3단계는 해당 결과물을 내부 체크리스트와 대조합니다. 4단계는 보안 책임자를 위한 짧은 메모 초안을 작성합니다. 한 에이전트는 PDF를 텍스트로 변환하고, 다음 에이전트는 그 텍스트에서 특정 데이터를 추출하며, 마지막 에이전트는 그 데이터를 바탕으로 요약을 작성합니다. 이 단계 중 어느 것도 화려하지 않으며, 어느 것도 멀티태스킹을 하지 않습니다. 각 부분은 한 가지 일을 제대로 수행합니다.
이것이 조립 라인 비유가 적절한 이유입니다. 공장에서 한 명의 작업자가 자동차 전체를 조립하지는 않습니다. 전문화는 품질을 높게 유지하고 실패 모드를 좁게 만듭니다. 언어 모델에도 동일한 논리가 적용됩니다. JSON 추출만 요청하는 프롬프트는, 동일한 요청에서 의견과 서식까지 요구하는 프롬프트보다 환각을 일으킬 가능성이 낮습니다.
추측이 아닌 게이트를 구축하라
모든 체인의 가장 취약한 지점은 핸드오프(handoff, 단계 간 전달)입니다. 모델이 정중한 거절을 하거나, JSON 대신 마크다운 덩어리를 반환하거나, 응답을 잘라버릴 수도 있습니다. 만약 이런 쓰레기 데이터가 2단계로 흘러 들어간다면, 전체 체인이 무너집니다. 해결책은 게이트(gate)입니다.
게이트는 모델 호출이 아닙니다. 단순한 코드입니다. 단계 사이에 실행되는 짧은 스크립트를 작성하는 것입니다. 출력이 비어 있지 않은지 길이를 확인할 수도 있고, 키(key)가 3단계에서 기대하는 것과 일치하는지 JSON 스키마 검증을 실행할 수도 있습니다. 정규 표현식(regex) 체크를 통해 다음 프롬프트가 구성되기도 전에 이메일 주소나 날짜 필드가 실제로 존재하는지 확인할 수도 있습니다. 이를 통해 잘못된 출력에 비용을 낭비하기 전에 오류를 차단할 수 있습니다. 게이트는 마이크로초 단위의 연산 비용만 발생하지만, 실패한 다운스트림 LLM 호출은 토큰, 지연 시간, 그리고 여러분의 정신 건강을 앗아갑니다.
공장 바닥의 품질 검사 지점이라고 생각하세요. 위젯의 개수를 세는 데 AI가 필요하지는 않습니다. 여러분에게 필요한 것은 자(ruler)입니다.
체이닝을 해야 할 때와 멈춰야 할 때
프롬프트 체이닝이 모든 문제에 적합한 것은 아닙니다. 작업이 고정되어 있고 반복 가능한 단계로 이루어져 있을 때 사용하세요. 월간 재무 보고서, 표준화된 계약 검토, 로그 분석 파이프라인 등이 좋은 예입니다. 절차를 체크리스트로 작성할 수 있다면, 아마도 체이닝이 가능할 것입니다. 또한 복잡한 작업에 높은 정확도가 필요할 때도 체이닝을 활용해야 합니다. 문제를 단계별로 나누면 모델이 한 번에 하나의 논리적 계층만 처리하도록 강제할 수 있습니다. 마지막으로, 체인은 거대한 단일 프롬프트보다 디버깅하기가 더 쉽습니다. 요약이 틀렸다면 추출 단계를 점검하면 됩니다. 추출이 틀렸다면 원문 텍스트를 점검하면 됩니다. 검토할 수 있는 중간 결과물(artifacts)이 있기 때문입니다.
단계를 미리 알 수 없는 경우에는 프롬프트 체이닝을 피하십시오. 탐색적 연구, 개방형 브레인스토밍 또는 조사 작업은 직선적인 경로를 따르지 않습니다. 속도가 유일한 우선순위일 때도 체이닝을 건너뛰십시오. 체인은 직렬 방식입니다. 1단계가 끝나기 전에는 2단계를 시작할 수 없습니다. 만약 단계들이 서로 의존하지 않는다면, 대신 병렬로 실행하십시오. 동일한 문서에 대한 세 개의 독립적인 번역을 체이닝할 이유는 전혀 없습니다.
경직성의 함정
이러한 모든 구조의 대가는 경직성입니다. 고정된 체인은 새로운 상황에 적응할 수 없습니다. 벤더가 6개 필드로 구성된 양식을 보냈는데 여러분의 스키마 검증 게이트가 5개를 기대한다면, 라인은 멈춥니다. 사용자가 PDF 대신 Word 문서를 업로드하면 첫 번째 단계가 깨지고 나머지 체인은 처리할 데이터가 없게 됩니다.
더 나쁜 것은 오류가 전파된다는 점입니다. 초기에 발생한 실수는 전체 체인을 통해 흘러갑니다. 만약 PDF 추출기가 재무 수치에서 마이너스(-) 기호를 누락시킨다면, 모든 다운스트림 단계는 그 잘못된 숫자를
