콘텐츠로 이동

P1-14.2 RAG(retrieval-augmented generation)와 도구 사용(tool use)의 위치

Section ID: P1-14.2 Version: v2026.07.20

P1-14.1에서는 AI 서비스를 모델(model), 앱(application), 데이터(data), 도구(tool), 흐름(orchestration)의 조합으로 봤습니다. 이제 그중 헷갈리기 쉬운 두 가지를 구분합니다.

RAG: 외부 자료를 찾아 모델 입력 맥락에 붙인다.

도구 사용(tool use): 모델 밖의 시스템을 호출해 조회하거나 행동을 실행한다.

둘 다 “모델 밖의 무언가를 사용한다”는 점에서 비슷해 보입니다. 하지만 역할은 다릅니다.

RAG는 답변에 필요한 외부 자료를 가져오는 구조이고, 도구 사용은 외부 시스템의 기능을 호출하는 구조다.

여기서는 두 구조를 비교해 AI 서비스 안에서 각각 어디에 놓이는지 봅니다.

Part 1에서 RAG(retrieval-augmented generation), 도구 사용(tool use), 검색(retrieval), 도구 호출(tool call), 승인(approval)의 기본 구분은 여기서 잡습니다. 13.3에서는 RAG를 검색 결과를 생성 입력에 붙이는 구조로 먼저 봤고, 14.1에서는 서비스 전체를 모델, 앱, 데이터, 도구의 조합으로 넓혔습니다. 여기서는 그 둘을 연결해 RAG와 도구 사용은 서비스 안에서 어디가 다른가를 분명히 구분합니다.

13장과 14장 사이에서 가장 자주 섞이는 세 단어를 먼저 짧게 고정하면 다음과 같습니다.

구분 한 문장 기준 가장 가까운 역할
RAG 외부 문서를 찾아 모델 입력 맥락에 붙인다 읽기와 근거 보강
도구 사용(tool use) 외부 시스템 기능을 호출해 조회하거나 행동한다 실행과 외부 연결
에이전트(agent) 목표를 따라 RAG와 도구 사용을 여러 단계로 이어 간다 작업 흐름과 상태 관리

이 요약 상자의 핵심은 RAG와 도구 사용은 에이전트의 재료가 될 수 있지만, 셋이 같은 말은 아니다라는 점입니다. 이 절에서는 먼저 읽기실행의 차이를 구분하고, 여러 단계를 이어 가는 구조로서의 에이전트는 바로 다음 P1-14.3에서 이어서 봅니다.

여기서는 RAG와 도구 사용의 위치를 비교합니다. 구체적인 에이전트(agent) 구조는 P1-14.3에서 다룹니다. MCP(Model Context Protocol)처럼 도구 연결을 표준화하는 방식은 P1-14.4에서 다룹니다. 하네스(harness), 평가, 실행 로그는 P1-14.5에서 다룹니다.

RAG, 도구 사용, 검색, 도구 호출, 승인은 서로 다른 읽기·실행·통제 절차입니다. 각 용어의 역할은 다음처럼 구분할 수 있습니다.

용어 아주 짧은 뜻 이 절에서의 역할
RAG 외부 자료를 찾아 입력 맥락에 붙이는 구조 근거 자료 연결의 대표 방식
도구 사용 외부 시스템 기능을 호출하는 구조 실제 조회와 행동의 실행 방식
검색 관련 자료나 대상을 찾는 단계 RAG의 출발점
도구 호출 이름과 인자를 정해 외부 기능을 실행하는 단계 tool use의 핵심 동작
승인 실행 전 사람이나 정책이 허용 여부를 확인하는 절차 위험한 행동의 안전 장치

여기서는 RAG는 읽기, 도구 사용은 실행, 승인은 행동 전 검토라는 구분을 기준선으로 둡니다.

