에이전트는 스스로 목표를 설정하고 가설을 세우고 실행까지 수행할 수 있는 자율적인 인공지능 시스템을 의미한다.
최근에는 LLM을 중심으로 구성된 에이전트들이 많아서 자연어로 주어진 목표를 이해하고 추론하며 계획을 세우고 문제를 해결한다.
다음 텍스트를 스페인어로 번역해 줘.
특정 기능을 사용하여 다음 텍스트를 스페인어로 번역해 줘.
invoke 수행하여 더 다채로운 결과 도출 가능| 유형 | 주요 개념 | 대표 기술 |
|---|---|---|
| Rule-based Agent | AI 적용 없이 If-Then 규칙만 사용 | Expert System |
| Planning Agent | Task Planning | STRIPS |
| LLM-based Reactive Agent | 도구 사용, 자연어 추론 | ReAct |
| Autonomous Agent* | 자율형 구조, 목표 계획 반복 실행 | Auto-GPT |
| Multi-Agent | 역할 분리, 협업 | AutoGen, LangGraph |
각 에이전트 유형은 점진적으로 더 복잡하고 자율적인 형태로 발전해 왔으며, 현재 멀티 에이전트까지 다양한 형태로 활용되고 있다.
에이전트 구조는 머리, 손, 기억을 담당하는 세 개 유닛으로 크게 나눌 수 있다.
현재의 에이전트는 LLM의 사고력을 기반으로 그 위에 행동과 협업 능력을 쌓아올린 구조이다.

문제 이해
추론 및 판단
행동 계획
결과 요약 및 학습
모든 과정을 LLM이 수행한다.
주의: 모든 에이전트가 이러한 프롬프트를 바탕으로 움직이는 것은 아닙니다. 특정 에이전트(예: ReAct)가 다음과 같이 작동한다고 이해하시면 됩니다.
생각: [현재 상황 분석]
행동: [수행할 작업]
관찰: [결과 확인]
다음 생각: [후속 작업 계획]
Tool은 에이전트가 행동을 수행할 수 있도록 하는 다양한 도구를 의미한다.
LLM 에이전트에서 툴은 LLM이 외부 작업을 수행하기 위해 호출할 수 있는 함수나 API이다.
Tool은 일반적으로 다음으로 구성된다.
LLM은 설명을 바탕으로 어떤 툴을 쓸지 선택한다.
에이전트가 툴을 인식하고 다루려면 툴로 등록해야 합니다. LangChain 같은 라이브러리가 이를 지원한다.
LangChain Tool Import
from langchain.tools import tool
함수 정의
데코레이터 표시
@tool
def my_tool():
"""도구 설명"""
pass
독스트링 작성
Tool List 등록
Tool Calling과 Bind Tools는 에이전트에게 툴 정보를 제공하는 것을 의미한다.
| Tool 종류 | 설명 |
|---|---|
| 웹 검색기 Tool | 실시간 웹 검색 |
| 계산기 Tool | 수학 연산 수행 |
| SQL DB Tool | 데이터베이스 조회 |
| 문서 요약 Tool | 긴 문서 요약 |
| RAG 검색 Tool | 벡터 DB 검색 |
| API 호출 Tool | 외부 API 연동 |
| 파일 변환 Tool | 파일 형식 변환 |
Tavily Search API Tool은 실시간 정보를 처리하는 대표적인 퍼블릭 툴이다.
텍스트 생성만 하던 LLM이 Tavily Search API Tool 같은 툴을 붙임으로써
등의 기능을 수행하며 더 똑똑한 에이전트로 진화할 수 있게 되었다.
에이전트가 얼마나 더 똑똑하게 툴을 다루는지 구체적인 예시로 ReAct라는 프레임워크를 소개해보겠다.
ReAct (Reasoning + Acting in Language Models)
LLM이 추론과 행동을 결합하여 문제를 해결하는 방법론이다.
외부 행동(Action)을 요청하고 그 결과를 관찰(Observation)로 받아서 다음 추론에 반영하는 순환형 구조이다.

생각 (Thought): 모델이 다음에 무엇을 할지 스스로 설명
↓
행동 (Action): 도구나 API 사용 명령
↓
행동 입력 (Action Input): 구체적인 입력값
↓
관찰 (Observation): 사용 결과 확인
↓
[반복]
↓
최종 답변 (Final Answer): 최종 응답 출력
질문: 서울에서 뉴욕까지 비행 시간은?
생각: 서울에서 뉴욕까지의 비행 시간을 알아야 한다.
행동: search_flight_time
행동 입력: "서울에서 뉴욕까지 비행 시간"
관찰: 약 14시간
최종 답변: 서울에서 뉴욕까지 비행 시간은 약 14시간입니다.
LLM의 생각 → 행동 → 관찰을 반복해서 최종 답을 얻을 때까지 수행한다.
ReAct에서 가장 핵심적인 개념은 Function Calling입니다.
Action 단계에서 외부 도구나 함수를 호출하는 방식이다.
LLM 추론 기반으로 선택한 외부 도구의 호출 방법
LLM이 인간처럼 생각한 다음에 도구를 사용하는 능력을 부여하는 것이다.
질문: 서울의 내일 날씨는?
{
"function": "get_weather",
"arguments": {
"location": "서울",
"date": "내일"
}
}
get_weather라는 함수를 호출하도록 하는 것이 Function Calling이다.