Generative AI Agents
This combination of reasoning, logic, and access to external information that are all connected to a Generative AI model invokes the concept of an agent.
Introduction
사람은 종종 책, 구글링, 계산기 등과 같은 도구(Tools) 를 사용하여 기존 지식을 보충한 후 결론을 내리곤 한다. 이와 유사하게, Generative AI 모델도 실시간 정보에 접근하거나 실제 세계에서의 행동을 제안하기 위해 도구를 사용하도록 훈련될 수 있다.
독립 실행형 Generative AI 모델은 훈련 데이터에 포함된 지식에만 국한되어 있으며, 외부 세계와 직접적으로 상호 작용하는 능력이 부족하다. 예를 들어, 특정 고객의 구매 기록과 같은 실시간 정보에 직접 접근하거나, 이메일 전송, 금융 거래 등과 같은 실제 세계에서의 행동을 직접 수행할 수 없다. 이러한 한계로 모델은 훈련 데이터의 범위를 넘어서는 최신 정보나 특정 상황에 맞는 행동을 수행하기는 어렵다.
이러한 독립 실행형 모델의 제한적인 능력을 극복하기 위해, 모델이 외부 도구 세트에 접근할 수 있어야 할 뿐만 아니라, 어떤 작업이든 자체적으로 계획하고 실행할 수 있는 능력이 필요하다고 제안한다. 즉, 모델이 외부 세계와 연결되어 정보를 얻고 이에 기반하여 행동까지 할 수 있도록 만들어야 한다는 것이다.
바로 이 지점에서 Generative AI Agent라는 개념이 도입된다. 에이전트는 추론(reason), 논리, 그리고 외부 정보 접근 능력의 조합이 Generative AI 모델과 연결될 때 형성된다. 즉, 에이전트는 독립 실행형 Generative AI 모델의 역량을 확장하는 프로그램으로 정의된다. 에이전트는 목표 달성을 위해 주어진 환경을 관찰하고, 보유하고 있는 도구를 사용하여 행동한다. 이들은 자율적으로 작동하며, 심지어 명시적인 지시 없이도 다음에 무엇을 해야 할지 추론할 수도 있다.
What is an Agent?
가장 근본적인 형태로서 Generative AI 에이전트는 “attempts to achieve a goal by ovserving the world and acting upon it using the tools that it has at its disposal”라고 정의된다. 즉, 목표 달성은 에이전의 존재 이유이자 기본적인 기능이다.
에이전트가 목표를 달성하는 과정은 다음과 같은 특징을 갖는다:
-
관찰 및 행동: 에이전트는 목표 달성을 위해 환경을 관찰하고, 가지고 있는 도구를 사용하여 추론하고 행동한다.
-
자율성: 에이전트는 인간의 개입 없이 자율적으로 행동하여, 명시적인 지시가 없더라도 궁극적인 목표를 달성하기 위해 다음에 무엇을 해야 할지 추론 할 수 있다.
-
인지 아키텍처 및 오케스트레이션: 에이전트의 행동, 액션, 그리고 의사결정은 인지 아키텍처(cognitive architecture) 라는 근간 구성 요소들의 조합에 의해 동작한다. 이 아키텍처의 핵심은 오케스트레이션 레이어(orchestration layer) 이며, 이는 에이전트가 정보를 받아들이고, 내부 추론을 수행하며, 그 추론을 바탕으로 다음 행동이나 결정을 내리는 순환적인 과정을 관리한다. 이 순환 과정은 에이전트가 목표에 도달하거나 중지 지점에 다다를 때까지 계속된다. 마치 요리사가 맛있는 요리를 만들겠다는 목표를 위해 계획, 실행, 조정을 반복하는 과정과 유사하다.
-
도구 활용: 에이전트는 목표 달성을 위해 외부 시스템 및 데이터와 상호 작용하는 도구 를 사용한다. 이 도구들은 모델의 내부 능력과 외부 세계 사이의 간극을 연결하며, 모델 혼자서는 어렵거나 불가능했을 복잡한 작업을 완료하도록 돕는다. 확장 기능(Extensions), 함수(Functions), 데이터 스토어(Data Stores) 등이 이러한 도구의 예시다.
-
계획 및 실행: 에이전트는 단순히 정보를 처리하는 것을 넘어, 자율적으로 작업을 계획하고 실행하는 능력을 갖는다. 이는 목표 달성에 필수적인 요소다.
앞서 기술했듯이, 인지 아키텍처는 에이전트의 핵심이다. 이 아키텍처의 세 가지 필수 구성 요소는 모델(The model), 도구(The tools), 그리고 오케스트레이션 레이어(The orchestration layer) 이다.

