deep-searcher
무엇인가
DeepSearcher는 비공개 문서를 대상으로 검색·평가·추론을 반복해 답변과 보고서를 생성하는 Python 라이브러리이자 CLI다. 검색 증강 생성(RAG) 파이프라인 계층에 속하며, 웹 전체를 훑는 범용 리서치 에이전트와 달리 조직 내부 코퍼스를 1차 근거로 삼는다.
어떻게 동작하나
처리 흐름은 인덱싱과 질의 두 단계로 나뉜다. 인덱싱에서 문서 로더가 로컬 파일을 읽고, 임베딩 모델이 이를 벡터로 바꿔 Milvus나 Zilliz Cloud 컬렉션에 적재한다. 질의 시점에는 LLM이 질문을 하위 질의로 쪼개고, 벡터 DB에서 관련 청크를 검색한 뒤, 그 결과를 평가해 질의를 다시 다듬는 루프를 돈다. 마지막에 답변과 보고서를 합성한다. 컬렉션을 파티션으로 나누면 검색 범위를 좁힐 수 있다.
무엇과 다른가
단발성 retrieve-then-answer RAG와 달리 검색과 평가를 여러 번 되돌아 반복한다. 호스팅형 딥리서치 서비스와 달리 문서와 벡터가 자체 Milvus 인스턴스에 남고, LLM 제공자만 바꿔 끼울 수 있다. 필요할 때는 온라인 콘텐츠를 함께 조회한다.
어떻게 쓰나
설치는 pip 한 줄로 끝나고, 환경변수에 쓸 LLM의 API 키를 넣은 다음 config.set_provider_config("llm", "OpenAI", {"model": "o1-mini"})처럼 제공자와 모델을 지정한다. LLM 이름 자리에는 DeepSeek, OpenAI, XAI, SiliconFlow, Aliyun, PPIO, TogetherAI, Gemini, Ollama, Novita, Jiekou.AI가 들어간다. 개발 모드 설치에는 uv를 쓴다.
전제와 한계
Python 3.10을 권장한다. 고른 LLM 제공자의 API 키가 필요하고, TogetherAI와 Gemini는 각각 together, google-genai 패키지를 따로 깔아야 한다. 문서 로더는 로컬 파일 로딩을 다루며 웹 크롤링은 개발 중이다.
관련 논문 5
유사 도구
- local-deep-research여러 LLM과 검색 엔진을 묶어 인용이 붙은 심층 리서치 보고서를 만드는 로컬 우선 리서치 에이전트다. 사용자별 SQLCipher DB로 데이터를 암호화한다.
- llama_index사설 데이터를 수집·구조화해 LLM이 검색·질의할 수 있게 하는 Python 프레임워크다. 코어와 300여 개 통합 패키지를 조합해 RAG·에이전트 앱을 만든다.
- LightRAG문서를 지식 그래프와 벡터 인덱스로 함께 색인해 질의에 답하는 검색 증강 생성 프레임워크다. Python 서버와 WebUI를 함께 제공한다.
- PageIndex벡터 DB와 청킹 없이 문서를 계층적 트리 인덱스로 만들고, LLM이 그 트리를 추론으로 탐색해 근거 위치를 찾는 RAG 엔진이다.
- synthadocPDF·스프레드시트·영상 등 원본 문서를 LLM으로 컴파일해 출처 인용이 붙은 로컬 Markdown 위키로 만드는 Python CLI다.
- chroma임베딩과 메타데이터를 저장하고 벡터·전문·하이브리드 검색을 제공하는 오픈소스 AI 검색 인프라다. Rust 코어와 Python·JS 클라이언트로 동작한다.