17장 — 추론 기법

이 장은 지능형 에이전트를 위한 고급 추론 기법을 다룹니다. 이러한 기법은 단순한 순차 연산을 넘어 에이전트 내부의 추론 과정을 명시적으로 드러냅니다. 덕분에 에이전트는 문제를 분해하고, 중간 단계를 고려하며, 더 견고하고 정확한 결론에 도달할 수 있습니다.

이 장을 관통하는 원리는 하나입니다.

이러한 고급 방법들 사이에서 공통으로 중요한 원리 가운데 하나는 추론 단계에 더 많은 연산 자원을 할당한다는 것이다. 즉 에이전트 또는 기반 LLM이 질문에 답하는 데 더 많은 처리 시간이나 단계를 부여한다는 의미다. 빠르게 한 번에 처리하는 방식이 아니라, 에이전트가 반복적으로 개선하고, 여러 풀이 경로를 탐색하며, 외부 도구를 활용할 수 있게 하는 것이다.

(옮긴이) 최근 LLM들은 응답을 생성할 때 추론 시간과 능력을 조절할 수 있는 reasoning_effort 라는 파라미터가 존재한다.

실제 적용 및 활용 사례

분야 추론 시간을 늘리면
복합 질의응답 여러 추론 경로를 검토해야 하는 다단계(multi-hop) 질의에서 정보를 종합하는 데 도움이 된다
수학 문제 풀이 단계별 풀이를 보여 주고 정확한 계산은 코드를 직접 실행해 얻는다. 더 정교한 코드 생성과 검증이 가능해진다
코드 디버깅 및 생성 테스트 결과를 토대로 코드를 반복 개선(자기 교정)한다. 철저하게 디버깅을 반복할 수 있다
전략 수립 다양한 선택지·결과·전제 조건을 따져 계획을 세우고 실시간 피드백으로 조정(ReAct)한다
의료 진단 증상·검사 결과·병력을 체계적으로 평가해 진단에 이르며 각 단계에서 근거를 설명한다. 더 포괄적인 감별 진단이 가능해진다
법률 분석 논리적 단계를 상세히 설명하고 자기 교정으로 논리적 일관성을 확보한다

핵심 추론 기법들

Chain-of-Thought (CoT)

단계별 사고 과정을 모방하여 LLM의 복잡한 추론 능력을 크게 높입니다. 직접적인 답을 제시하는 대신 일련의 중간 추론 단계를 생성하도록 유도합니다.

입력 → A → B → … → Z → 답(A+B+…+Z)

CoT의 핵심 장점은 어려운 단일 단계 문제를 일련의 더 간단한 단계들로 바꾸어, LLM의 추론 과정을 더 투명하게 보여 준다는 점이다. 이 접근 방식은 정확도를 높일 뿐만 아니라, 모델이 어떻게 결정을 내리는지에 대한 유용한 통찰을 제공하여 디버깅과 이해에 도움이 된다.

구현은 단계별 추론을 보여 주는 퓨샷 예시를 제공하거나 단순히 “단계적으로 사고하라” 고 지시하는 등 다양합니다. 자율 에이전트에 특히 중요한데, 복잡한 환경에서도 더 신뢰할 수 있고 검증할 수 있는 행동을 하게 해주기 때문입니다.

책의 예시는 “정보 검색 에이전트”에게 5단계 과정(질문 분석 → 검색 쿼리 작성 → 정보 검색 시뮬레이션 → 정보 종합 → 검토하고 개선)을 지시하고, 양자 컴퓨터 질문에 대해 사고 1~5를 거쳐 최종 답변을 내는 과정을 보여 줍니다. 여기서 “에이전트의 사고 과정”은 지시받은 단계를 실행하는 내부 독백이고, “에이전트의 최종 답변” 은 그 결과로 다듬어진 결과물입니다.

Tree-of-Thought (ToT)

