Agent Reasoning Patterns

 

Reasoning Patterns

  • Agent가 주어진 목표를 달성하기 위해 어떻게 생각하고, 계획하며, 행동할지 결정하는 내재된 작동 방식 또는 로직의 구조
  • 인간의 사고 과정 또는 컴퓨터의 운영체제(OS)와 유사한 역할
  • 최고의 단일 패턴은 존재하지 않으며, 문제의 특성에 맞는 패턴의 선택과 조합이 중요

중요성

  • Agent의 자율성(Autonomy), 문제 해결 능력, 환경 적응력을 결정
  • 어떤 패턴을 선택하는가에 따라 Agent의 성능, 비용, 안정성에 영향
  • 단순한 Tool 호출을 넘어, Agent에게 지능적인 행동 전략을 부여

ReAct (Reasoning + Acting)

인간이 문제를 해결하는 방식모사 (Reasoning과 Acting을 동적으로 결합하여 Agent의 모든 행동에 이유를 부여하는 것이 핵심 철학)

ReAct의 동적 사이클

단서를 보고 추리하고(Thought), 다음 행동을 결정하여(Acting), 새로운 사실을 발견하는(Observation) 과정을 반복

  1. Agent는 먼저 내적 독백(Thought)을 통해 상황을 진단하고 전략을 수립
  2. 그 전략에 따라 외부 세계와 상호작용(Acting)
  3. 그 결과를 관찰(Observation)하여 다음 생각(Thought)의 입력으로 사용

ReAct 추론 패턴

프롬프트에 특정 포맷을 포함시켜, LLMdl ReAct 구조를 따르도록 유도하는 것이 핵심

e.g. LangChain의 create_react_agent 함수나 Anthropic의 XML 기반 프롬프팅이 대표적인 구현체

장점

  • 예측 불가능한 Tool의 실패나 예상치 못한 결과에 동적으로 대응 가능
  • “검색 결과 없음”이라는 Observation을 보고 다른 검색어로 재시도
  • Thought 과정이 그대로 로그로 남아 판단 근거 추정 가능

약점

  • 간단하고 명확한 작업에도 매번 Thought 단계를 거치므로, 불필요한 LLM 호출이 발생
  • 잘못된 Thought로 인해 부적절한 Action을 반복하며 무한 루프에 빠질 수 있음
  • Agent는 오직 Tool의 description 텍스트만을 보고 어떤 Tool을 사용할지 결정하므로 Action에 관한 프롬프트가 빈틈 없이 주어져야 함

Plan and Execute

ReAct와 대조적인 2단계 정적(Static) 접근법

  1. 계획(Plan): 전체 목표를 달성하기 위한 모든 하위 작업plapl의 목록과 순서를 사전에 완벽하게 수립
  2. 실행(Execute): 수립된 계획을 변경 없이 순서대로 실행하고 각 단계의 실행은 독립적

작동 원리

첫 번째 LLM 호출로 전체 계획을 생성 -> 각 단계를 순차적으로 실행 -> 추론 과정 없이 단순 실행에 집중

장점

  • 작업 환경이 안정적일 때, 불필요한 중간 추론 과정을 생략하여 LLM 호출 횟수를 최소화
  • 계획된 경로를 벗어나지 않아 작업 결과와 소요 시간을 예측하기 용이

단점

  • 초기에 수립한 계획에 없는 상황이나 동적인 환경 변화에 대처 불가
  • 실행 중 특정 단계에서 오류가 발생했을 때, 계획을 수정하거나 대안을 찾는 매커니즘이 없을 경우 전체 작업이 중단

Reflection & Self-Correction

  • Agent에게 성찰하는 능력을 부여하여, 스스로 결과물을 비판적으로 검토하고 개선하는 Iterative 개선 패턴
  • 단순히 정답을 찾는 것을 넘어, 결과물의 품질을 점진적으로 향상시키는 고차원적 추론 방식

작동 원리

  1. 생성(Generate): Agent가 초기 결과물(초안)을 작성
  2. 평가(Critique): 결과물을 정의된 기준(Rubric)이나 다른 Agent(Critic)의 피드백을 통해 평가
  3. 수정(Refine): 평가를 통해 발견된 개선점을 바탕으로 결과를 수정하고, 다시 평가 단계를 거치거나 루프를 종료

평가의 객관성과 구체성을 담보하는 정교한 평가 기준(Rubric) 설계가 이 패턴의 성패를 좌우

하이브리드 접근법의 필요성

  • 실제 복잡한 시스템은 여러 패턴을 조합하여 각 패턴의 장점을 취하고 단점을 보완
  • 거시적(Macro) 계획: Plan-and-Execute로 전체 작업 흐름 설계
  • 미시적(Micro) 계획: 각 실행 단계에서는 ReAct로 유연성과 적응력 확보
  • 최종 품질 관리: 최종 결과물 생성 후 Reflection 루프를 통해 품질 검수 및 향상

Reference

  • [1] https://www.ibm.com/kr-ko/think/topics/react-agent
  • [2] https://blog.langchain.com/planning-agents/
  • [3] https://blog.langchain.com/reflection-agents/