AutoRAG
무엇인가
AutoRAG 2.0은 문서 컬렉션을 대상으로 하는 검색 특화 에이전트다. 이 저장소가 배포하는 것은 Python 기반 RAG AutoML 도구였던 원래 AutoRAG의 재설계판이며, 원래 도구는 legacy/ 디렉터리에 남아 유지보수 모드로 관리된다. 하나의 모델이 검색·판독·판단·큐레이션 루프 전체를 소유하고, 다른 모델 역할을 조정하는 코디네이터로 동작하지 않는다.
어떻게 동작하나
동작은 Pi 에이전트 루프를 사서 역할로 구성한 것 위에 세워진다. 검색 계층은 RetrievalMethodRegistry에 등록된 플러그형 검색 방식으로 이뤄지고, BM25·벡터·하이브리드가 MinSync의 하나의 CDC 청크 수명주기를 공유한다. MinSync는 파싱된 마크다운 미러를 .autorag 아래에 색인하고, 로컬 임베딩은 Ollama를 통한 EmbeddingGemma가 담당한다. 에이전트는 내장 bash 도구로 설정된 소스 디렉터리를 직접 열어 근거를 확인하고, ResultMerger가 점수를 정규화하고 중복을 제거한 뒤 하나의 결과 집합으로 큐레이션한다. 응답은 구조화된 SearchDocumentsResponse로 반환된다.
무엇과 다른가
일반 검색 도구는 파일 경로와 일치 줄 목록을 돌려주고 판단은 사용자에게 남긴다. AutoRAG는 데이터를 중앙 색인으로 이관하지 않고 katok, discrawl, qmd, msgvault, rclone 같은 CLI 소유 저장소를 제자리에서 연합한다. 결과에는 kakao: 같은 소스 고유 식별자가 붙고 범위 검사 접근이 적용되며, 제3자 서버가 코퍼스 사본을 보관하지 않는다. 문서 종류마다 유효한 검색 전략이 다르므로 어휘 검색·의미 검색·혼합 검색을 같은 인터페이스로 노출한다.
어떻게 쓰나
설정은 autorag init의 --embedder-* 플래그로 원격 임베딩 엔드포인트를 지정하는 방식으로 시작한다. MinSync는 첫 사용 시 검증된 릴리스를 ~/.autorag/bin에 자동 설치하며, 직접 바이너리를 관리할 때만 autoInstall을 false로 둔다. 로컬 색인 자체를 끄려면 minSync를 false로, 어휘 검색만 끄려면 bm25를 false로 설정한다. 로컬 임베더의 컨텍스트 창이 작으면 minSync.maxChunkSize 또는 --minsync-max-chunk-size로 청크 크기를 낮춘다. 자동 설치 경로와 로컬 EmbeddingGemma 점검 절차는 docs/minsync-setup.md에 정리돼 있다.
전제와 한계
모델과 제공자는 사용자의 인증된 런타임에서 오며 AutoRAG는 자체 제공자 기본값을 두지 않는다. 기본 PDF 파서는 여러 쪽 PDF에 품질 검사를 걸고, 3쪽 이상에서 800자 미만이거나 쪽당 40자 미만이면 OpenDataLoader의 docling-fast 하이브리드 백엔드를 hybridMode: auto, 30초 타임아웃으로 재시도한다. 단일 쪽 PDF와 이미지에는 하이브리드를 먼저 쓰지 않고, 하이브리드 사이드카가 없거나 실패하면 로컬 마크다운을 유지한 채 pdf-extract-thin과 pdf-hybrid-unavailable 진단을 낸다. 원래 Python AutoRAG는 버그 수정·의존성 갱신·PyPI 릴리스만 이어가는 유지보수 모드이고 새 기능 개발은 2.0에 집중된다.
관련 논문 5
유사 도구
- orama브라우저·서버·엣지에서 도는 TypeScript 검색 엔진 라이브러리다. 전문 검색·벡터 검색·하이브리드 검색을 2KB 미만 코어로 처리한다.
- kernel-memory여러 형식의 문서를 청크로 나눠 임베딩하고 벡터 인덱스에 저장해, 출처 인용과 함께 자연어로 답하는 RAG 파이프라인 서비스다.
- databerry노코드로 자체 데이터에 근거해 답하는 LLM 에이전트를 만들어 링크·위젯·API로 배포하는 플랫폼이다. 문서를 임베딩해 벡터 검색으로 근거를 찾는다.
- txtai벡터 인덱스·그래프·관계형 DB를 합친 임베딩 데이터베이스 위에서 시맨틱 검색과 LLM 워크플로를 돌리는 Python AI 프레임워크다.
- agentmemory코딩 에이전트의 작업을 자동으로 수집·압축해 검색 가능한 장기 기억으로 저장하고, 다음 세션 시작 시 관련 컨텍스트를 주입하는 TypeScript CLI다.
- paradedbPostgres에 커스텀 인덱스를 추가해 전문 검색·벡터 검색·집계를 한 데이터베이스 안에서 처리하는 Rust 확장이다. 별도 검색 시스템을 두지 않는다.