CoT를 기반으로 확장한 기법으로, 여러 중간 단계로 분기하여 다양한 추론 경로를 탐색하고 트리 구조를 형성할 수 있게 합니다.

        입력
      ╱  │  ╲
     A   A*   A
     │   │╲   │╲
     B   B* B  B
         │╲
         C* B
         …
    답: A* + B* + C* + …

이 접근 방식은 역추적(backtracking), 자기 교정, 대안 탐색을 지원합니다. 여러 가능성을 트리 형태로 유지한 채 다양한 추론 경로를 검토한 뒤 최종 답변을 정할 수 있어, 전략적으로 계획을 세우고 결정을 내려야 하는 어려운 과제에서 대응 능력을 높입니다.

자기 교정 (Self-Refinement)

에이전트가 생성한 콘텐츠와 중간 사고 단계를 스스로 평가하는 과정입니다. 스스로 점검하면서 자신의 이해나 풀이에서 모호한 점, 정보 공백, 부정확한 부분을 찾아냅니다. 4장의 리플렉션과 이어지는 기법입니다.

책의 예시가 구체적입니다. “새로운 친환경 제품 라인 ‘GreenTech Gadgets’를 알리는 짧고 흥미로운 소셜 미디어 게시물(최대 150자)” 이라는 요구에 대한 초안은 이랬습니다.

초안(48자): "신제품이 나왔습니다. 친환경적이고 기술적입니다. 지금 GreenTech Gadgets를 구매하세요!"

에이전트는 사고 3(불일치/약점 파악) 에서 스스로 짚어냅니다.

  • 흥미도: 그다지 흥미롭지 않다. 평범하고 개성이 없다.
  • 친환경 강조: “친환경적”이라고 언급하지만, 그것이 왜 좋은지 구체적인 혜택이 드러나지 않는다.
  • 행동 유도: “지금 구매하세요!”는 무난하지만, 더 강렬한 표현이 가능하다.
  • 임팩트: 신제품 출시에 걸맞은 설렘이 느껴지지 않는다.

그리고 최종 수정본(78자)을 내놓습니다. 이모지로 시각적 흥미를 더하고, 더 강한 행동 유도 문구와 해시태그를 추가하면서도 글자 수 제한을 준수했습니다.

결국 이 기법은 에이전트의 콘텐츠 생성 과정에 품질 관리를 직접 녹여 넣는다.

PALMs — 계산은 코드에 맡긴다

프로그램 지원 언어 모델(Program-Aided Language Models) 은 LLM에 기호 추론 기능을 결합한 방식으로, LLM이 문제 해결 과정에서 파이썬 같은 코드를 생성하고 실행할 수 있게 합니다.

PALMs는 복잡한 계산, 논리 연산, 데이터 조작을 결정론적 프로그래밍 환경에 위임한다. LLM이 정확성이나 일관성에서 한계를 보일 수 있는 작업에, 전통적 프로그래밍의 강점을 활용하는 방식이다.

from google.adk.tools import agent_tool, google_search
from google.adk.agents import Agent
from google.adk.code_executors import BuiltInCodeExecutor

search_agent = Agent(
    model='gemini-2.0-flash', name='SearchAgent',
    instruction="You're a specialist in Google Search",
    tools=[google_search],
)

coding_agent = Agent(
    model='gemini-2.0-flash', name='CodeAgent',
    instruction="You're a specialist in Code Execution",
    code_executor=[BuiltInCodeExecutor],
)

root_agent = Agent(
    name="RootAgent", model="gemini-2.0-flash", description="Root Agent",
    tools=[agent_tool.AgentTool(agent=search_agent),
           agent_tool.AgentTool(agent=coding_agent)],
)

16장에서 본 “에이전트는 결정론적 워크플로를 대체하는 게 아니라 결정론적 지원이 있어야 성과를 낸다”는 원칙이 여기서도 반복됩니다.

RLVR — 사고 시간을 스스로 조절하는 모델

많은 LLM이 사용하는 표준 CoT 프롬프팅은 효과적이지만 다소 기초적인 추론 방식이다. 문제의 복잡도에 맞춰 적응하지 못하고, 한 가지 정해진 사고 흐름만 따라간다.