주제 이 절에서 볼 질문
RAG 외부 자료를 왜 검색해 입력 맥락에 넣는가?
도구 사용(tool use) 외부 시스템을 왜 호출하는가?
차이 자료를 읽는 것과 행동을 실행하는 것은 어떻게 다른가?
조합 RAG와 도구 사용은 함께 쓰일 수 있는가?
책임 검색 결과와 도구 실행 결과는 누가 검토해야 하는가?

RAG와 도구 사용이 놓이는 위치

  • RAG(retrieval-augmented generation)를 외부 자료를 읽어 오는 구조로 이해합니다.
  • 도구 사용(tool use)을 외부 시스템의 기능을 호출하는 구조로 이해합니다.
  • RAG와 도구 사용이 모두 모델 밖의 자원을 사용하지만, 목적과 위험이 다르다는 점을 구분합니다.
  • 두 구조가 함께 쓰일 수 있음을 이해합니다.
  • 에이전트(agent) 구조로 넘어가기 전에 기본 구성요소의 역할을 정리합니다.

세 가지 기준

여기서는 둘 다 “모델 밖을 쓴다”는 이유로 섞이기 쉬운 두 구조를 분리합니다. 본문을 읽을 때 기준이 되는 세 가지 관점은 다음과 같습니다.

기준 왜 중요한가 이 절에서 필요한 이해 수준
RAG는 자료를 찾아 맥락에 붙이는 구조라는 점 검색과 생성의 결합이 무엇인지 명확히 보여 줍니다. 문서를 읽어 답변 근거로 붙이는 구조로 이해합니다.
도구 사용(tool use)은 외부 기능을 실제로 호출하는 구조라는 점 문서를 참고하는 것과 행동을 실행하는 것을 구분하게 해 줍니다. 검색 API, 계산기, DB 조회처럼 바깥 기능을 부르는 구조로 이해합니다.
둘은 함께 쓸 수 있지만 역할과 위험이 다르다는 점 에이전트 설명으로 넘어가기 전 경계를 세워 줍니다. 읽기와 실행은 다르고, 검토 책임도 다르다고 이해합니다.

RAG는 자료를 찾아 맥락에 붙인다

RAG는 P1-13.3에서 본 것처럼 검색(retrieval)과 생성(generation)을 연결하는 구조입니다.

사용자 질문 -> 관련 문서 검색 -> 검색된 문서 조각을 입력 맥락에 추가 -> 모델이 답변 생성

RAG의 중심 질문은 이것입니다.

모델이 답할 때 참고할 자료를 어디서 가져올 것인가?

예를 들어 사용자가 이렇게 묻는다고 합시다.

이 문서 모음에서 임베딩을 의미 자체라고 설명했나?

RAG는 이 문서 모음의 문서 조각을 검색해 관련 절을 찾을 수 있습니다.

단계 역할
질문 임베딩 질문을 벡터로 바꿈
유사도 검색 관련 문서 조각 후보를 찾음
맥락 보강 검색된 조각을 프롬프트에 넣음
답변 생성 모델이 자료를 참고해 답함

이때 RAG는 외부 자료를 읽어 오는 구조입니다. 문서를 수정하거나, 메일을 보내거나, 결제를 실행하는 구조는 아닙니다.

도구 사용은 외부 시스템을 호출한다

도구 사용(tool use)은 모델이 외부 시스템의 기능을 사용할 수 있게 하는 구조입니다. OpenAI의 function calling 문서도 모델이 외부 데이터와 시스템에 연결될 수 있음을 설명합니다.

여기서는 다음처럼 구분할 수 있습니다.

모델: 필요한 도구와 인자를 제안한다.

앱 또는 서버: 도구 호출을 검토하고 실제 실행한다.

도구: 검색, 계산, 파일 처리, API 호출 같은 작업을 수행한다.

예를 들어 사용자가 이렇게 요청한다고 합시다.

내일 서울 날씨를 확인해서 일정 메모에 추가해 줘.

