학습 자료

RAG 와 에이전트 — 검색해서 답하고, 도구를 쥐여준다


Article

세 강에 걸쳐 조각을 하나씩 놨다. 17강 — 모델은 학습 안 된 문서를 모른다는 문제. 18강 — 문장을 좌표로 바꾸는 임베딩. 19강 — 그 좌표를 저장하고 빠르게 찾는 벡터DB. 이번 강의에서 세 조각을 하나로 잇는다. 그리고 한 걸음 더 나아가, 검색을 넘어 행동까지 하는 에이전트를 본다.

세 조각을 한 흐름으로 잇는다

RAG 전체 흐름
  1. 사용자가 질문한다"환불 정책이 뭔가요?"
  2. 질문을 좌표로 바꾼다18강의 임베딩. 질문도 같은 방식으로 좌표가 된다
  3. 벡터DB 에서 가까운 문서를 찾는다19강의 검색. 뜻이 비슷한 문서 몇 개를 가져온다
  4. 찾은 문서를 컨텍스트 윈도우에 끼워 넣는다17강에서 본 그 창. 질문과 문서를 함께 채운다
  5. 모델이 그 문서를 근거로 답한다학습 때 못 봤어도, 지금 창 안에 있으니 답할 수 있다
이 다섯 단계 전체에 RAG(Retrieval-Augmented Generation, 검색 증강 생성)라는 이름이 붙어 있다. 검색해서(Retrieval) 답을 보강해(Augmented) 생성한다(Generation).

세 강에 걸쳐 따로 봤던 조각이 사실은 한 파이프라인의 부품이었다. 임베딩은 검색이 되게 만드는 도구, 벡터DB는 그 검색을 빠르게 하는 창고, 컨텍스트 윈도우는 찾은 걸 실제로 모델에게 건네는 통로다.

검색을 넘어 — 도구를 쥐여준다

RAG 는 모델에게 "읽을 거리"를 붙여주는 것이었다. 그런데 질문에 따라선 읽는 걸로 안 끝나고, 무언가를 직접 실행해야 답이 나오는 경우가 있다. "지금 재고가 몇 개 남았어?" 는 문서를 찾는 게 아니라 재고 시스템을 조회해야 한다.

이럴 때 모델에게 도구(tool)를 쥐여준다. 검색 창고 대신, 함수 몇 개를 손에 쥐여주고 필요하면 스스로 골라 부르게 하는 것이다. 이렇게 도구를 쥐고 스스로 다음 행동을 고르는 모델을 **에이전트(agent)**라 부른다.

RAG vs 에이전트

RAG

찾아서 붙여준다

  • 질문마다 관련 문서를 검색해 창에 끼워 넣는다
  • 모델은 그 문서를 "읽고" 답한다
  • 흐름이 고정돼 있다 — 검색 → 답변

에이전트

도구를 쥐고 스스로 고른다

  • 검색 · 계산 · DB 조회 · API 호출 같은 도구 여러 개를 쥔다
  • 이번 질문에 어떤 도구가 필요한지 모델이 스스로 판단한다
  • 도구를 부르고 결과를 본 뒤, 다음 행동을 또 고른다 — 여러 번 반복될 수 있다
RAG 는 에이전트가 쓰는 도구 중 하나로 볼 수도 있다. "문서를 검색하는 도구"를 쥔 에이전트가 곧 RAG 다.
에이전트가 쥘 수 있는 도구 (예시)
도구언제 부르나
문서 검색(RAG)"환불 정책이 뭔가요" — 사내 문서를 찾아야 할 때
계산기"37% 할인가는 얼마야" — 정확한 계산이 필요할 때
사내 시스템 조회"지금 재고 몇 개야" — 실시간 데이터가 필요할 때
외부 API 호출"오늘 서울 날씨 어때" — 모델 학습 이후의 정보가 필요할 때
어떤 도구를 언제 부를지는 모델이 질문을 읽고 스스로 고른다. 사람이 매번 정해주지 않는다.

에이전트도 여전히 다음 토큰을 고르는 모델이다

여기서 흔한 오해가 하나 생긴다. "에이전트"라는 말이 붙으면 뭔가 자율적으로 생각하는 존재처럼 들린다. 아니다.

그래서 에이전트가 이상한 도구를 이상한 값으로 부르거나, 필요 없는데 자꾸 도구를 부르는 경우도 생긴다. 15강에서 본 환각과 같은 뿌리다 — 확률로 다음 토큰을 잇다 보면 가끔 그럴듯하지만 틀린 선택을 한다.

정리하면

RAG 는 임베딩·벡터DB·컨텍스트 윈도우를 이어 붙여, 모델이 모르는 문서를 검색해 답하게 만드는 흐름이다. 에이전트는 여기서 한 걸음 더 나아가, 검색뿐 아니라 계산·조회·호출 같은 도구를 모델이 스스로 골라 쓰게 만든 것이다.

다시 짚어보기
  1. 01

    RAG 는 임베딩 · 벡터DB · 컨텍스트 윈도우를 잇는 흐름이다

    질문을 좌표로 바꿔 가까운 문서를 찾고, 그 문서를 창에 끼워 넣어 답하게 한다.

  2. 02

    에이전트는 검색을 넘어 도구를 쥔다

    계산 · 조회 · API 호출 중 필요한 걸 모델이 스스로 골라 부른다.

  3. 03

    에이전트도 여전히 다음 토큰을 고르는 모델이다

    도구를 부르고 실행하는 건 모델 바깥의 프로그램이 한다. 자율적 존재가 아니다.

  4. 04

    모델은 자기 바깥을 모른다는 문제를, 이렇게 붙여주고 쥐여줘서 풀었다

    15강 컨텍스트 윈도우 → 17강 문제 제기 → 18 · 19강 임베딩과 벡터DB → 20강 RAG 와 에이전트로 완성됐다.

Part 5가 끝났다. 모델이 자기 학습 데이터 바깥을 모른다는 문제(17강)에서 출발해, 문장을 좌표로 바꾸는 법(18강), 그 좌표를 저장하고 찾는 창고(19강), 그리고 검색과 도구를 잇는 전체 흐름(20강)까지 왔다.

다음 부부터는 방향을 한 번 튼다. 이렇게 만든 모델을 어떻게 실제 서비스로 띄우는지, 인프라와 비용의 세계로 들어간다.

RAG 와 에이전트 — 검색해서 답하고, 도구를 쥐여준다 — 디코드랩(DCODELAB)