이 한계를 극복하려고 등장한 것이 추론 모델입니다. 답을 제시하기 전에 문제에 따라 달라지는 “사고” 시간을 투입하며, 이 과정에서 수천 토큰에 달하는 더 길고 유연한 CoT를 생성합니다. 덕분에 자기 교정이나 역추적 같은 더 복잡한 행동이 가능해집니다.

이를 가능하게 한 핵심 혁신이 검증 가능한 보상 기반 강화 학습(Reinforcement Learning with Verifiable Reward, RLVR) 입니다. 정답이 알려진 문제(수학이나 코드 등)로 모델을 학습시키면, 모델은 시행착오를 통해 효과적인 긴 추론을 생성하는 법을 배웁니다. 사람이 일일이 감독하지 않아도 문제 해결 능력이 발전합니다.

결국 이런 모델은 단순히 답만 내놓는 것이 아니라 계획 수립, 모니터링, 평가 같은 고급 기술을 보여 주는 “추론 궤적(reasoning trajectory)” 을 생성합니다.

ReAct — 추론과 행동을 번갈아

ReAct(Reasoning and Acting) 는 CoT 프롬프팅과, 에이전트가 도구를 통해 외부 환경과 상호작용하는 능력을 결합한 패러다임입니다.

프롬프트 → ReAct ⇄ 공개/비공개 지식 베이스
              ↓
       생각 · 행동 · 관찰 결과 → 답
              ↑___________|

ReAct는 추론과 행동을 번갈아 가며 작동한다. 에이전트가 행동을 실행하고, 결과를 관찰하며, 이 관찰을 다음 추론에 반영하는 것이다. “사고, 행동, 관찰, 사고…”의 반복 루프를 통해 에이전트는 계획을 상황에 따라 조정하고, 오류를 바로잡으며, 환경과의 다중 상호작용이 필요한 목표를 달성할 수 있다.

에이전트가 실시간 피드백에 반응하기 때문에, 외부 피드백 없이 순차적으로 진행되는 CoT에 비해 더 견고하고 유연하게 문제를 풀 수 있습니다.

CoD와 GoD — 여러 모델이 논쟁한다

CoD(Chain of Debates, 토론 체인) 는 마이크로소프트가 제안한 프레임워크로, 여러 다양한 모델이 협력하고 논쟁하여 문제를 해결하며, 단일 AI의 “사고 체인”을 넘어섭니다.

이 시스템은 AI 회의처럼 작동한다. 서로 다른 모델이 초기 아이디어를 제시하고, 상대방의 추론을 비판하며, 반론을 교환한다. 주된 목표는 집단 지성을 활용해 정확도를 높이고, 편향을 줄이며, 최종 답변의 전반적 품질을 높이는 것이다. AI 버전의 동료 평가(peer review) 와 같은 이 방식은 추론 과정에 대한 투명하고 신뢰할 수 있는 기록을 만든다.

GoD(Graph of Debates, 토론 그래프) 는 토론을 단순한 체인이 아니라 유동적이고 비선형적인 네트워크로 다시 설계한 프레임워크입니다. 논거는 개별 노드이고, 노드 사이의 간선은 ‘지지(supports)’ 또는 ‘반박(refutes)’ 같은 관계를 나타내 실제 토론의 다중 스레드 특성을 반영합니다.

결론이 도출되는 방식이 다릅니다. 단순히 순서의 끝에서 나오는 것이 아니라, 전체 그래프에서 가장 견고하게 뒷받침되는 논거 군집을 찾아 도출됩니다. 여기서 “견고하게 뒷받침된다”는 것은 기본 사실(ground truth), 외부 출처로 검증한 사실적 증거, 그리고 여러 모델이 도달한 합의를 포함합니다.

MASS — 멀티 에이전트 설계를 자동 최적화

멀티 에이전트 시스템의 효과는 개별 에이전트를 프로그래밍하는 프롬프트의 품질에이전트 간 상호작용을 결정하는 연결 구조(topology) 양쪽 모두에 크게 좌우됩니다. Multi-Agent System Search(MASS) 는 이 설계를 자동화·최적화하는 프레임워크로, 3단계 최적화를 수행합니다.

