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

Agentic AI 탐구일지 4편: Act 단계? AI Agent가 환경과 상호작용한다는 말이 무슨 말이야?

cch8ii 2025. 11. 20. 11:30

생각(Thought) → 행동(Act) → 관찰(Observe)의 단계에서 AI Agent가 환경과 상호작용하기 위해 취하는 단계를 살펴보자. 

 

Act

웹에서 검색을 하는 과정이나 실제 뭔가를 제어하는 과정 모두 AI Agent가 의도적으로 실행하는 작업이다. Thought 단계에서 '어떤 걸 해야 한다!' 라고 판단하면 다음 Action을 해야 한다. 하지만 Action을 할 때 외부 시스템을 동작시켜야 하기 때문에 그 Action을 외부 시스템이 이해할 수 있는 포맷으로 출력해야 한다. 

 

  • JSON Agent → JSON으로 명령 출력
  • Code Agent → Python 같은 코드로 출력
  • Function-calling Agent → 함수 호출 형식으로 출력

즉, AI Agent는 텍스트를 이용해 외부 tool에게 이걸 줄테니 실행해라! 라고 지시하게 되는 것이다. 이러한 과정은 그냥 외부 tool을 실행시키기 위해 필요한 입력을 LLM이 제공해야 한다고 생각하면 쉽다. 

Action은 여러 목적을 달성할 수 있게 한다. 

 

  • 정보 수집: 웹, DB, 문서 등에서 필요한 정보를 찾아온다.
  • 도구 사용: API 호출·계산·코드 실행 같은 작업을 수행한다.
  • 환경 상호작용: 앱·UI를 조작하거나 물리 장치를 제어한다.
  • 의사소통: 사용자와 대화하거나 다른 에이전트와 협업한다.

어쨋든 이렇게 동작하려면 우리는 Action을 정확하게 실행하기 위해 우리가 원하는 출력을 AI가 만든다는 것이 보장되어야 한다. 이때 주요한 방법 중 하나는 stop and parse 방식이다. stop and parse 방식은 에이전트의 출력이 구조화되고 예측 가능하도록 보장한다. 

쉽게 이야기하자면 stop and parse 는 AI가 Action을 출력할 때 더 이상 떠들지 말고 딱 행동만 정확하게 출력하게 만드는 규칙이라고 할 수 있다. 

즉, 우리는 우리가 필요한 구조화된 텍스트만 필요한 것이다. 

생각 : 뉴욕의 현재 날씨를 확인해야 합니다. 
작업 : 
{ 
  "action" :  "get_weather" , 
  "action_input" :  { "location" :  "뉴욕" } 
}

 

 

우리에겐 이것만 필요하지, 아래와 같이 추가적인 말은 필요하지 않다. 

생각 : 뉴욕의 현재 날씨를 확인해야 합니다. 
작업 : 
{ 
  "action" :  "get_weather" , 
  "action_input" :  { "location" :  "뉴욕" } 
}
작업을 완료했습니다! 어때요? 맘에 드시나요? 블라블라블라

 

때문에 stop and parse 방식에서는 Json { 으로 시작하고 }로 닫히는 순간 멈추게끔 하고 tool을 호출하게끔 한다. 

 

주로 AI Agent를 만들 때는 프롬프트에 출력 형식을 지정하고 프롬프팅으로 형식을 맞춰서 출력하라고 하면 잘 되었었는데 이런 파싱하는 방법이 있는지는 처음 알았다. 

출처: https://huggingface.co/learn/agents-course/en/unit1/actions

또한 아예 다른 말을 생성하지 못하게 하기 위해 코드 에이전트를 사용하기도 한다. 위와 같이 json을 출력하게 해서 그걸 tool의 입력으로 넣는 것이 아니라 실제 실행 가능한 코드를 통째로 만들어서 Action으로 활용하는 것이다. 

그림을 보면 각 나라 가격 비교하기라는 task가 주어졌을 때 왼쪽은 

 

  • 환율 조회
  • 모델 가격 조회
  • 세금 변환
  • 배송비 조회
  • 총 비용 계산

와 같은 5가지 단계를 국가마다 반복해서 Action을 여러 개로 나눠서 실행해야 하는데 오른쪽 코드 에이전트는 AI가 코드를 만들어서 한 번에 처리할 수 있게 하는 것을 볼 수 있다.