콘텐츠로 이동

싱글샷 프롬프팅의 한계와 루프의 등장

대규모 언어 모델(LLM)을 처음 다룰 때 우리는 보통 하나의 프롬프트를 넣고 하나의 응답을 받는다. 질문을 던지면 답이 나온다. 이 단순한 상호작용 모델을 싱글샷(single-shot) 프롬프팅이라 부른다. 번역, 요약, 분류처럼 입력에서 출력으로 한 번에 매핑되는 작업에서는 이 방식이 놀랍도록 잘 작동한다.

문제는 작업이 여러 단계의 행동과 외부 세계와의 상호작용을 요구하는 순간 드러난다. “이 저장소의 실패하는 테스트를 고쳐줘”라는 요청을 생각해 보자. 모델은 코드를 읽어야 하고, 테스트를 실행해야 하고, 출력을 보고, 수정하고, 다시 실행해야 한다. 단 한 번의 텍스트 생성으로는 이 중 어느 것도 실제로 수행할 수 없다. 모델은 “아마 이렇게 고치면 될 것”이라는 그럴듯한 텍스트를 만들 뿐, 그 가설이 맞는지 확인할 방법이 없다.

┌──────────────────────────────────────────────────────────┐
│ 싱글샷 프롬프팅의 한계 │
├──────────────────────────────────────────────────────────┤
│ ① 행동 불가 모델은 텍스트만 생성, 도구 실행/관찰 불가 │
│ ② 피드백 부재 자신의 출력이 맞는지 확인할 외부 신호 없음 │
│ ③ 단계 압축 다단계 추론을 한 번의 forward pass에 욱여넣음 │
└──────────────────────────────────────────────────────────┘
  1. 행동 불가능성 — 모델의 출력은 토큰 시퀀스다. 파일을 실제로 수정하거나, API를 호출하거나, 웹을 검색하는 “행동”은 모델 바깥의 무언가가 대신 실행해 줘야 한다.
  2. 피드백 부재 — 싱글샷에는 자신의 답이 옳은지 검증할 외부 신호가 없다. 그래서 모델은 자신 있게 틀린(confidently wrong) 답을 내놓기 쉽다.
  3. 단계 압축 — 20단계가 필요한 문제를 한 번의 생성으로 풀려 하면, 중간에 한 번이라도 어긋난 추론이 그대로 최종 답을 오염시킨다.

루프의 등장: 행동하고, 관찰하고, 다시 생각하기

섹션 제목: “루프의 등장: 행동하고, 관찰하고, 다시 생각하기”

이 한계를 넘어서는 핵심 아이디어는 단순하다. 모델을 한 번 부르고 끝내지 말고, 도구를 실행한 결과를 다시 모델에게 먹여 반복하라. 이것이 **에이전틱 루프(agentic loop)**다. Anthropic은 에이전트를 “환경적 피드백에 기반해 루프 안에서 도구를 사용하는 LLM” 으로 정의한다. Simon Willison은 더 압축해서 “LLM 에이전트는 목표를 달성하기 위해 도구를 루프 안에서 실행한다” 고 표현한다.

# 싱글샷: 한 번 부르고 끝
answer = model.generate(prompt)
# 루프: 도구 결과를 다시 모델에 먹여 반복
messages = [user(task)]
while True:
response = model.generate(messages, tools=tools)
if response.stop_reason == "end_turn":
break # 모델이 "끝"이라고 선언
for call in response.tool_calls:
result = run_tool(call) # 외부 세계에서 실제로 행동
messages.append(tool_result(result)) # 관찰을 컨텍스트에 추가

이 짧은 루프가 앞서 본 세 한계를 정확히 보완한다. run_tool행동을 가능하게 하고, 도구 결과가 피드백을 제공하며, 반복이 단계 압축을 풀어 한 번에 한 걸음씩 나아가게 한다.

그런데 위 코드를 그대로 돌리면 곧 새로운 문제들이 쏟아진다. 루프가 영원히 멈추지 않으면? 같은 실수를 무한히 반복하면? 컨텍스트가 너무 길어져 모델이 중요한 정보를 놓치면? 비용이 폭발하면? 도구 결과에 악의적 지시가 섞여 들어오면? 이 모든 질문에 답하는 공학이 바로 Loop Engineering이다. 루프를 돌게 만드는 것은 쉽지만, 루프를 믿을 수 있고, 멈출 수 있고, 저렴하고, 안전하게 만드는 것은 어렵다. 이 사이트의 나머지 60여 개 챕터는 정확히 그 “어려운 부분”을 다룬다.

다음 챕터에서는 “에이전트”라는 단어의 정의를 더 엄밀히 파고들어, 무엇이 에이전트이고 무엇이 아닌지를 구분하는 기준을 세운다.

참고 자료