단계 내용 예시
① 블록 수준 프롬프트 최적화 개별 에이전트 유형(“블록”)의 프롬프트를 먼저 개별 최적화한다. 연결 구조 최적화가 잘못 구성된 에이전트의 문제가 쌓인 채 진행되지 않도록 하기 위함이다 HotpotQA에서 “토론자” 에이전트 프롬프트가 “주요 언론사의 전문 팩트체커” 역할을 하도록 구성된다
② 워크플로 연결 구조 최적화 각 구조가 더해 주는 “증분 영향력(incremental influence)” 을 측정하는 영향력 가중 방법으로 유망한 조합을 탐색한다 MBPP 코딩 과제에서 최적 구조는 여러 라운드의 리플렉션 + 별도 실행 에이전트가 테스트 케이스로 검증하는 하이브리드였다
③ 워크플로 수준 프롬프트 최적화 최고 성능의 연결 구조를 확정한 뒤, 시스템 전체를 대상으로 프롬프트를 다시 최적화한다 DROP에서 “예측자” 프롬프트가 “당신은 긴급 뉴스 보도를 위해 핵심 수치 정보를 추출하는 고도로 전문화된 AI입니다. 생방송이 당신의 정확성과 속도에 의존하고 있습니다” 로 다듬어진다

MBPP 사례의 함의가 흥미롭습니다. 코딩에서는 반복적 자기 교정과 외부 검증을 결합한 구조가 더 단순한 멀티 에이전트 설계보다 우수하다는 것입니다.

도출된 핵심 설계 원칙은 셋입니다.

  1. 개별 에이전트를 먼저 고품질 프롬프트로 최적화한 뒤에 조합한다.
  2. 제약 없는 탐색 공간을 무작정 탐색하기보다 영향력이 큰 연결 구조를 조합하여 구성한다.
  3. 최종적으로 워크플로 수준의 공동 최적화를 통해 에이전트 간 상호의존성을 모델링하고 최적화한다.

딥리서치 — 추론 기법의 집합체

딥리서치(Deep Research) 는 지칠 줄 모르는 체계적인 리서치 도우미 역할을 하도록 설계된 AI 에이전틱 도구입니다. Perplexity AI, 구글 제미나이의 리서치 기능, 오픈AI의 ChatGPT 내 고급 기능이 주요 플랫폼입니다.

근본적 변화는 검색 과정 자체가 달라졌다는 점입니다.

일반적인 검색은 즉시 링크를 제공하고 종합 작업은 사용자에게 맡긴다. 딥리서치는 다른 방식으로 작동한다. 사용자는 AI에게 복잡한 질의를 맡기고 보통 몇 분가량의 “시간 예산” 을 주고, 몇 분 기다린 대가로 상세한 보고서를 받는다.

이 시간 동안 AI가 자율적으로 수행하는 과정이 넷입니다.

① 초기 탐색   초기 프롬프트를 토대로 여러 차례 표적화된 검색을 실행
② 추론과 개선  1차 결과를 분석해 종합하고, 공백·모순·더 다뤄야 할 부분을 비판적으로 짚어냄
③ 후속 탐구   내부 추론을 토대로 공백을 메우는 새로운 세밀한 검색 수행
④ 최종 종합   검증된 모든 정보를 하나의 응집력 있고 체계적인 요약으로 정리

추론 스케일링 법칙

이 장에서 가장 중요한 원리입니다. 학습용 스케일링 법칙이 모델 생성 과정에서 데이터와 연산을 늘릴수록 품질이 어떻게 향상되는지를 다룬다면, 추론 스케일링 법칙은 LLM이 실제로 답변을 생성하는 동안 발생하는 트레이드오프를 다룹니다.