이 요청에는 두 종류의 외부 작업이 섞일 수 있습니다.

작업 가능한 방식
날씨 확인 날씨 API 도구 호출
일정 메모 추가 캘린더 또는 메모 API 도구 호출
결과 설명 모델이 자연어로 정리

도구 사용은 외부 시스템의 상태를 읽거나 바꿀 수 있습니다. 그래서 RAG보다 실행 책임이 더 무겁습니다.

RAG: 자료를 찾아 입력에 넣는다.

도구 사용: 외부 시스템을 호출해 조회하거나 행동한다.

RAG와 도구 사용은 목적이 다르다

두 구조를 나란히 보면 차이가 더 분명합니다.

구분 RAG 도구 사용(tool use)
중심 목적 답변에 필요한 자료를 찾음 외부 기능을 실행함
주된 대상 문서, 지식베이스, 검색 인덱스 API, 데이터베이스, 파일 시스템, 업무 시스템
모델 입력과의 관계 검색 결과가 프롬프트 맥락에 들어감 도구 호출 결과가 다시 모델이나 앱에 전달됨
대표 질문 무엇을 참고해야 하는가? 무엇을 실행해야 하는가?
주요 위험 잘못된 자료, 오래된 자료, 관련 없는 자료 잘못된 실행, 권한 문제, 외부 상태 변경

예를 들어 같은 회의록이라는 단어가 나와도 구조는 달라질 수 있습니다.

회의록에서 결정 사항을 설명해 줘. -> RAG 또는 파일 검색 중심

회의록에서 결정 사항을 찾아 캘린더에 등록해 줘. -> RAG + 도구 사용

첫 번째 요청은 자료를 찾아 요약하면 됩니다. 두 번째 요청은 자료를 찾은 뒤, 캘린더라는 외부 시스템에 행동을 실행해야 합니다.

둘은 함께 쓰일 수 있다

실제 AI 서비스에서는 RAG와 도구 사용이 함께 쓰일 수 있습니다.

예를 들어 조직 내부 문서를 활용하는 업무 도우미를 생각해 봅니다.

사용자: 출장비 규정에 맞게 이번 영수증을 처리해 줘.

가능한 흐름은 다음과 같습니다.

  1. RAG로 출장비 규정 문서를 검색한다.
  2. 모델이 규정과 영수증 내용을 비교한다.
  3. 필요한 항목이 부족하면 사용자에게 확인 질문을 한다.
  4. 승인 가능한 경우 비용 처리 시스템 API를 호출한다.
  5. 처리 결과와 근거 문서를 사용자에게 보여 준다.

이 흐름에서 RAG와 도구 사용은 서로 다른 역할을 합니다.

단계 구조 역할
규정 검색 RAG 판단 근거를 찾음
영수증 해석 모델 입력 자료를 읽고 정리함
비용 처리 도구 사용 외부 업무 시스템을 실행함
결과 표시 사용자에게 결과와 근거를 보여 줌

이런 조합이 에이전트(agent) 구조로 발전할 수 있습니다. 하지만 여기서는 여러 단계를 스스로 이어 가는 에이전트 설명까지는 들어가지 않습니다.

도구 사용에는 권한과 승인 흐름이 필요하다

도구 사용은 외부 시스템을 호출할 수 있으므로 권한(permission)과 승인(approval)이 중요합니다.

RAG가 잘못된 문서를 가져오면 답변 품질이 나빠질 수 있습니다. 도구 사용이 잘못되면 외부 시스템의 상태가 바뀔 수 있습니다.

상황 위험
잘못된 이메일 전송 실제 수신자에게 잘못된 정보가 감
잘못된 결제 실행 비용 손실이 발생할 수 있음
권한 없는 문서 조회 개인정보 또는 기밀 정보 노출
잘못된 파일 수정 작업 산출물이 훼손될 수 있음
중복 API 호출 같은 작업이 여러 번 실행될 수 있음

