티스토리 뷰

반응형

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

※ 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/04   »
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
글 보관함
반응형