이 법칙의 핵심은 추론 시점에 더 많은 연산 자원을 투입하면, 상대적으로 작은 LLM에서도 더 우수한 결과를 얻을 수 있는 경우가 많다는 사실이다. 이는 반드시 더 강력한 GPU를 쓴다는 뜻이 아니라, 더 정교하거나 자원 집약적인 추론 전략을 사용한다는 뜻이다.

대표적인 전략은 다양한 빔 탐색(diverse beam search) 이나 자기 일관성(self-consistency) 기법으로 여러 후보 답변을 생성하게 한 뒤, 선택 메커니즘으로 가장 좋은 결과를 골라내는 것입니다.

이 법칙에 따르면, 작은 모델이라도 추론 시 더 넉넉한 “사고 예산”을 부여받으면, 더 단순하고 연산 부담이 적은 생성 과정에 의존하는 훨씬 큰 모델보다 때때로 더 나은 성능을 낼 수 있다.

균형 잡아야 할 요인은 셋입니다.

요인 내용
모델 크기 작은 모델은 본래 메모리와 저장 공간 요구량이 적다
응답 지연 시간 추론 연산량을 늘리면 지연이 커질 수 있다. 이 법칙은 성능 향상이 지연 증가를 상쇄하는 지점을 알려 준다
운영 비용 더 큰 모델은 전력 소비와 인프라 요구가 커진다. 비용을 불필요하게 늘리지 않으면서 성능을 최적화하는 방법을 보여 준다

결론은 명확합니다. 단순한 “크면 좋다” 패러다임을 넘어, AI 배포에 더 세밀하고 경제적인 접근이 가능해집니다.

실습 — DeepSearch 오픈소스 코드

구글이 오픈소스로 공개한 DeepSearch 코드는 gemini-fullstack-langgraph-quickstart 저장소에 있습니다. LangGraph 에이전트가 제미나이 모델로 검색 질의를 그때그때 생성하고, Google Search API로 웹 리서치를 통합하며, 리플렉션 기반 추론으로 지식의 공백을 파악하고, 검색을 반복 개선하며, 출처가 표시된 답변을 종합합니다.

# 에이전트 그래프 생성
builder = StateGraph(OverallState, config_schema=Configuration)

# 순환 대상 노드 정의
builder.add_node("generate_query", generate_query)
builder.add_node("web_research", web_research)
builder.add_node("reflection", reflection)
builder.add_node("finalize_answer", finalize_answer)

# 진입점을 `generate_query`로 설정

흐름은 이렇습니다.

질문 → 쿼리 생성 → 웹 검색 → 성찰 ─[추가 조사 필요]→ 웹 검색(반복)
                                └─[맥락이 충분함]→ 답변 생성 → 답변

스택은 React with Vite, Tailwind CSS, Shadcn UI, LangGraph, 구글 제미나이이고 Apache License 2.0입니다. 다만 단서가 붙습니다.

이 릴리스는 잘 구조화된 데모 수준이며, 운영 환경에 바로 적용할 수 있는 백엔드로 설계된 것은 아니라는 점에 유의해야 한다.

그렇다면 에이전트는 무엇을 사고하는가

에이전트의 “사고”를 떠받치는 핵심은 강력한 LLM이며, 보통 사고-행동-관찰 루프를 따릅니다.

  1. 사고(Thought): 문제를 분해하거나, 계획을 세우거나, 현재 상황을 분석하는 텍스트 형태의 사고를 생성한다. 이 내부 독백이 추론 과정을 투명하게 드러내고 방향을 조정할 수 있게 한다.
  2. 행동(Action): 사고를 토대로 미리 정해 둔 선택지 가운데 행동을 고른다(온라인 검색, 특정 웹페이지에서 정보 검색, 최종 답변 제공 등).
  3. 관찰(Observation): 수행한 행동에 따라 환경으로부터 피드백을 받는다.

이 주기는 각 관찰이 다음 사고에 반영되면서 반복되고, 에이전트가 최종 해결책에 도달했다고 판단하여 “완료(finish)” 행동을 수행할 때까지 계속됩니다.

