coredot.today
기술 탐색으로 돌아가기
검색·RAG실험

에이전틱 검색 (Agentic Search)

검색 결과를 보고 다시 묻고, 문서를 열어 이동하고, 충분하면 멈춘다 — RAG가 파이프라인에서 에이전트로 바뀌는 방식

직접 해보기 5라이브 실행
종류
논문
언어
Python
사실 확인
2026.10.24

TRY IT

직접 해보기

OVERVIEW

개요

무엇인가

에이전틱 검색은 검색에 관한 결정 — 무엇을 검색할지, 어디를 읽을지, 언제 멈출지 — 을 파이프라인 설계자가 아니라 모델이 질의마다 내리게 하는 방식입니다. 검색 알고리즘이 바뀐 것이 아닙니다. BM25도 벡터 검색도 그대로 있고, 바뀐 것은 누가 언제 결정하느냐입니다.

파이프라인 RAG는 한 방향으로만 흐릅니다. 질의 → top-k → 프롬프트 → 답. 첫 결과를 보고 나서야 다음에 무엇을 할지 알 수 있는 질문 — 두 문서 비교, 표와 각주, "별표 2 참조"를 따라가기, 첫 검색이 불충분한 경우 — 에서는 k를 늘려도 구조적으로 실패합니다.

2026년 상반기에 세 갈래 연구가 같은 방향을 가리켰습니다. 검색 도구를 모델에게 직접 주는 A-RAG(USTC, 2월), 문서를 링크된 위키로 컴파일하는 LLM-Wiki(Tencent WeChat, 5월), 인덱스 없이 셸로 코퍼스를 뒤지는 DCI(5월). 8월 20일 Mistral이 다섯 도구 구성으로 제품화했습니다.

어떻게 동작하나

에이전트 검색 루프ReAct
생각지금 모은 증거로 답할 수 있나? 부족하면 무엇이 빠졌나?
행동가벼운 검색(ID·스니펫·위치만), 문서 열기·이동, 지정 범위 읽기, 문서 안 grep 중 하나를 부른다.
관찰결과가 대화 이력에 붙고 다음 스텝의 입력이 된다. 충분하면 예산이 남아도 멈춘다.

핵심은 도구를 세트로, 해상도를 나눠서 주는 것입니다. A-RAG는 세 도구(keyword_search·semantic_search·chunk_read)를 줍니다. 두 검색 도구는 전문이 아니라 청크 ID와 짧은 스니펫만 돌려주고, 전문은 모델이 chunk_read로 요청할 때만 들어옵니다. 이미 읽은 청크를 다시 읽으려 하면 토큰을 쓰지 않습니다. 이 "점진적 공개" 덕에 도구가 늘었는데 토큰이 줄었습니다.

구성 (A-RAG 논문)도구질문당 검색 토큰
Naive RAG없음 — 한 번 검색약 5,300
A-RAG (Naive)임베딩 검색 하나, 전문 반환22,000~56,000
A-RAG (Full)키워드·의미 검색(스니펫) + 청크 읽기2,700~7,700

Mistral의 다섯 도구는 search(코퍼스 전체, exclude_ids로 이미 본 청크 제외), open, navigate, read, grep(열린 문서 안)입니다. 인덱스는 "어느 문서가 유망한가"를, 에이전트는 "그 문서의 어느 페이지·표를 확인할지"를 맡습니다. 그러려면 인덱스가 청크의 오프셋(페이지·절)을 알아야 합니다.

빠른 시작

A-RAG 공식 저장소 README의 절차입니다(임베딩은 논문과 같은 Qwen3-Embedding-0.6B).

bash
git clone https://github.com/Ayanami0730/arag.git && cd arag
uv sync --extra full
git clone https://huggingface.co/datasets/Ayanami0730/rag_test data --depth 1

uv run python scripts/build_index.py --chunks data/musique/chunks.json \
    --output data/musique/index --model Qwen/Qwen3-Embedding-0.6B --device cuda:0

export ARAG_API_KEY="your-api-key" ARAG_BASE_URL="https://api.openai.com/v1" ARAG_MODEL="gpt-5-mini"
uv run python scripts/batch_runner.py --config configs/example.yaml \
    --questions data/musique/questions.json --output results/musique --limit 10 --workers 5

Mistral 쪽은 로컬에서 코퍼스를 색인해 볼 수 있는 mistralai/search-starter-app(MIT, Vespa 인덱스 + MCP 서버)이 있습니다.