The model
에이전트에서 말하는 모델(The model) 은 에이전트 프로세스의 중앙 의사 결정자(centralized decision marker) 로 활용되는 언어 모델(language model, LM) 을 의미한다. 모델은 단독으로 존재하는 것이 아니라, 인지 아키텍처의 다른 핵심 구성 요소인 도구 및 오케스트레이션 레이어와 함께 작동한다.
- 역할: 에이전트의 의사 결정을 담당한다. 에이전트가 정보를 받아들이고 내부 추론을 수행하며, 이 추론을 바탕으로 다음 행동이나 결정을 내리는 순환 과정에서 모델이 핵심적인 추론 역할을 수행한다.
- 필요 능력: 에이전트 모델은 ReAct, Chain-of-Thought (CoT), Tree-of-Thoughts (ToT)와 같이 지시 기반의 추론 및 논리 프레임워크를 따를 수 있는 능력이 있어야 한다. 이러한 추론 프레임워크는 오케스레이션 레이어가 추론 및 계획을 수행하도록 안내하는 데 사용된다.
- 유연성: 에이전트가 사용하는 모델은 하나 또는 여러 개의 언어 모델일 수 있으며, 크기에 제한이 없다 (작거나 큰 모델 모두 가능). 특정 에이전트 아키텍처의 필요에 따라 범용(general purpose), 멀티모달(multimodal), 또는 파인튜닝(fine-tuned)된 모델을 사용할 수 있다.
- 도구와의 관계: 모델은 어떤 도구를 사용할지, 그리고 도구에 어떤 인자를 제공할지 등을 결정한다. 에이전트 응답의 품질은 모델의 추론 능력, 도구 선택 능력, 그리고 도구 정의의 완성도와 직접적으로 연결된다.
- 에이전트 구성과의 관계: 모델 자체는 일반적으로 에이전트의 특정 설정(도구 선택, 오케스트레이션 설정 등)으로 훈련되지 않는다. 하지만, 에이전트의 기능을 보여주는 예시(특정 도구 사용 또는 추론 단계 포함)를 제공함으로써 에이전트 작업에 맞게 모델을 더욱 세밀하게 조정할 수 있다.
- 모델 단독 사용과의 차이점: 모델은 일반적으로 훈련 데이터 내의 지식에 국한되며, 사용자 쿼리를 기반으로 단일 추론/예측만을 수행한다. 또한 세션 기록 관리가 기본적으로 제공되지 않으며, 네이티브 도구 구현이나 로직 레이어도 없다. 반면, 에이전트는 외부 시스템/도구를 통해 지식을 확장하고, 관리되는 세션 기록을 통해 다중 턴 상호 작용을 허용하며, 네이티브 인지 아키텍처 내에 도구 구현 및 추론 프레임워크(CoT, ReAct 등)를 갖는다. 즉, 모델은 에이전트의 핵심 “두뇌” 역할을 하지만, 에이전트가 되려면 모델 외에도 도구와 오케스트레이션 레이어가 필수적이다.
The tools
도구는 근간이 되는 모델과 외부 세계 사이의 간극을 연결하는 역할을 한다. 즉, 에이전트가 외부 데이터 및 서비스와 상호 작용할 수 있도록 지원해서 모델 단독으로는 불가능했을 더 광범위한 액션을 수행할 수 있게 한다. 예를 들어, 다음과 같이 다양한 작업을 완료하도록 돕는다:
- 실시간 정보에 접근
- 현실 세계의 행동을 제안
- 고객 구매 기록에 접근
- 이메일 발송
- 금융 거래
- 데이터베이스 정보 업데이트
- 날씨 데이터 가져오기
- 스마트 홈 설정 조정
- 캘린더 업데이트
Info
도구는 일반적으로 GET, POST, PATH, DELETE와 같이 일반적인 웹 API 메서드와 일치한다.
또한, 검색 증강 생성(RAG, Retrieval Augmented Generation)과 같은 보다 전문화된 시스템을 지원하여 에이전트의 역량을 기본 모델이 자체적으로 달성할 수 있는 수준 이상으로 확장한다.
이 도구의 정의와 완성도는 에이전트 응답의 품질에 크게 기여한다.
The orchestration layer
오케스트레이션 레이어는 순환적인 프로세스(cyclical process) 를 의미한다. 이 프로세스는 에이전트가 외부 또는 내부로부터 정보를 받아들이고(takes in information), 내부에서 추론(internal reasoning)을 수행하며, 그 추론 결과를 바탕으로 다음에 취할 행동(next action)이나 결정(decision)을 내리는 방식을 관장한다. 에이전트는 목표를 달성하거나 종료지점에 도달할 때까지 이 순환 과정을 계속 반복한다. 오케스트레이션 레이어는 에이전트의 코어로서 메모리, 상태, 추론, 그리고 계획(planning)을 유지하는 역할을 담당한다. 이 레이어의 복잡성은 에이전트의 종류나 수행하는 작업에 따라 매우 다양할 수 있다.
Agents vs. models
| Models | Agents |
|---|---|
| 사전 지식에 국한 | 도구를 통해 외부 시스템과의 연결을 통해 지식 확장 |
| 사용자 쿼리를 기반으로 한 단일 추론. 세션 기록이나 멀티턴에 대한 관리가 없음(명시적으로 구현하지 않는 이상) | 사용자 쿼리와 오케스트레이션 레이어에서 내린 결정에 기반한 멀티턴 추론을 허용하기 위해 세션을 관리 |
| 네이티브 도구 구현이 없음 | 에이전트 아키텍처에 도구가 기본적으로 구현 |
| 네이티브 논리 계층이 구현되지 않음. 사용자는 간단한 질문으로 프롬프트를 구성하거나 추론 프레임워크(CoT, ReAct 등)를 사용하여 모델의 예측을 안내하는 복잡한 프롬프트를 형성할 수 있음. | CoT, ReAct, 또는 LangChain과 같은 다른 pre-built 프레임워크 등의 추론 프레임워크를 사용하는 네이티브 인지 아키텍처 |
Cognitive architectures: How agents operate
에이전트는 인지 아키텍처를 사용하여 목표를 달성하기 위한 자율적인 순환 과정을 수행한다. 이는 마치 바쁜 주방의 요리사가 손님의 주문(정보 수집), 만들 수 있는 요리와 맛 추론(내부 추론), 재료 손질 및 조리(행동) 과정을 거치며 요리를 완성하는 것과 유사하다. 요리사가 재료가 부족하거나 손님의 피드백을 받으면 계획을 조정하고 이전 결과를 바탕으로 다음 행동을 결정하는 것처럼, 에이전트도 정보를 반복적으로 처리하고, 정보에 기반한 의사결정을 내리며, 이전 출력을 바탕으로 다음 행동을 개선하여 최종 목표에 도달한다.
에이전트 인지 아키텍처의 핵심 중 하나인 오케스트레이션 레이어는 추론 및 계획 과정을 안내하기 위해 프롬프트 엔지니어링 및 관련 프레임워크를 사용한다. 이러한 프레임워크에는 ReAct, Chain-of-Thought (CoT), Tree-of-Thoughts (ToT) 등이 있으며, 이들은 에이전트가 사용자 요청에 따라 가장 적합한 다음 행동을 선택하도록 돕는다. 여기서는 이들을 간략하게나마 소개하고자 한다.
ReAct
ReAct는 Generative AI 에이전트의 인지 아키텍처 중 특히 오케스트레이션 레이어에서 사용되는 중요한 프롬프트 엔지니어링 프레임워크이자 추론 기법 중 하나다. 에이전트의 핵심 구성 요소인 모델이 사용자의 쿼리에 대해 어떻게 추론(Reason) 하고 행동(Act) 할지를 안내하는 전략을 제공한다.
ReAct 프레임워크를 사용하면 에이전트가 단순히 쿼리에 대한 예측이나 응답을 생성하는 것을 넘어, 목표 달성을 위해 외부 세계와 상호작용하고 자율적으로 행동하는 순환적인 프로세스를 따르게 된다. 이 프로세스는 다음과 같은 반복적인 단계로 이루어진다:
- Question (질문): 사용자의 초기 쿼리 또는 현재 해결해야 할 문제.
- Thought (생각): 모델이 다음에 무엇을 해야 할지에 대해 내부적으로 추론하는 과정.
- Action (행동): 모델이 자신의 ‘생각’에 기반하여 수행하기로 결정한 구체적인 행동. 이 단계에서는 적절한 도구를 선택하게 된다. 예를 들어, 검색 도구나 특정 API 호출 도구를 선택할 수 있다.
- Action input (행동 입력): 선택한 도구를 실행하는 데 필요한 구체적인 인자(parameters) 또는 입력값.
- Observation (관측): ‘행동’과 ‘행동 입력’을 실행한 결과로 얻게 되는 정보. 이는 외부 도구의 실행 결과일 수도 있고, 내부 상태 변화일 수도 있다.
에이전트는 이 생각 행동 행동 입력 관찰의 순환(loop) 을 목표 달성에 필요한 만큼 반복한다. 각 단계에서 얻은 ‘관찰’ 결과는 다음 ‘생각’과 ‘행동’을 결정하는 데 활용된다.