사고 빈도도 과제에 따라 조정할 수 있습니다. 팩트체킹 같은 지식 집약적 추론 과제에서는 매 행동마다 사고를 끼워 넣고, 시뮬레이션 환경 탐색처럼 많은 행동이 필요한 의사결정 과제에서는 사고를 필요할 때만 사용해 에이전트가 언제 사고가 필요한지 스스로 판단하게 합니다.

정리

추론 기법이란 무엇인가

복잡한 문제 해결은 한 번에 곧바로 답하기 어려운 경우가 많으며, 이는 AI에 큰 도전이 됩니다. 핵심 문제는 논리적 추론, 분해, 전략적 계획 수립을 요구하는 다단계 과제를 AI 에이전트가 처리할 수 있게 하는 것입니다. 구조화된 접근 방식 없이는 에이전트가 세부 사항을 제대로 다루지 못해 부정확하거나 불완전한 결론에 이를 수 있습니다.

왜 사용하는가?

CoT, ToT 같은 방법론은 LLM이 문제를 분해하고 여러 풀이 경로를 탐색하도록 안내합니다. 자기 교정은 답변을 반복 개선하여 정확도를 높입니다. ReAct 같은 에이전틱 프레임워크는 추론과 행동을 통합하여, 에이전트가 외부 도구 및 환경과 상호작용하면서 정보를 수집하고 계획을 조정할 수 있게 합니다. 명시적 추론, 탐색, 개선, 도구 사용을 이렇게 결합하면 더 견고하고 투명하며 역량이 뛰어난 AI 시스템을 만들 수 있습니다.

언제 사용해야 하는가?

단일 답변으로 해결하기에 너무 복잡하여 분해, 다단계 논리, 외부 데이터 소스나 도구와의 상호작용, 전략적 계획과 적응이 필요한 문제에 이 추론 기법을 사용한다. 최종 답변만큼이나 “풀이 과정”이나 사고 과정을 보여 주는 것이 중요한 과제에 적합하다.

핵심 정리

  • 에이전트는 자신의 추론 과정을 명시적으로 드러냄으로써 투명한 다단계 계획을 수립할 수 있다. 이는 자율 행동과 사용자 신뢰의 기반이 되는 역량이다.
  • ReAct 프레임워크는 에이전트에게 핵심 운영 루프를 제공하여, 단순한 추론을 넘어 외부 도구와 상호작용하면서 환경 내에서 상황에 따라 움직이고 적응할 수 있게 한다.
  • 추론 스케일링 법칙은 에이전트의 성능이 기반 모델의 크기만이 아니라 할당된 “사고 시간”에도 달려 있음을 시사한다.
  • CoT는 에이전트의 내부 독백 역할을 하며, 복잡한 목표를 관리 가능한 행동 순서로 분해하는 구조화된 방법이다.
  • ToT와 자기 교정은 여러 전략을 평가하고, 오류에서 역추적하며, 실행 전에 자체적으로 계획을 개선할 수 있게 한다.
  • CoD 같은 협업 프레임워크는 단독 에이전트에서 멀티 에이전트 시스템으로 전환하는 흐름을 보여 준다. 에이전트 팀이 함께 추론하여 더 복잡한 문제를 해결하고 개별 편향을 줄일 수 있기 때문이다.
  • MASS 같은 프레임워크는 개별 에이전트를 지시하는 방식과 에이전트 간 상호작용 방식을 자동으로 최적화한다.

마치며

현대 AI는 수동적인 도구에서 벗어나, 구조화된 추론을 통해 어려운 목표를 달성할 수 있는 자율 에이전트로 발전하고 있습니다. CoT가 내부 사고 과정을 뒷받침하고, ToT와 자기 교정이 깊은 사고를 가능하게 하며, 완전한 에이전틱 시스템으로 도약하게 만드는 결정적 전환점은 ReAct 프레임워크에서 나옵니다.

결국, 명시적 추론과 행동 능력을 결합함으로써 이 방법론들은 AI를 진정한 에이전트다워 보이는 문제 해결자로 완성해 가고 있다.

참고 문헌