언제 쓰고, 언제 피하나

전체 질의에 켜지 않습니다. 모든 질의는 하이브리드 RAG로 먼저 가고, 충분성 판정이 실패하거나 라우터가 어려운 유형으로 분류한 질의만 에이전트 경로로 승격합니다.

질문의 성격보낼 경로도구 호출
직접 사실 조회, 위치가 예측 가능, 대량 반복 FAQ하이브리드 RAG (one-shot)검색 1회
긴 계약서·보고서의 특정 표·각주, 원문 확인이 필요한 수치검색 + 열기 + 이동 + 읽기3~8회
여러 문서 비교·합산반복 검색 + 증거 집합 관리문서별 반복 + 충분성 판정
사건·관계·다중 홉그래프·구조화 RAG그래프 탐색·조인
스캔·표·도표 문서멀티모달 문서 RAG페이지 찾은 뒤 그 페이지만 VLM

Mistral 발표 기준 FinanceBench에서 one-shot 26.7%가 다시 검색만 할 수 있어도 +47.3~52.6pp 올랐고, 이동 도구를 더하면 정확도가 더 오르면서 토큰은 search-only 대비 23.9~33.7% 줄었습니다. 스캔 위주의 OfficeQA Pro에서 GLM-5.2는 6.3% → 51.9%였습니다. 실패 질의 중 비교·참조 따라가기 같은 유형이 10%도 안 되면 지금은 파이프라인 개선이 먼저입니다.

한계와 주의

  • 충분성 판정과 스텝 예산이 도구보다 먼저다. "충분하면 멈춘다 / N스텝이면 합성한다 / 반복이면 포기한다" 세 규칙이 없으면 비용 상한이 없는 시스템이 된다. 승격 비율이 20%를 넘으면 스텝을 늘리기 전에 라우터를 조인다.
  • 검색 도구 하나만 주는 것이 최악이다. 반복은 가능한데 해상도가 없어 매번 코퍼스를 통째로 들여온다.
  • 모델이 도구를 잘 다뤄야 이득이 크다. A-RAG도 GPT-4o-mini 백본에서는 2Wiki에서 HippoRAG2에 졌다. 소형 오픈 모델로 온프레미스에서 돌린다면 이 조건부터 본다.
  • grep만으로는 넓은 코퍼스를 못 고른다. DCI는 문서 10만 → 20만 건에서 13.6점 떨어지고 40만 건에서 37.5%로 무너졌다. 인덱스로 후보를 좁히고 그 안에서 고해상도 도구를 쓴다.
  • Mistral 수치는 공급사 측 결과다. 자체 스택·하네스·두 모델·두 벤치마크. one-shot 기준값이 잘 튠된 하이브리드보다 낮게 잡혔을 수 있다.
  • 공격 표면이 넓어진다. 읽은 문서의 문장이 다음 검색어를 정하므로, 오염된 문서가 검색 경로까지 조종할 수 있다. 관련성 점수와 출처 신뢰도를 분리한다.
  • A-RAG 저장소는 README에 MIT를 표기하지만 GitHub가 인식하는 LICENSE 파일은 없다(2026-10 확인).

LIVE

라이브 실행

질문을 검색 계획으로 쪼개기

에이전틱 검색이 첫 단계에서 하는 일 — 한 번에 검색하기 어려운 질문을 하위 질의와 확인 순서로 쪼갭니다.

콘솔에서 키 발급받기

키는 이 브라우저에서 core.today 게이트웨이로만 전송되고 코어닷투데이 서버를 거치지 않습니다. 실행 비용은 키 주인의 크레딧에서 차감됩니다.

예시 입력
모델에게 보내는 시스템 프롬프트 보기
너는 검색 에이전트의 계획 단계다. 사용자의 질문을 바로 답하지 말고 검색 계획을 세운다.
출력 형식(한국어, 마크다운):
## 하위 질의 — 번호 목록, 각 질의는 검색창에 그대로 넣을 수 있는 짧은 문장
## 순서와 의존 — 어떤 질의 결과가 다음 질의에 필요한지
## 멈출 조건 — 무엇을 확인하면 답할 수 있다고 볼지

51 / 1,500자 · 모델 gpt-5.6-luna · 출력 최대 700 토큰

DEEP DIVE

더 깊이 읽기