개인공부&프로젝트/LLM 에이전트 스터디

LLM Agent의 Thought-Action-Observation Cycle

백악기작은펭귄 2025. 2. 23.
반응형

LLM Agent의 Thought-Action-Observation Cycle

AI Agent는 단순한 자연어 처리 모델을 넘어, Reasoning, Planning, Acting 능력을 갖춘 시스템이다. 이들을 가능하게 하는 핵심 개념이 Thought-Action-Observation Cycle이며, 이는 Agent가 지속적으로 환경과 상호작용하며 목표를 달성하도록 돕는다. 본 글에서는 이 사이클이 어떻게 작동하는지에 대해 전문적인 관점에서 살펴본다.

 

Thought: Internal Reasoning과 Planning

Agent의 첫 번째 단계는 Thought, 즉 내부 추론(Internal Reasoning)과 계획(Planning) 단계다. 주어진 Query를 분석하고, 해결해야 할 Problem을 정의하며, 이를 달성하기 위한 최적의 Strategy를 도출하는 과정이 포함된다. 이는 LLM의 자체적인 Logical Deduction 능력을 활용하여 수행된다.

 

예를 들어, Weather Agent가 “What’s the weather like in New York today?”라는 Query를 받았다고 하자. 이때 Agent의 Internal Reasoning 과정은 다음과 같다.

“The user is asking for the current weather conditions in New York. I have access to a weather API. The first step is to call the API to retrieve up-to-date information.”

 

이처럼 Thought 단계에서 Agent는 해결하고자 하는 문제를 정의하여 세분화하고, 필요한 Information을 결정하며, 적절한 Tool을 선택한다.

 

+) ReAct Approach: Step-by-Step Reasoning의 중요성

LLM이 곧바로 답변을 생성하는 것이 아니라, ReasoningActing을 결합하는 ReAct (Reasoning + Acting) Approach를 활용하면 보다 정교한 Output을 생성할 수 있다.

“Let’s think step by step. First, I need to retrieve the latest weather data. Then, I will process and format it for the user.”

 

이러한 Prompting 기법을 사용하면, Agent가 문제를 작은 sub-task 단위로 분해하여 해결할 수 있어 오류를 줄일 수 있다.

 

Action: Tool Invocation과 Environment Interaction

Thought 단계에서 계획을 수립한 후, Agent는 Action을 수행한다. Action은 다양한 방식으로 실행될 수 있으며, 대표적으로 Tool Invocation, API Calls, Code Execution이 있다.

 

Agent가 Action을 수행하는 방식은 여러 가지가 존재한다.

  • JSON-based Action Representation: API Call을 위한 구조화된 JSON Format을 사용
  • Code Execution: Python과 같은 언어로 직접 코드 블록을 생성하여 실행
  • Function Calling: 특정 API나 Tool을 직접 호출하는 방식

 

예를 들어, Weather Agent가 날씨 정보를 가져오기 위해 get_weather Tool을 호출한다고 하면, 다음과 같은 JSON Command를 생성할 것이다.

{
  "action": "get_weather",
  "action_input": {
    "location": "New York"
  }
}

 

이러한 Structured Representation을 통해 System은 Agent의 행동을 Predictable 하게 관리할 수 있다.

 

Stop and Parse Mechanism: Action Completion의 명확성

Agent의 Action이 완료되면, Stop and Parse Mechanism을 적용하여 불필요한 Text Generation을 방지하고, 명확한 Output을 유지한다. 이 과정에서 중요한 요소는 출력 제어(Output Control)정확한 Parsing이다.

  1. Output Control: Agent는 Action이 완료된 후, 추가적인 Token 생성을 중단해야 한다. 이를 위해 특정 Delimiter나 명시적인 종료 Signal을 사용할 수 있다.
  2. Parsing and Execution: System은 Agent가 생성한 JSON이나 Code Block을 Parsing하여 올바르게 실행해야 한다. 이 과정에서 잘못된 Output이나 Syntax 오류가 발생하면 적절한 Handling이 필요하다.

 