Figure 2와 같이, 모델, 도구 및 에이전트 구성은 사용자의 기존 쿼리를 바탕으로 사용자에게 구체적이고 간결한 응답을 제공하기 위해 함께 작동한다. 모델은 사전 지식을 바탕으로 답변을 추측할 수 있었지만(환각), 대신 도구(항공편)를 사용하여 실시간 외부 정보를 검색했다. 이 추가 정보는 모델에 제공되어, 모델이 실제 사실 데이터를 바탕으로 보다 더 정보에 기반한 결정을 내리고 이 정보를 사용자에게 요약할 수 있게 해주었다.
ReAct는 이러한 구조화된 추론 과정을 통해 모델이 단순히 훈련 데이터에 의존하거나 환각(hallucination)하는 대신, 외부 도구를 활용하여 실시간 정보에 접근하고 사실에 기반한 보다 정확하고 신뢰할 수 있는 결정을 내릴 수 있도록 돕는다. 자료에 따르면 ReAct 프롬프팅은 기존의 최신(SOTA) 기준선보다 뛰어난 성능을 보였으며, 대규모 언어 모델의 인간 상호 운용성 및 신뢰성을 향상시키는 것으로 나타났다.
Chain-of-Thought (CoT)
CoT의 핵심적인 특징은 중간 단계(intermediate steps) 를 통해 추론 과정을 전개하도록 안내한다는 점이다. 마치 사람이 복잡한 문제를 해결할 때 단계를 나누어 순서대로 생각하는 것처럼, CoT는 언어 모델에게 최종 답변을 바로 내놓는 대신 문제 해결 과정을 보여주는 중간적인 ‘생각의 사슬’을 생성하도록 유도한다. 이러한 중간 단계들은 모델이 문제의 각 부분을 순차적으로 처리하고, 각 단계의 결과를 바탕으로 다음 단계를 진행하며, 궁극적으로 보다 정확하고 논리적인 최종 결과를 도출하는 데 도움을 준다.
CoT에는 다양한 하위 기법들(sub-techniques) 이 존재한다. 여기에는 자기 일관성(self-consistency), 능동적인 프롬프팅(active-prompt), 멀티모달 CoT(multimodal CoT) 등이 포함된다. 이러한 하위 기법들은 특정 애플리케이션의 필요에 따라 각각의 강점과 약점을 갖는다.
Tree-of-Thoughts (ToT)
CoT가 문제를 해결하기 위해 순차적인 중간 추론 단계(생각의 사슬)을 따라가는 반면, ToT는 CoT 프롬프팅을 일반화(generalizes over) 하여 모델이 문제 해결을 위한 다양한 사고 과정(thought chains)을 탐색(explore) 할 수 있도록 한다. 이는 마치 의사결정 트리를 펼쳐놓고 여러 가능성을 동시에 고려하며 가장 유망한 경로를 탐색하는 것과 유사하다.
ToT는 특히 **탐색(exploration)**이나 전략적 탐색(strategic lookahead)이 필요한 작업에 잘 맞는다. 모델은 여러 가능한 중간 단계를 생각하고 평가하여 문제 해결에 가장 효과적인 경로를 선택하게 된다. 이러한 방식으로 ToT는 복잡한 문제 해결을 위해 다양한 추론 경로를 고려할 수 있도록 돕는다.
결론적으로, ToT는 에이전트의 오케스트레이션 레이어가 추론 및 계획을 수행할 때 활용하는 고급 프롬프트 기법으로, CoT를 넘어서는 다양한 사고 과정을 탐색하여 더 복잡하고 전략적인 문제 해결 능력을 부여한다.
Summary
요약하자면, 에이전트 응답의 품질은 다양한 작업에 대해 추론하고 행동할 수 있는 모델의 능력과 직접적으로 연결될 수 있으며, 여기에는 올바른 도구를 선택하는 능력과 그 도구가 얼마나 잘 정의되었는지가 포함된다.
Tools: Our keys to the outside world
언어 모델이 정보를 처리하는 면에서 아무리 뛰어난다고 한들, 모델은 역시나 실세계에 직접적인 영향을 끼칠 수 없다. 이는 언어 모델이 훈련 데이터에서 배운 것만큼만은 유능하지만, 아무리 많은 데이터를 제공하더라도, 여전히 실세계와 상호작용하는 근본적인 능력이 부족하다는 것을 의미한다. 이에 Functions, Extensions, Data Stores, 그리고 Plugins는 이를 해결할 방법을 제공한다.
앞서 다양한 이름의 도구들이 나왔지만, 도구는 우리의 기본 모델과 외부 세계 간의 연결고리를 생성하는 점을 한 번 더 강조하고자 한다. 외부 시스템 및 데이터에 대한 연결은 에이전트가 더 다양한 작업을 더 높은 정확도와 신뢰도로 수행할 수 있게 해준다.