그래서 도구 사용은 다음 질문을 포함해야 합니다.

이 도구를 호출해도 되는 사용자인가? 이 도구가 바꿀 외부 상태는 무엇인가? 실행 전에 사용자 승인이 필요한가? 실패하면 어떻게 되돌리거나 기록할 것인가? 실행 결과를 어떻게 검토할 것인가?

이 문제는 보안(security), 개인정보(privacy), 운영(operation)과도 연결됩니다. 다만 P1-15에서 다룰 윤리, 저작권, 보안 논의를 여기서 길게 확장하지는 않습니다.

모델은 호출을 제안하고, 실행은 시스템이 맡는다

도구 사용을 설명할 때 중요한 경계가 있습니다.

모델이 직접 외부 세계를 바꾸는 것이 아니다. 앱과 서버가 도구 호출을 실행한다.

모델은 보통 다음과 같은 정보를 만들 수 있습니다.

도구 이름: calendar.create_event

인자: 날짜, 시간, 제목, 참석자

하지만 실제 캘린더 API를 호출하는 것은 앱 또는 서버 코드입니다. 이 코드는 권한을 확인하고, 인자를 검증하고, 필요한 경우 사용자 승인을 받은 뒤 실행해야 합니다.

이 구분은 책임을 분명하게 만듭니다.

요소 책임
모델(model) 호출할 도구와 인자 후보를 생성
앱/서버(application/server) 권한 확인, 검증, 실행 여부 결정
도구(tool) 외부 시스템 조회 또는 실행
사용자(user) 필요한 경우 승인 또는 수정

이 관점은 Codex 같은 에이전트형 도구를 이해할 때도 중요합니다. 모델이 작업을 제안하더라도, 실제 파일 수정, 명령 실행, 커밋, 배포는 실행 환경과 권한 정책 안에서 이루어집니다.

작은 예시로 보는 위치 차이

긴 학습 문서를 점검하고 갱신하는 작업을 예로 들어 보겠습니다.

요청: 벡터 검색 설명의 근거를 확인하고, 관련 문단을 보강해 줘.

가능한 흐름은 다음과 같습니다.

단계 구조 설명
기존 문서 읽기 도구 사용 파일 시스템에서 현재 Section을 읽음
근거 자료 찾기 검색 또는 RAG 관련 논문과 문서 후보를 찾음
근거 검토 모델 + 사람 자료가 주장과 연결되는지 판단
문서 수정 도구 사용 파일을 패치함
빌드 확인 도구 사용 MkDocs 빌드를 실행함
결과 보고 앱/대화 UI 변경 내용과 검증 결과를 보여 줌

여기서 RAG는 근거 자료를 찾아 답변 맥락을 보강하는 부분에 가깝습니다. 도구 사용은 파일 읽기, 패치, 빌드, 커밋처럼 외부 환경을 실제로 다루는 부분입니다.

체크리스트

  • RAG(retrieval-augmented generation)를 외부 자료를 찾아 입력 맥락에 붙이는 구조로 설명할 수 있다.
  • 도구 사용(tool use)을 외부 시스템의 기능을 호출하는 구조로 설명할 수 있다.
  • RAG와 도구 사용의 차이를 자료를 읽는 것행동을 실행하는 것으로 구분할 수 있다.
  • RAG와 도구 사용이 함께 쓰일 수 있음을 예로 설명할 수 있다.
  • 도구 사용에는 권한(permission), 승인(approval), 검증(validation), 실행 로그(log)가 필요함을 설명할 수 있다.
  • 모델은 도구 호출을 제안할 수 있지만 실제 실행은 앱 또는 서버가 담당한다고 설명할 수 있다.
  • 자료를 읽는가, 외부 기능을 실행하는가, 사전 승인과 검증이 필요한가를 기준으로 RAG와 도구 사용을 구분할 수 있다.

출처와 참고 자료