AI 에이전트가 무엇이고 왜 중요한지, 그리고 이 시리즈에서 다룰 핵심 설계 패턴들의 전체 지도를 살펴봅니다.
대규모 언어 모델(Large Language Model, LLM)은 텍스트를 생성하는 데 탁월한 능력을 보여주었습니다. 하지만 단순히 프롬프트를 넣고 응답을 받는 방식만으로는 해결할 수 없는 문제들이 있습니다. 최신 정보를 검색해야 하거나, 외부 시스템과 상호작용해야 하거나, 여러 단계의 추론을 거쳐야 하는 복잡한 작업이 그 예입니다.
이 간극을 메우기 위해 등장한 것이 AI 에이전트(AI Agent)입니다. AI 에이전트는 LLM을 핵심 추론 엔진으로 사용하면서, 도구 호출, 메모리 관리, 계획 수립 등의 능력을 결합하여 복잡한 작업을 자율적으로 수행하는 시스템입니다.
Andrew Ng은 2024년 초 에이전틱 AI(Agentic AI)의 네 가지 핵심 설계 패턴으로 리플렉션(Reflection), 도구 사용(Tool Use), 계획 수립(Planning), 멀티 에이전트 협업(Multi-Agent Collaboration)을 제시했습니다. 이후 이 패턴들은 산업 전반에서 검증되고 발전해 왔으며, 2026년 현재 Gartner는 기업 애플리케이션의 40%가 AI 에이전트를 통합할 것으로 전망하고 있습니다.
Anthropic의 "Building Effective Agents" 가이드에 따르면, 에이전트 시스템은 크게 두 가지로 구분됩니다.
워크플로우(Workflow)는 LLM과 도구가 미리 정의된 코드 경로를 통해 조율되는 시스템입니다. 분기와 흐름이 코드로 고정되어 있으므로 예측 가능하고 안정적입니다.
에이전트(Agent)는 LLM이 자신의 프로세스와 도구 사용을 동적으로 결정하는 시스템입니다. 어떤 도구를 어떤 순서로 사용할지, 언제 멈출지를 LLM 스스로 판단합니다.
실무에서는 이 둘을 명확히 구분하기보다, 상황에 맞게 조합하여 사용합니다. 단순한 작업에는 워크플로우가 적합하고, 복잡하고 열린 문제에는 에이전트가 적합합니다.
모든 AI 에이전트는 공통적인 기본 구조를 가집니다. 이를 에이전트 루프(Agent Loop)라고 부릅니다.
이 루프 구조는 이 시리즈에서 다룰 모든 패턴의 기반이 됩니다. ReAct, 리플렉션, 계획 수립 등은 모두 이 기본 루프를 특정 방식으로 변형하거나 확장한 것입니다.
에이전트를 구성하는 핵심 요소는 다음과 같습니다.
에이전트의 두뇌에 해당합니다. 사용자의 의도를 파악하고, 어떤 도구를 사용할지 결정하며, 최종 응답을 생성합니다. 모델의 추론 능력이 에이전트 전체의 성능을 좌우합니다.
에이전트가 외부 세계와 상호작용하는 수단입니다. 웹 검색, 코드 실행, 데이터베이스 조회, API 호출 등이 모두 도구에 해당합니다. 도구는 구조화된 스키마로 정의되어 LLM이 올바르게 호출할 수 있도록 합니다.
에이전트가 과거의 대화와 경험을 기억하는 메커니즘입니다. 단기 메모리(대화 히스토리)와 장기 메모리(벡터 데이터베이스 등)로 나뉩니다.
복잡한 작업을 하위 단계로 분해하고, 실행 순서를 결정하는 능력입니다. 계획은 고정적일 수도 있고, 실행 중에 동적으로 수정될 수도 있습니다.
에이전트의 행동을 제한하고 안전성을 보장하는 장치입니다. 허용된 도구 목록, 실행 제한 시간, 비용 상한 등이 여기에 해당합니다.
이 시리즈에서는 AI 에이전트를 설계하고 구현하는 데 필요한 핵심 패턴들을 체계적으로 다룹니다.
| 장 | 주제 | 핵심 내용 |
|---|---|---|
| 1장 | 소개와 개요 | 에이전트의 정의, 기본 구조, 핵심 구성 요소 |
| 2장 | ReAct 패턴 | 추론과 행동의 교차 실행 |
| 3장 | 도구 사용 패턴 | 도구 정의, 호출, 결과 통합 |
| 4장 | 리플렉션 패턴 | 자기 평가와 반복 개선 |
| 5장 | 계획 수립 패턴 | 작업 분해와 실행 계획 |
| 6장 | 멀티 에이전트 패턴 | 에이전트 간 협업과 조율 |
| 7장 | 메모리 시스템 | 단기, 장기 메모리 아키텍처 |
| 8장 | 가드레일과 안전성 | 제어, 검증, 오류 처리 |
| 9장 | 프레임워크 비교 | LangGraph, CrewAI, OpenAI Agents SDK |
| 10장 | 실전 프로젝트 | 처음부터 에이전트 시스템 구축하기 |
각 장은 개념 설명(What, Why)에서 시작하여, 구현 방법(How)과 실행 가능한 코드 예제로 이어집니다. 패턴들은 독립적으로 사용할 수도 있지만, 실전에서는 여러 패턴을 조합하여 사용하는 경우가 대부분입니다.
이 시리즈를 따라가기 위해 필요한 사전 지식과 환경은 다음과 같습니다.
# Python 3.11 이상
python --version
# 가상 환경 생성
python -m venv agent-env
source agent-env/bin/activate
# 핵심 라이브러리 설치
pip install anthropic openai langchain langgraphANTHROPIC_API_KEY=your-api-key
OPENAI_API_KEY=your-api-keyAPI 키는 환경 변수나 .env 파일로 관리하고, 절대 코드에 직접 포함하지 마십시오. .gitignore에 .env를 반드시 추가해야 합니다.
시리즈의 본격적인 시작에 앞서, 가장 단순한 에이전트의 구조를 코드로 살펴보겠습니다. 이 코드는 에이전트 루프의 본질을 보여줍니다.
import anthropic
import json
client = anthropic.Anthropic()
tools = [
{
"name": "get_weather",
"description": "지정된 도시의 현재 날씨 정보를 반환합니다.",
"input_schema": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "날씨를 조회할 도시 이름"
}
},
"required": ["city"]
}
}
]
def get_weather(city: str) -> str:
# 실제로는 외부 API를 호출합니다
weather_data = {
"서울": "맑음, 18도",
"부산": "흐림, 22도",
"제주": "비, 20도"
}
return weather_data.get(city, f"{city}의 날씨 정보를 찾을 수 없습니다.")
def run_agent(user_message: str) -> str:
messages = [{"role": "user", "content": user_message}]
while True:
# 1. LLM 추론
response = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=1024,
tools=tools,
messages=messages,
)
# 2. 최종 응답 확인
if response.stop_reason == "end_turn":
return response.content[0].text
# 3. 도구 호출 처리
for block in response.content:
if block.type == "tool_use":
tool_name = block.name
tool_input = block.input
# 4. 도구 실행
if tool_name == "get_weather":
result = get_weather(tool_input["city"])
# 5. 결과를 대화에 추가
messages.append({"role": "assistant", "content": response.content})
messages.append({
"role": "user",
"content": [{
"type": "tool_result",
"tool_use_id": block.id,
"content": result,
}]
})
# 실행
answer = run_agent("서울과 제주의 날씨를 비교해 주세요.")
print(answer)이 코드에서 while True 루프가 에이전트 루프의 핵심입니다. LLM이 도구 호출이 필요하다고 판단하면 도구를 실행하고 결과를 다시 전달하며, 더 이상 도구 호출이 필요 없으면 최종 응답을 반환합니다. 이 단순한 구조 위에 이 시리즈에서 다룰 모든 패턴이 구축됩니다.
2장에서는 에이전트 설계의 가장 기본이 되는 ReAct 패턴을 다룹니다. "생각하고 행동하고 관찰하는" 이 패턴이 어떻게 LLM의 추론 능력을 극대화하는지, 그리고 실제로 어떻게 구현하는지를 상세히 살펴보겠습니다.
이 글이 도움이 되셨나요?
관련 주제 더 보기
ReAct 패턴의 원리와 구조를 이해하고, 추론-행동-관찰 루프를 직접 구현하여 LLM의 문제 해결 능력을 극대화하는 방법을 다룹니다.
AI 에이전트의 도구 정의, 호출, 결과 통합의 전 과정을 다루고, 효과적인 도구 스키마 설계와 복합 도구 조합 전략을 살펴봅니다.
에이전트가 자신의 출력을 평가하고 반복적으로 개선하는 리플렉션 패턴의 원리, 구현 방법, 실전 활용 전략을 다룹니다.