Google의 `Agents` 백서로 알아보는 AI Agent!(1) : Overview AI Agent
📌 TL;DR
- AI 에이전트는 외부 데이터를 활용하여 자율적으로 목표를 달성하는 시스템
- 핵심 구성 요소: 모델, 도구, 오케스트레이션 계층
- 대표적인 추론 방식: ReAct, Chain-of-Thought, Tree-of-Thought
- 주요 도구: Extensions, Functions, Data Stores
- LangChain 및 Vertex AI를 활용하여 실제 애플리케이션 개발 가능
우연히 유튜브에서 Agents 기초설명에 대한 영상을 보게 되었는데, 내용이 너무 좋아서 Google Agents 백서 원문을 찾아보게 되어 내용을 정리하였습니다.
1. 에이전트란 무엇인가?
AI 에이전트는 특정 목표를 달성하기 위해 주변 환경을 관찰하고, 주어진 도구를 활용하여 행동하는 자율적인 애플리케이션입니다.
이러한 에이전트는 인간의 개입 없이도 독립적으로 작동하며, 목표를 달성하기 위한 최적의 행동을 스스로 결정할 수 있습니다.
명확한 지시 없이도 스스로 목표를 분석하고 필요한 조치를 취하는 능력을 갖추고 있으며, 이를 통해 능동적으로 문제를 해결한다는 것이 핵심 장점입니다.
즉, 에이전트는 기존에 사람에게 업무를 지시하듯 목표를 지시하면 사람이 해왔던 것처럼 일련의 작업 방식(규칙)과 외부 데이터, 도구(구글검색, 책, 계산기 등)를 통해 업무 목표를 달성하는 것이죠!
외부 세계를 관찰하고 적절한 도구를 사용하여 조치를 수행하는 자율적인 시스템입니다.
기존 AI 모델(LLM)과 달리 에이전트는:
- 지속적으로 환경과 상호 작용하며 목표 달성을 위한 결정을 내림
- 외부 데이터를 활용하여 지식 범위를 확장
- 도구(Extensions, Functions, Data Stores)를 활용해 실시간 정보 검색 및 액션 수행
2. 에이전트의 주요 구성 요소
에이전트는 크게 세 가지 주요 구성 요소로 이루어집니다.
① 모델 (Model)
- 중심적인 의사 결정 시스템으로 작동하는 언어 모델(LM).
- ReAct, Chain-of-Thought, Tree-of-Thought 등의 논리 프레임워크를 활용.
- 일반 목적형, 멀티모달, 또는 특정 용도로 미세 조정된 모델 사용 가능.
② 도구 (Tools)
- 기존 AI 모델은 학습 데이터에 의존하지만, 에이전트는 도구를 사용하여 실시간 데이터를 검색하고 조치를 수행.
- 대표적인 도구 유형:
- Extensions: API와 에이전트를 연결하는 표준화된 인터페이스.
- Functions: 클라이언트 측에서 실행되며 API 호출을 제어.
- Data Stores: 구조화된 또는 비구조화된 데이터를 저장 및 검색. (RAG 아키텍쳐 활용)
③ 오케스트레이션 계층 (Orchestration Layer)
- 에이전트가 정보를 받아들이고, 내부적으로 논리를 수행하며, 다음 행동을 결정하는 루프 구조.
- 단순한 계산부터 복잡한 머신러닝 알고리즘까지 다양한 방식으로 구현 가능.
3. 에이전트 vs. 모델(LLM) 비교
구분 | 모델(LLM) | 에이전트 |
---|---|---|
지식 범위 | 훈련 데이터에 한정됨 | 외부 시스템과 연결하여 확장 가능 |
추론 방식 | 단일 추론 (싱글턴) : 한 가지의 질문에 대해 한번의 응답 | 지속적인 컨텍스트 유지 및 다중 회차 추론 가능 |
도구 사용 | 없음 | 외부 도구와 연동하여 API 호출 가능 |
논리 계층 | 내장되지 않음 | 논리 계층 내에서 CoT, ReAct 등을 활용 |
물론 ChatGPT를 사용하다보면 세션 내 대화가 누적되고(Memory), 모델에 따라 외부 데이터를 첨부할 수 있고(RAG), 웹 검색이 가능하여 지식이 확장되기도 합니다. 또한 GPT-o1 모델의 경우 스스로 문제 해결을 위해 CoT 방식을 사용하는 것처럼 보이기도 하죠.(prompt를 통해 목적 정의, 방법에 대한 탐색, 결과 평가 등)
위 비교는 기본적인 LLM과 에이전트의 비교용으로 확인해주시면 좋을 것 같습니다. 😀
아마도 ChatGPT의 UIUX가 변화되고, LLM이 진화하는 건 기존 모델의 한계가 있어 에이전트처럼 작동하도록 변하는 과정을 보여주는 거겠죠? ☺️
4. 에이전트의 동작 방식 (Cognitive Architectures)
에이전트는 인간의 사고 과정을 모방하여 정보를 수집하고 결정을 내리는 구조를 가짐.
① ReAct 프레임워크
- Reasoning + Acting을 결합한 접근법.
- 예시:
- 사용자가 “서울에서 뉴욕으로 가는 비행기 예약해줘”라고 요청.
- 에이전트는 Google Flights API를 사용해 데이터를 검색.
- 사용자의 요구 사항과 검색 결과를 기반으로 최적의 항공권을 추천.
② Chain-of-Thought (CoT)
- 중간 사고 과정을 명시적으로 모델이 생성하도록 유도.
- 복잡한 문제 해결에 유리함.
③ Tree-of-Thoughts (ToT)
- 여러 가지 사고 경로를 탐색하여 최적의 해결책을 찾는 방식.
- 전략적 의사 결정에 적합.
5. 에이전트의 도구 활용
에이전트가 외부 세계와 상호작용하는 핵심 요소인 도구의 종류와 작동 방식에 대해 설명드리겠습니다.
① Extensions (확장)
- 에이전트 내부에서 실행되며, API를 직접 호출할 수 있도록 연결해주는 역할
- 즉, 에이전트가 직접 API를 호출하고 응답을 처리하는 구조
② Functions (함수)
- Function은 에이전트가 직접 API를 호출하는 것이 아니라, API를 호출할 수 있는 함수를 클라이언트(외부 시스템)로 넘겨줌으로써 실행이 이루어지는 방식
③ Data Stores (데이터 저장소)
- 벡터 데이터베이스(Vector DB) 기반으로 모델이 최신 정보를 검색할 수 있도록 지원.
- Retrieval-Augmented Generation(RAG) 아키텍처 활용 가능.
Extensions와 Functions에 대한 자세한 설명은 이 글에 추가적으로 정리해두었습니다 😀!
6. 모델 성능 향상을 위한 학습 기법
에이전트의 도구 선택 및 실행 성능을 향상시키기 위한 3가지 학습 기법:
- In-Context Learning: 예제 제공을 통해 모델이 도구 사용법을 학습.
- Retrieval-Based Learning: 데이터 저장소에서 적절한 정보 검색 후 모델에게 제공.
- Fine-Tuning: 특정 도구 활용법을 모델이 학습하도록 미세 조정.
7. LangChain을 활용한 에이전트 구축
LangChain 및 LangGraph를 활용하여 간단한 에이전트를 구축하는 방법을 설명.
Python 코드 예제
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
from langgraph.prebuilt import create_react_agent
from langchain_core.tools import tool
from langchain_community.utilities import SerpAPIWrapper
from langchain_community.tools import GooglePlacesTool
@tool
def search(query: str):
"""Google 검색을 수행하는 SerpAPI 사용"""
search = SerpAPIWrapper()
return search.run(query)
@tool
def places(query: str):
"""Google Places API를 사용하여 장소 검색"""
places = GooglePlacesTool()
return places.run(query)
model = ChatVertexAI(model="gemini-1.5-flash-001")
tools = [search, places]
query = "지난주 Texas Longhorns가 경기한 상대팀은?"
agent = create_react_agent(model, tools)
- Google 검색 API(SerpAPI) 및 Google Places API와 연동하여 정보를 검색.
- ReAct 프레임워크를 활용하여 다중 단계를 거쳐 최적의 답변 제공.
8. Vertex AI 기반 프로덕션 적용
Google의 Vertex AI 플랫폼을 활용하여 에이전트를 프로덕션 환경에서 운영하는 방법을 소개.
Vertex AI에서 제공하는 기능
- Vertex Agent Builder: 에이전트 개발을 위한 UI 제공.
- Vertex Extensions: API와의 연결을 간소화.
- Vertex Function Calling: 클라이언트 측 함수 실행을 관리.
- Vertex Example Store: 적절한 예제 학습을 통한 성능 향상.
예제 아키텍처
- Vertex AI에서 에이전트를 구축하고 API, 데이터 저장소와 연계하여 프로덕션 수준의 서비스 개발 가능.
9. 결론 및 향후 전망
- 에이전트는 단순한 AI 모델을 넘어, 실시간 데이터 활용 및 자율적 문제 해결이 가능한 시스템.
- 향후 “에이전트 체인”을 활용한 다중 에이전트 협업 구조가 발전할 것으로 전망됨.
- 실용적인 적용을 위해서는 지속적인 실험과 피드백이 필수적임.
Agent의 개념과 흐름, 구성요소에 대해 쉽게 알아보기 아주 좋은 글이었습니다 :)
글에서 결론에 언급되었던 “에이전트 체인” 즉, 멀티 에이전트는 사실 작년에도 꽤 핫한 주제였죠!
이미 CrewAI, AutoGen 등에서 멀티 에이전트를 쉽게 구현할 수 있는 프레임워크를 제공하고 있습니다 ㅎㅎ
Multi Agent 프레임워크에 대한 글도 참고해주세요!
에이전트가 앞으로 더 발전해 나갈 텐데 그 흐름이 매우 기대됩니다!
출처