예를 들어, API 호출이 실패했을 경우, Agent는 이를 감지하고 재시도 전략을 고려해야 한다.

“API request failed. Checking the error response... If it's a timeout issue, I should retry; otherwise, I need to log the failure.”

 

이처럼 Action 단계에서는 Robust Execution Flow를 통해 안정적인 동작을 보장해야 하며, Stop and Parse Mechanism을 적절히 활용하여 신뢰할 수 있는 System Integration을 구현하는 것이 중요하다.

 

Observation: Environment Feedback과 Adaptation

Action 수행 후, Agent는 Observation 단계를 통해 환경에서 반환된 Feedback을 분석하고 다음 Action을 결정한다. 이 단계에서 중요한 것은 State UpdateContext Integration이다.

 

Observation의 유형

  • System Feedback: API 응답, Error Message
  • Data Changes: Database Update, File Modification
  • Environment Signals: Sensor Readings, System Logs
  • Web Scraped Data: Webpage에서 추출한 Text

 

예를 들어, Weather Agent가 API 호출을 통해 다음과 같은 Response를 받았다고 하자.

“Current weather in New York: partly cloudy, 15°C, 60% humidity.”

 

Agent는 이 Observation을 Prompt Context에 추가하고, 이를 기반으로 새로운 Thought를 생성한다.

“I have retrieved the weather data. Now, I can generate a final response for the user.”

 

Iterative Feedback Loop: Dynamic Adaptation

Observation 단계에서 받은 Feedback이 불완전하거나 오류가 포함되어 있다면, Agent는 다시 Thought 단계로 돌아가 문제를 해결한다. 이 과정에서는 Error Analysis, Re-Evaluation, Adaptive Strategy Selection이 중요하다.

  1. Error Analysis: Feedback을 분석하여 Error의 원인을 파악한다. API 오류 메시지나 Invalid Response를 검토하여 네트워크 문제인지, 잘못된 Parameter 사용인지 구분해야 한다.
  2. Re-Evaluation: Initial Thought 과정을 다시 수행하며 문제를 해결하기 위한 새로운 방법을 모색한다. 필요할 경우, 다른 Tool을 호출하거나 Alternative Strategy를 적용한다.
  3. Adaptive Strategy Selection: 단순한 재시도가 아닌, 더 나은 접근 방식을 채택해야 한다. 예를 들어, API Timeout이 반복되면 Request Rate를 조절하거나, Fallback Mechanism을 활용할 수 있다.

 

예를 들어, API 호출이 실패했다면:

“API call failed. Checking error details... If it's a rate limit issue, I will wait and retry. If the API is down, I will switch to an alternative data source.”

 

이러한 Iterative Refinement 과정을 통해 Agent는 지속적으로 개선된 답변을 생성하며, 더욱 신뢰성 높은 System을 구축할 수 있다.

 

결론: Thought-Action-Observation Cycle의 역할

LLM Agent는 단순한 Static Text Generator가 아니라, Environment-Aware System으로서 지속적으로 학습하고 적응할 수 있다. 이를 가능하게 하는 핵심이 Thought-Action-Observation Cycle이며, 이 과정의 주요한 특징은 다음과 같다.

  • Hierarchical Problem Solving: 문제를 단계적으로 분석하여 해결
  • Dynamic Adaptation: 환경에서 얻은 Feedback을 즉각 반영하여 Output 개선
  • Tool Integration: API, Database, External Systems와의 연계를 통해 실시간 정보 활용

 

이러한 원리를 깊이 이해하고 활용한다면, 보다 강력하고 정교한 AI Agent를 설계할 수 있다. Thought-Action-Observation Cycle을 기반으로 한 Agent 설계는 향후 AI System 개발의 핵심 요소가 될 것이다.

반응형