헷개정 - 헷갈리는 개념 정리/더 탐구해보쟛!

Agentic AI 탐구일지 5편: Observe 단계? AI가 관찰한다는 게 무슨 말이야?

cch8ii 2025. 11. 20. 11:43

생각(Thought) → 행동(Act) → 관찰(Observe)의 단계에서 AI Agent가 자신의 행동의 결과를 인식하는 방식에 대해서 살펴보자. 

 

Observe

Observe단계란 무엇일까? AI Agent가 방금 실행한 Action의 결과를 보고, 그 정보를 메모리에 추가한 뒤 다음 Thought를 업데이트하는 단계라고 할 수 있다. 즉, 행동의 결과를 인식하는 단계인 것이다. 외부의 환경과 상호작용한다고 표현하는데 API에서 온 응답이나 오류 메세지, 계산 결과 등의 정보가 AI Agent 내부로 들어와서 현재 어떤 상태인지 파악해야 한다는 것이다. 

 

Observe 단계에서는 AI Agent가 다음을 수행한다. 

 

  • Collects Feedback: Action이 성공했는지 실패했는지, 결과가 무엇인지 받는다.
  • Appends Results: 받은 정보를 프롬프트(맥락) 끝에 붙인다. 즉, LLM의 다음 추론에 사용할 수 있게 대화 히스토리에 저장하는 것이다.
Thought: 뉴욕 날씨를 알아야겠다.
Action: { "action": "get_weather", "location": "New York" }

Observation: "partly cloudy, 15°C"
  • Adapts Strategy: 이 Observation을 보고 다음 Thought를 다시 계산한다. 

Observe 이 없으면 안 되나?

안 된다! 왜냐하면 AI Agent는 실행한 tool의 결과를 다음 Thought에서 사용해야 하기 때문이다. 

만약 Observe 을 AI Agent가 수행하지 않는다면 LLM은 API 호출 결과를 알 수 없게 되고 다음 단계의 계획을 짤 수 없게 된다, 그렇게 되면 Thought-Action-Observation 의 순환이 결국은 끊기게 될 것이다. 

아주 쉽게 예시를 들어보자. 

AI Agent를 게임 캐릭터라고 생각했을 때...

Thought = “이제 오른쪽으로 가야겠다.”
Action = 오른쪽으로 한 칸 이동
Observation = 실제로 오른쪽으로 갔는지? 벽에 막혔는지? 보물이 있었는지?

Observation이 없으면?
캐릭터는 내가 어떻게 됐는지 전혀 모르고 계속 같은 행동만 반복
→ 게임 불가능

 

 

 

그래서 AI Agent가 어떻게 동작하는건데?

즉, 전체적인 과정을 좀 더 자세히 생각해보면 다음과 같다. 

만약 사용자의 입력이 '현재 뉴욕을 날씨는 어때?' 라고 해보자. 

Thought

"뉴욕 현재 날씨를 알아야 한다."

Action

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

→ 해당 입력을 받아서 외부 tool이 실행되고 → API 결과가 출력됨

Observation

"15°C, partly cloudy"

해당 결과는 LLM의 프롬프트 끝에 붙게 됨 → 프롬프트 갱신됨

다음 Thought (Observation을 반영한 새로운 생각)

"음 이정도면 답변할 수 있겠다."

Response

"뉴욕은 현재 15도, 구름 조금 있습니다."