---
category: Unified
tags: [auto-consolidated, technical-documentation]
title: [[Retrieval-Augmented Generation (RAG)|Retrieval-Augmented Generation (RAG)]]
last_updated: 2026-05-02
---

# [[Retrieval-Augmented Generation (RAG)|Retrieval-Augmented Generation (RAG)]]

## 📌 Brief Summary
RAG(Retrieval-Augmented Generation)는 모델 내부의 파라미터 지식에만 의존하지 않고, 외부 데이터베이스나 문서 저장소에서 현재 질문과 관련된 정보를 실시간으로 검색하여 컨텍스트에 주입함으로써 답변의 정확성과 최신성을 높이는 기술이다. 에이전틱 시스템에서는 단순한 지식 조회를 넘어, 에이전트가 스스로 무엇을 검색할지 결정하고 검색 결과를 바탕으로 다음 행동을 계획하는 능동적 도구로 활용된다.

---

> "모델의 내부 기억에만 의존하지 말고, 가장 최신의 도서관(외부 지식)을 참조하라" — 사용자의 질문에 답변하기 전 관련성 높은 신뢰 문서들을 검색하여 프롬프트에 주입함으로써, 환각(Hallucination)을 줄이고 답변의 정확성과 최신성을 확보하는 기술.

## 📖 Core Content
*   **RAG의 3단계 프로세스**:
    *   **Retrieval (검색)**: 사용자의 질문을 벡터로 변환하여 유사한 문서를 찾거나, 키워드 검색을 수행.
    *   **Augmentation (보강)**: 검색된 결과 중 가장 관련성 높은 조각을 골라 시스템 프롬프트나 컨텍스트에 삽입.
    *   **Generation (생성)**: 보강된 정보를 바탕으로 모델이 최종 답변을 생성.
*   **에이전틱 RAG (Agentic RAG)**:
    *   **Self-querying**: 에이전트가 검색어 자체를 최적화하거나 여러 번의 검색을 수행.
    *   **Corrective RAG**: 검색 결과가 부적절할 경우 검색 전략을 수정하거나 외부 웹 검색으로 전환.
    *   **Multi-hop Retrieval**: 복잡한 질문을 여러 단계로 나누어 순차적으로 검색하고 통합.
*   **벡터 데이터베이스 (Vector DB)**: 텍스트의 의미적 유사성을 고차원 벡터 공간에서 계산하여 검색하는 핵심 저장소.
*   **시맨틱 검색 (Semantic Search)**: 단순한 키워드 매칭이 아닌 문장의 맥락과 의미를 이해하여 가장 가까운 정보를 찾는 방식.

---

- **추출된 패턴:** 질문(Query) -> 검색(Retrieve) -> 보강(Augment) -> 생성(Generate)으로 이어지는 4단계 지식 주입 파이프라인 패턴.
- **세부 구성 요소:**
    - **Vector Database:** 문서들을 벡터(Embedding) 형태로 저장하고 유사도 기반으로 고속 검색.
    - **Chunking:** 긴 문서를 검색 효율을 높이기 위해 의미 있는 작은 조각으로 나눔.
    - **Context Window [[Management|Management]]:** 검색된 정보 중 가장 관련성 높은 조각들을 모델의 컨텍스트 제한 내에 최적으로 배치.
    - **Citation:** 답변의 근거가 되는 출처(Source)를 명시하여 신뢰성 확보.

## ⚖️ Trade-offs & Caveats
*   **컨텍스트 오염**: 검색된 정보에 노이즈가 섞여 있거나 관련 없는 정보가 포함될 경우 모델의 답변 품질이 오히려 저하될 수 있다.
*   **지연 시간**: 외부 저장소 검색과 벡터 변환 과정에서 오버헤드가 발생하여 답변 속도가 느려진다.
*   **검색의 한계**: 벡터 검색은 단어 간의 복잡한 논리적 관계나 구조적 지식을 파악하는 데 한계가 있다. (이를 위해 [[GraphRAG (그래프 기반 검색 증강 생성)|GraphRAG]]가 도입됨)

---

- **과거 데이터와의 충돌:** 단순히 모든 지식을 모델 가중치에 학습([[Fine-tuning|Fine-tuning]])시키려던 방식에서, 가중치는 '추론 엔진'으로 쓰고 지식은 '외부 DB'에서 가져오는 하이브리드 방식으로 정착.
- **정책 변화:** Antigravity 프로젝트는 모든 지식 생성 태스크에 RAG를 기본 아키텍처로 사용하며, 현재 보고 있는 이 위키 자체가 에이전트의 RAG 지식 베이스가 됨.

## 🔗 Knowledge Connections
### Related Concepts
*   [[Agent Memory System|Agent Memory System]]
    *   연결 이유: RAG는 에이전트의 메모리 중 '외부 지식'과 '장기 이력'을 불러오는 실질적인 메커니즘이다.
*   [[GraphRAG & Knowledge Graph Memory|GraphRAG & Knowledge Graph Memory]]
    *   연결 이유: 단순 벡터 검색의 한계를 극복하기 위해 관계형 지식을 활용하는 진화된 RAG 형태이다.
*   [[Context Engineering|Context Engineering]]
    *   연결 이유: 검색된 방대한 결과 중 어떤 것을 컨텍스트에 넣을지 결정하는 전략이다.

### Deeper Research Questions
*   모델의 컨텍스트 윈도우가 무한히 커진다면(Long-context), 여전히 RAG가 필요한가? (Compute Economics 관점의 분석)
*   검색된 정보가 모델의 내부 지식과 충돌할 때, 모델이 '외부 근거'를 우선시하게 만드는 최적의 프롬프트 가중치 조절 방법은 무엇인가?
*   수백만 개의 문서 중 '최신성'과 '정확성'을 동시에 만족하는 정보를 순위화(Re-ranking)하는 하이브리드 알고리즘은 무엇인가?

### Practical Application Contexts
*   **Implementation:** LangChain의 `VectorStoreRetriever`를 사용하여 에이전트에게 지식 베이스 검색 도구를 부여한다.
*   **System Design:** 검색 결과의 품질을 높이기 위해 사용자 질문을 확장(Query Expansion)하거나, 검색된 문서를 다시 순위화(Re-ranking)하는 파이프라인을 구축한다.

---
*Last updated: 2026-05-01*

---

- Vector-Database, [[LlamaIndex|LlamaIndex]], [[Hallucination-in-LLM|Hallucination-in-LLM]], [[Prompt-Engineering|Prompt-Engineering]]
- **Raw Source:** 10_Wiki/Topics/AI/Retrieval-Augmented-Generation-RAG.md
