티스토리 뷰
LLM 실전 활용 5: AI Agent의 탄생 — “질문에 답하는 AI”에서 “목표를 달성하는 시스템”으로
Tool Calling까지 붙이고 나면,
이런 순간이 온다.“이제 함수도 부르고, 조회도 하는데…
왜 일을 ‘끝까지’ 못 하지?”
- 중간에 멈추고
- 다음 행동을 스스로 결정 못 하고
- 매번 사람 지시를 기다린다
여기서 한 단계 더 나아간 개념이 바로 AI Agent다.
👉 Agent는 ‘대답하는 존재’가 아니라
‘목표를 향해 행동을 이어가는 구조’다.
이번 글에서는
- Agent가 정확히 무엇인지
- Tool Calling과 뭐가 다른지
- Agent가 왜 “루프 구조”를 가지는지
- 실무에서 쓸 수 있는 최소 Agent 구조
를 현실적인 시선으로 정리한다.
1. Agent를 한 문장으로 정의하면
“목표를 입력받고,
스스로 다음 행동을 계획하고,
도구를 사용해 실행하며,
결과를 보고 다시 판단하는 시스템”
핵심은 반복(loop) 이다.
LLM 단독:
질문 → 답변 → 끝
Agent:
목표
→ 계획
→ 행동
→ 결과 확인
→ 다음 행동
→ (목표 달성까지 반복)
2. Tool Calling vs Agent, 결정적 차이
많이 헷갈리는 포인트다.
구분Tool CallingAgent
| 트리거 | 사용자 질문 | 목표 |
| 행동 횟수 | 1회 | 다회 |
| 판단 | 단발성 | 반복적 |
| 상태 관리 | 거의 없음 | 있음 |
| 중간 결과 | 사용 안 함 | 다음 행동에 반영 |
👉 Agent는 상태(state)를 가진다.
3. Agent가 필요한 순간 (실무 기준)
다음과 같은 요청이 나오면
Tool Calling만으로는 부족하다.
- “이 문서 요약해서 메일로 보내줘”
- “고객 불만 정리하고 해결 방안 제안해줘”
- “이 프로젝트 일정 짜고 리스크 찾아줘”
- “데이터 분석하고 인사이트 뽑아줘”
이런 요청의 공통점:
- 한 번에 끝나지 않음
- 여러 단계의 판단과 실행 필요
- 중간 결과를 보고 다음 행동이 바뀜
👉 이건 Agent 문제다.
4. Agent의 기본 구성요소 5가지
실무에서 Agent는 거의 항상 이 5개로 설명된다.
① Goal (목표)
- “무엇을 달성해야 하는가”
- 질문이 아니라 목표 문장
② Planner (계획자)
- 목표를 여러 단계로 분해
- “지금 뭘 해야 하지?”를 결정
③ Toolset (도구)
- DB 조회
- API 호출
- 계산
- 파일 처리
④ Memory (상태/기억)
- 이전 행동
- 중간 결과
- 실패 이력
⑤ Executor (실행 루프)
- 계획 → 실행 → 관찰 → 재계획
5. Agent의 핵심 구조: ReAct Loop
Agent 구조의 원형은 보통 ReAct 패턴이다.
Thought (생각)
→ Action (행동)
→ Observation (결과)
→ Thought
→ Action
→ ...
이 루프가 끊기지 않고
목표가 달성될 때까지 반복된다.
중요한 점:
- LLM은 다음 행동을 결정
- 실제 실행은 Tool
- 결과는 다시 LLM 입력으로
6. “생각(Thought)”을 노출해야 할까?
AutoGPT류 초기 Agent들은
생각을 전부 노출했다.
하지만 실무에서는 다르다.
실무 권장
- 내부 추론: 비공개
- 외부 출력: 행동 결과만
이유:
- 보안
- 비용
- 안정성
👉 Agent는 생각을 ‘한다’가 중요하지,
‘보여준다’는 필수가 아니다.
7. 최소 Agent 구조 (개념 코드)
아래는 Agent의 핵심을 가장 단순하게 표현한 구조다.
(실행 가능, 개념 검증용)
class SimpleAgent:
def __init__(self, tools):
self.tools = tools
self.memory = []
def decide(self, state):
# 실제로는 LLM 호출
if "조회" in state:
return "search"
return "finish"
def act(self, action):
if action == "search":
return self.tools["search"]()
return "완료"
def run(self, goal):
state = goal
while True:
action = self.decide(state)
result = self.act(action)
self.memory.append((action, result))
if action == "finish":
break
state = result
return self.memory
👉 진짜 Agent 프레임워크들은
이 구조를 훨씬 정교하게 확장한 것이다.
8. Agent 설계에서 가장 중요한 것: 멈출 조건
초보자들이 가장 많이 망치는 지점이다.
❌ “계속 생각해”
❌ “완벽할 때까지 반복해”
이러면:
- 무한 루프
- 비용 폭발
- 예측 불가
반드시 필요한 것
- 최대 step 수
- 목표 달성 조건
- 실패 종료 조건
Agent는 스마트한 봇이지
영원히 생각하는 철학자가 아니다.
9. AutoGPT, BabyAGI가 왜 나왔고 왜 사라졌나
초기 Agent 프로젝트들은:
- “완전 자동화”를 꿈꿨다
- 하지만 현실은:
- 느림
- 비쌈
- 통제 불가
그래서 실무는 이렇게 수렴했다.
❌ 모든 걸 Agent에게 맡기지 않는다
✅ 사람이 정한 구조 안에서만 Agent를 쓴다
Agent는 부분 자동화 도구다.
10. 실무에서 Agent를 쓰는 현실적인 패턴
잘 되는 패턴
- 리서치 보조
- 문서 요약 파이프라인
- 반복 업무 자동화
- 의사결정 초안 생성
안 되는 패턴
- 완전 자율 의사결정
- 금전/권한 관련 최종 판단
- 예외가 많은 업무
👉 Agent는 ‘직원’이 아니라
‘잘 훈련된 인턴’에 가깝다.
11. RAG + Tool + Agent, 합치면?
이 조합이 현재 정답에 가장 가깝다.
Agent
├─ 판단 (LLM)
├─ 지식 조회 (RAG)
├─ 실행 (Tool)
├─ 상태 관리 (Memory)
└─ 루프 제어
이 구조가:
- 고객 상담
- 내부 운영 자동화
- 리서치 시스템
- 업무 보조 AI
의 기반이 된다.
12. 이 글의 핵심 요약
개념요약
| Agent | 목표 달성 루프 |
| Tool Calling | 단발성 실행 |
| 차이 | 상태 + 반복 |
| 핵심 | 계획 → 실행 → 관찰 |
| 실무 포인트 | 멈출 조건 |
LLM,AI에이전트,Agent,ToolCalling,RAG,AI자동화,LLM실무,ReAct,AI시스템,생성형AI
'study > ML' 카테고리의 다른 글
| LLM 실전 활용 7: Agent 실패 패턴 총정리 — 왜 AI는 데모에선 잘 되는데, 운영에선 망가질까 (0) | 2026.01.07 |
|---|---|
| LLM 실전 활용 4: Tool Calling & Function Calling — “말하는 모델”을 “일하는 시스템”으로 바꾸는 순간 (0) | 2026.01.04 |
| LLM 실전 활용 3: 프롬프트 엔지니어링의 착각과 진실 — RAG 시대에 프롬프트는 무엇을 해야 하는가 (0) | 2026.01.02 |
| LLM 실전 활용 2: 임베딩과 벡터 데이터베이스 — RAG 성능의 80%는 여기서 결정된다 (0) | 2025.12.31 |
| LLM 실전 활용 1: RAG의 탄생 — “모델을 키우지 말고, 지식을 연결하자” (0) | 2025.12.30 |
- Total
- Today
- Yesterday
- Python
- JWT
- Redis
- PostgreSQL
- fastapi
- Prisma
- Next.js
- LangChain
- 압박면접
- NestJS
- 개발블로그
- 백엔드개발
- 웹개발
- CI/CD
- ai철학
- node.js
- kotlin
- 딥러닝
- JAX
- flax
- SEO최적화
- 쿠버네티스
- REACT
- seo 최적화 10개
- Express
- nextJS
- Docker
- llm
- rag
- DevOps
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
