Publication Date : 2024-11-12
Authors : Julia Wiesinger, Patrick Marlow, and Vladimir Vuskovic
인간은 패턴을 인식하는 능력이 뛰어나지만, 더 정확한 결론을 내리기 위해 책, 검색, 계산기 등의 도구를 활용한다.
Generative AI 모델도 인간과 마찬가지로 도구들을 사용하여 인간처럼 작업을 하도록 훈련이 가능하다. 예를 들어, 데이터베이스 검색 도구를 사용하여 고객의 구매 이력을 확인하고 맞춤형 추천을 생성하거나, API 호출을 통해 이메일을 보내거나 금융 거래를 실행하는 작업을 수행 가능하다.
이를 위해서는 모델이 단순히 외부 도구에 접근하는 것뿐만 아니라, 계획을 세우고 스스로 작업을 실행할 수 있는 능력이 필요하다.
이러한 논리적 사고, 계획, 외부 정보 활용을 결합한 개념이 "에이전트(Agent)"이며, 이는 기존 Generative AI 모델을 뛰어넘는 프로그램을 의미한다.
이 글에서는 에이전트의 개념과 그와 관련된 다양한 요소들을 상세히 다룬 논문의 핵심 내용을 요약 및 정리한 리뷰를 작성할 것이다.
모델 자체는 특정 에이전트 설정(도구 선택, 오케스트레이션 구조 등)에 대해 미리 학습되지 않는다. 그러나, 에이전트가 특정 도구를 사용하는 예제나 추론 과정을 추가로 학습시켜(finetuning or few-shot learning) 모델을 최적화 할 수 있다.
| 특징 | 모델(LLM) | Agent |
|---|---|---|
| 지식 | 훈련된 데이터에 의존 | 외부 도구를 통해 확장 가능 |
| 추론 방식 | 단일 질의 응답(One-off inference) | 세션유지, 다중 단계 추론 가능 |
| 도구사용 | 불가능 | API 호출, 데이터 활용가능(RAG, Dataframe, etc.) |
| 논리적 실행 | 명시적 프롬프트 필요 | 자체적인 추론 및 행동 계획 |
Orchestration Layer : 에이전트가 정보를 수집 -> 계획 -> 실행 -> 조정 하는 반복적인 과정을 거쳐 최적의 결과를 얻는 과정
ReAct (Reasoning + Acting)
Chain-of-Thought (CoT)
Tree-of-Thoughts (ToT)


A는 Extension의 예, B는 Function의 예이다.




| Extension | Function Calling | Data Store | |
|---|---|---|---|
| Execution | Agent-Side Execution | Client-Side Execution | Agent-Side Execution |
| Use Cases | - 에이전트가 API endpoint와의 상호작용을 제어 - 사전에 구축된 기본확장 활용에 유용(예 : Vertex Search, Code Interpreter, etc.) - Multi-hop Planning 및 API 호출( 즉, 다음 에이전트 작업은 이전작업 / API 호출의 출력에 따라 달라짐.) | - 보안 또는 인증 제한으로 에이전트가 API를 직접 호출 불가한 경우 - Agent가 실시간으로 API를 호출하지 못하도록 하는 타이밍 제약 조건 또는 작업 순서 제약 조건(예 : batch, Human-in-the-loop 검토 등) - 인터넷에 노출되지 않거나 Google 시스템에 엑세스 할 수없는 API | 다음 데이터 유형 중 하나로 RAG 구현: - 사전 indexing 된 도메인 및 웾사이트 콘텐츠 - PDF,Word Docs, CSV, SpreadSheets 등과 같은 정형 데이터 - HTML, PDF, TXT 등과 같은 비정형 데이터터 |
다음은 모델이 적절한 도구를 선택하도록 학습하는 3가지 방법이다.
- In-Context Learning
- Retrieval-Based In-Context Learning
- Fine-Tuning
- 예제 1: "서울에서 도쿄까지 가장 저렴한 비행기" → 결과: 항공사 X, 가격 500달러
- 예제 2: "런던에서 파리까지 저렴한 비행기" → 결과: 항공사 Y, 가격 100유로
user_query : "Python에서 빠른 정렬을 구현하는 방법 알려줘"
retrieved_context : "퀵 정렬은 분할 정복 알고리즘으로 평균 시간복잡도 O(n log n)을 가짐."
agent_answer : "퀵 정렬은 분할 정복 알고리즘으로 평균 시간복잡도 O(n log n)을 가지기 때문에 빠른 정렬을 구현할 수 있습니다."
이러한 각 접근 방식은 속도, 비용 및 대기시간 측면에서 고유한 장점과 단점을 제공한다. 그러나 이러한 기술을 Agent Framwork에 결합한다면 다양한 강점을 활용하고 약점을 최소화하여 보다 강력하고 적응력 있는 솔루션을 만들 수 있다.
의료 상담 데이터로 학습된 AI 챗봇이 더 정확한 진단 추천
LangChain과 LangGraph 라이브러리를 사용하여 에이전트 구축.
SerpAPI (Google 검색) 및 Google Places API를 사용한 간단한 예제 제공.
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
os.environ["SERPAPI_API_KEY"] = "XXXXX"
os.environ["GPLACES_API_KEY"] = "XXXXX"
@tool
def search(query: str):
"""Use the SerpAPI to run a Google Search."""
search = SerpAPIWrapper()
return search.run(query)
@tool
def places(query: str):
"""Use the Google Places API to run a Google Places Query."""
places = GooglePlacesTool()
return places.run(query)
model = ChatVertexAI(model="gemini-1.5-flash-001")
tools = [search, places]
query = "Who did the Texas Longhorns play in football last week? What is the address of the other team's stadium?"
agent = create_react_agent(model, tools)
input = {"messages": [("human", query)]}
for s in agent.stream(input, stream_mode="values"):
message = s["messages"][-1]
if isinstance(message, tuple):
print(message)
else:
message.pretty_print()
=============================== Human Message ================================
Who did the Texas Longhorns play in football last week? What is the address
of the other team's stadium?
================================= Ai Message =================================
Tool Calls: search
Args:
query: Texas Longhorns football schedule
================================ Tool Message ================================
Name: search
{...Results: "NCAA Division I Football, Georgia, Date..."}
================================= Ai Message =================================
The Texas Longhorns played the Georgia Bulldogs last week.
Tool Calls: places
Args:
query: Georgia Bulldogs stadium
================================ Tool Message ================================
Name: places
{...Sanford Stadium Address: 100 Sanford...}
================================= Ai Message =================================
The address of the Georgia Bulldogs stadium is 100 Sanford Dr, Athens, GA
30602, USA.
Google의 Vertex AI 플랫폼을 활용하여 프로덕션 레벨의 AI 에이전트 구축 가능.

핵심 구성 요소:
에이전트(Agent) 는 단순한 언어 모델(LLM)보다 확장된 개념으로, 외부 도구와 상호작용하며 자율적으로 작업을 수행할 수 있다.
미래에는 복합적인 에이전트 체인을 활용하여 더욱 강력한 AI 시스템 구축 가능해질 것이다.