LLM 기반 Agent의 부상과 가능성: 서베이
The rise and potential of large language model based agents: a survey
TL;DR Highlight
LLM 기반 AI 에이전트의 구조, 능력, 응용, 한계를 한 논문에 정리한 종합 서베이.
Who Should Read
AI 에이전트 시스템을 설계하거나 도입을 검토 중인 백엔드/ML 엔지니어. LLM을 단순 챗봇이 아닌 자율 행동 시스템으로 발전시키고 싶은 개발자.
Core Mechanics
- LLM 에이전트는 크게 '인지(Perception) → 두뇌(Brain) → 행동(Action)' 세 모듈로 구성됨. 인지는 텍스트/이미지 등 입력, 두뇌는 LLM이 담당, 행동은 API 호출·코드 실행 등
- 메모리 구조를 단기(컨텍스트 윈도우), 장기(외부 벡터DB), 파라메트릭(모델 가중치에 내재) 세 가지로 분류해서 설계 가이드 제시
- 에이전트가 도구(Tool)를 쓰는 방식: 검색, 계산기, 코드 실행, 외부 API 호출로 LLM의 지식 한계를 보완
- 멀티 에이전트 시스템에서 협업·경쟁·역할분담 구조를 쓰면 단일 에이전트보다 복잡한 태스크 처리 가능
- 에이전트 적용 도메인: 소프트웨어 개발(코드 생성·디버깅), 과학 연구, 게임, 웹 자동화, 로보틱스 등 광범위
- 현재 에이전트의 주요 한계: 장기 플래닝 실패, 환각(hallucination), 보안 취약점(프롬프트 인젝션), 고비용 추론
Evidence
- 서베이 논문 특성상 단일 수치보다 광범위한 연구 정리가 목적 — 100개 이상의 LLM 에이전트 관련 논문을 체계적으로 분류·분석
- ReAct, Reflexion, AutoGPT, BabyAGI, HuggingGPT 등 주요 에이전트 프레임워크를 비교 분석하여 아키텍처 패턴 정리
- 에이전트 벤치마크로 ALFWorld, WebShop, HotpotQA 등 다양한 환경에서의 성능 트렌드를 비교
How to Apply
- 새 에이전트 시스템 설계 시, 논문의 Perception-Brain-Action 프레임을 청사진으로 쓰면 됨: 입력 모달리티 정의 → LLM 선택 → 사용할 도구 목록 확정 순서로 설계
- 장기 태스크를 에이전트에 맡기려면 단기 메모리(컨텍스트)만 쓰지 말고 외부 벡터DB를 장기 메모리로 연결하는 구조를 채택할 것
- 복잡한 워크플로우는 단일 에이전트 대신 역할을 나눈 멀티 에이전트(예: Planner 에이전트 + Executor 에이전트 + Critic 에이전트)로 분리하면 성능 향상 기대 가능
Code Example
snippet
# ReAct 패턴 기반 에이전트 프롬프트 예시 (논문에서 소개된 핵심 패턴)
SYSTEM_PROMPT = """
You are an agent. For each step, follow this format:
Thought: [현재 상황 분석 및 다음 행동 계획]
Action: [사용할 도구 이름]
Action Input: [도구에 전달할 입력값]
Observation: [도구 실행 결과 — 시스템이 채워줌]
위 사이클을 반복하다가 최종 답을 알면:
Final Answer: [최종 답변]
"""
# LangChain으로 간단 구현
from langchain.agents import initialize_agent, AgentType
from langchain.tools import Tool
from langchain.chat_models import ChatOpenAI
llm = ChatOpenAI(model="gpt-4", temperature=0)
tools = [
Tool(name="Search", func=search_fn, description="인터넷 검색이 필요할 때"),
Tool(name="Calculator", func=calc_fn, description="수학 계산이 필요할 때"),
Tool(name="CodeExecutor", func=exec_fn, description="Python 코드 실행이 필요할 때"),
]
agent = initialize_agent(
tools=tools,
llm=llm,
agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
verbose=True
)
result = agent.run("2024년 AI 에이전트 관련 논문 수를 조사하고 전년 대비 증가율을 계산해줘")Terminology
Agent(에이전트)목표를 받으면 스스로 계획 세우고 도구 써가며 실행하는 AI 시스템. 단순 질답 챗봇과 달리 여러 단계를 자율로 처리함.
ReActReasoning(생각)과 Acting(행동)을 번갈아 하는 에이전트 패턴. '생각 → 도구 사용 → 결과 확인 → 다시 생각' 사이클을 반복.
hallucination(환각)LLM이 사실이 아닌 내용을 자신 있게 말하는 현상. 에이전트가 환각 정보로 행동하면 잘못된 결과로 이어질 수 있음.
멀티 에이전트여러 AI 에이전트가 역할을 나눠 협업하는 구조. 개발팀처럼 PM 에이전트, 코더 에이전트, 리뷰어 에이전트가 각자 역할을 맡는 방식.
프롬프트 인젝션악의적인 텍스트를 입력해 에이전트의 원래 지시를 덮어쓰는 공격. 에이전트가 외부 데이터를 읽을 때 특히 취약함.
RAG(검색 증강 생성)LLM이 답하기 전에 외부 DB에서 관련 정보를 먼저 검색해서 참고하게 하는 기법. 최신 정보나 특정 도메인 지식을 보완할 때 씀.
파라메트릭 메모리모델 학습 과정에서 가중치(파라미터) 안에 저장된 지식. 별도 DB 없이도 모델이 '기억'하는 정보.