본문으로 건너뛰기

© 2026 Molayo

GitHub요약2026. 06. 17. 11:03

Ayanami0730/arag

요약

A-RAG는 기존 Graph RAG와 Workflow RAG의 한계를 극복하기 위해 설계된 에이전트적 RAG 프레임워크입니다. 모델이 자율적으로 검색 전략을 선택하고 반복적으로 도구를 사용하여 정보를 추출할 수 있도록 지원합니다.

핵심 포인트

  • 자율적 전략, 반복적 실행, 교차 도구 사용의 3대 원칙 준수
  • 키워드, 문장, 청크 수준의 계층적 검색 인터페이스 제공
  • 모델이 검색 결정에 직접 참여하여 에이전트적 자율성 확보
  • 테스트 시간 스케일링을 통한 성능 향상 가능성 제시

저희 프로젝트가 도움이 되었다면, GitHub에서 별(star) ⭐을 눌러주세요!

# 1. 설치
git clone https://github.com/Ayanami0730/arag.git && cd arag
uv sync --extra full # 또는: pip install -e "[full]"
...

참고: 데이터셋은 HuggingFace 🤗에 호스팅되어 있으며, Zly0523/linear-rag 및 GraphRAG-Bench에서 통일된 형식으로 재구성되었습니다.

uv가 없으신가요?
설치 방법: curl -LsSf https://astral.sh/uv/install.sh | sh

[2026년 2월] 📄 arXiv에 논문 공개
[2026년 2월] 🚀 초기 코드 및 평가 스위트(evaluation suite) 공개

최첨단 언어 모델(Frontier language models)은 강력한 추론 및 장기적 도구 사용(long-horizon tool-use) 능력을 입증해 왔습니다. 하지만 기존의 RAG 시스템은 이러한 능력을 활용하지 못하고 있습니다. 기존 시스템은 여전히 다음 두 가지 패러다임에 의존합니다:

Graph RAG: 단일 샷(single shot)으로 구절(passages)을 검색하고 이를 모델의 입력값으로 연결하는 알고리즘을 설계함
Workflow RAG: 워크플로(workflow)를 미리 정의하고 모델이 이를 단계별로 실행하도록 프롬프팅함

두 패러다임 모두 모델이 검색 결정에 참여하는 것을 허용하지 않으며, 이로 인해 모델의 성능 향상에 따른 효율적인 확장이 불가능합니다.

우리는 진정한 에이전트적 자율성(agentic autonomy)을 정의하는 세 가지 핵심 원칙을 식별했습니다:

자율적 전략 (Autonomous Strategy): 에이전트가 작업 특성에 따라 검색 전략을 동적으로 선택함
반복적 실행 (Iterative Execution): 에이전트가 중간 결과에 따라 적응하며 다회차(multi-round) 실행을 지원함
교차 도구 사용 (Interleaved Tool Use): 에이전트가 ReAct와 유사한 행동(action)→관찰(observation)→추론(reasoning) 루프를 따름

Three Paradigms Comparison

세 가지 RAG 패러다임의 비교. 오직 A-RAG만이 세 가지 원칙을 모두 충족하며, 이를 통해 진정한 에이전트적 프레임워크가 됩니다.

A-RAG는 모델에 **계층적 검색 인터페이스 (hierarchical retrieval interfaces)**를 직접 노출하는 에이전트적 RAG (Agentic RAG) 프레임워크입니다. A-RAG는 keyword_search, semantic_search, chunk_read라는 세 가지 검색 도구를 제공하여, 에이전트가 다양한 입도(granularities)에 걸쳐 정보를 적응적으로 검색하고 추출할 수 있도록 합니다.

A-RAG Framework

A-RAG 프레임워크의 개요. 에이전트는 계층적 검색 도구(hierarchical retrieval tools)를 반복적으로 사용하여 코퍼스(corpus)로부터 정보를 수집하며, 최종 답변을 제공할 시점을 자율적으로 결정합니다.

  • 🔍
    계층적 검색 (Hierarchical Retrieval): 키워드 수준, 문장 수준, 그리고 청크(chunk) 수준의 정보 접근 - 🤖
    진정한 에이전트 자율성 (True Agentic Autonomy): 자율적 전략, 반복적 실행, 그리고 도구 사용의 교차 수행 (interleaved tool use) - 📈
    테스트 시간 스케일링 (Test-Time Scaling): 컴퓨팅 자원이 증가함에 따라 성능이 향상됨 - ⚡
    컨텍스트 효율성 (Context Efficient): 유사하거나 더 적은 검색 토큰(retrieved tokens)으로 우수한 정확도 달성

벤치마크 데이터셋에서 베이스라인(baselines)과 A-RAG의 LLM 평가 정확도 (LLM-Evaluation Accuracy, LLM-Acc)포함-일치 정확도 (Contain-Match Accuracy, Cont-Acc) 측면의 결과 (%). 가장 좋은 결과는 굵게, 두 번째로 좋은 결과는 밑줄로 표시되었습니다.

방법 (Method)MuSiQueHotpotQA2WikiMed.Novel
ContLLMContLLMContLLMLLM
Vanilla Baselines
Direct Answer18.313.945.440.730.349.768.645.3
Naive RAG38.636.174.572.942.659.075.368.5
Graph-RAG & Workflow RAG
GraphRAG26.420.833.233.318.447.251.328.8
HippoRAG240.638.480.769.764.768.572.070.1
LinearRAG34.826.372.060.562.962.353.145.4
FaithfulRAG28.822.660.552.538.838.142.533.3
...A-RAG (Ours)
A-RAG (Naive)43.838.576.670.752.362.479.070.0
A-RAG (Full)46.139.677.174.060.263.779.472.7
MethodMuSiQueHotpotQA2WikiMed.Novel
LLMContLLMContLLMContLLMLLM
Vanilla Baselines
Direct Answer35.826.563.653.551.354.090.545.1
Naive RAG52.848.781.279.550.266.586.170.6
Graph-RAG & Workflow RAG
GraphRAG48.339.182.574.966.570.787.377.1
HippoRAG261.752.584.875.082.079.778.254.3
...A-RAG (Ours)
A-RAG (Naive)66.259.790.885.370.676.992.780.4
A-RAG (Full)74.165.394.588.089.788.993.185.3
arag/
├── src/arag/ # 메인 패키지 (Main package)
│ ├── core/ # 핵심 모듈 (Core modules)
... 

A-RAG는 서로 다른 세분화 수준(granularity)에서 작동하는 세 가지 검색 도구를 제공합니다:

Method: 정확한 어휘 일치(Exact lexical matching) (대소문자 구분 안 함)최적의 용도: 알려진 개체명, 이름, 기술 용어점수 (Score): Score(chunk, keywords) = Σ count(k, chunk) × |k|

사전 인덱싱 불필요 (No pre-indexing required)

Method: 문장 수준 임베딩을 사용한 밀집 검색(Dense retrieval)최적의 용도: 개념적 질의, 정확한 단어 표현이 알려지지 않은 경우점수 (Score): 질의와 문장 임베딩 간의 코사인 유사도 (Cosine similarity between query and sentence embeddings)사전 구축된 인덱스 필요 (Requires pre-built index)

Method: 지정된 청크 전체 내용 검색전략 (Strategy): 검색을 통해 식별된 유망한 청크를 읽고, 문맥 확보를 위해 인접한 청크(±1)를 읽음문맥 추적기 (Context Tracker): 이미 접근한 청크의 중복 읽기를 방지합니다.

DatasetDescriptionSource
MuSiQue다단계 QA (Multi-hop QA) (2~4 단계)HuggingFace
...
준비할 자체 코퍼스는 JSON 파일 형식으로 작성하세요:

`[

export ARAG_API_KEY="your-api-key"
export ARAG_BASE_URL="https://api.openai.com/v1"
export ARAG_MODEL="gpt-5-mini"
...
from arag import LLMClient, BaseAgent, ToolRegistry
from arag.tools.keyword_search import KeywordSearchTool
from arag.tools.semantic_search import SemanticSearchTool
...

Baseline Scripts (베이스라인 스크립트): 모든 베이스라인 방법론(GraphRAG, HippoRAG2, LinearRAG 등)과 호환되는 스크립트
Ablation Interfaces (어블레이션 인터페이스): 어블레이션 연구(Ablation studies)를 위한 완전한 인터페이스 (키워드 검색 제외, 시맨틱 검색 제외, 청크 읽기 제외 등)
Multi-Provider Support (멀티 프로바이더 지원): Anthropic Claude 및 Google Gemini에 대한 네이티브 API 지원 (현재는 OpenAI 호환 API만 지원)
Additional Benchmarks (추가 벤치마크): HotpotQA, 2WikiMQA, 그리고 GraphRAG-Bench 평가를 위한 스크립트
Visualization Tools (시각화 도구): 궤적 (Trajectory) 시각화 및 분석 도구

기여와 피드백은 언제나 환영합니다!

연구에 A-RAG를 사용하신다면, 저희 논문을 인용해 주세요:

@misc{du2026aragscalingagenticretrievalaugmented,
title={A-RAG: Scaling Agentic Retrieval-Augmented Generation via Hierarchical Retrieval Interfaces},
author={Mingxuan Du and Benfeng Xu and Chiwei Zhu and Shaohan Wang and Pengyu Wang and Xiaorui Wang and Zhendong Mao},
...

MIT License

AI 자동 생성 콘텐츠

본 콘텐츠는 GitHub AI Tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0