local-deep-research
무엇인가
Local Deep Research(LDR)는 질문 하나를 입력받아 검색·수집·종합을 자동으로 수행하는 딥 리서치 에이전트 애플리케이션이다. 클라우드 리서치 서비스가 원격 서버에서 처리하는 작업을 사용자 자신의 장비에서 돌리는 자리에 놓인다. 결과물은 출처 표기가 붙은 보고서이며, 웹 UI로 접속해 쓰는 형태가 기본이다.
어떻게 동작하나
핵심 실행 경로는 LangGraph 기반 에이전트 전략이다. LLM이 무엇을 검색할지, 어떤 전문 엔진(arXiv, PubMed, Semantic Scholar 등)을 쓸지, 언제 종합할지 스스로 정하고 검색 결과에 따라 엔진을 바꿔가며 출처를 모은다. 빠른 사실 확인용 파이프라인 모드도 별도로 있다. 수집한 논문과 웹 문서는 사용자별 암호화 라이브러리에 내려받아 텍스트를 추출·색인하고, 이후 질의에서는 자기 문서와 실시간 웹을 함께 검색 대상으로 삼는다.
무엇과 다른가
저장은 사용자마다 분리된 SQLCipher 데이터베이스에 이뤄지고 AES-256으로 암호화된다. 키는 비밀번호에서 유도되며 비밀번호 자체는 저장되지 않는다. 로그인은 해당 DB의 복호화 시도로 처리되므로 DB 파일만 확보해서는 열 수 없다. LLM API 키도 서버 공용 저장소가 아니라 같은 개인 DB 안에 암호화되어 들어간다.
어떻게 쓰나
설치 경로는 Docker 단일 실행, Docker Compose, pip 세 가지다. Compose는 CPU 전용 구성과 NVIDIA GPU 구성으로 나뉘고, 기동 후 약 30초 뒤 http://localhost:5000 에 접속한다. 에이전트 전략을 쓰려면 설정에서 langgraph-agent를 선택한다. pip 경로에서는 Ollama 같은 OpenAI 호환 LLM 엔드포인트와 SearXNG를 별도로 띄워야 한다.
전제와 한계
x86-64에서는 AVX 명령어를 지원하는 CPU(2011년 이후 Intel Sandy Bridge / AMD Bulldozer)가 필요하다. pandas·scikit-learn 휠이 구형 CPU에서 Illegal instruction으로 종료되기 때문이며, ARM64는 예외 없이 동작한다. Windows에서 PDF 내보내기에는 Pango가 필요하고, Docker의 --network host는 네이티브 Linux에서만 동작한다. 암호화 초기화가 실패하면 LDR_BOOTSTRAP_ALLOW_UNENCRYPTED=true로 일반 SQLite를 쓸 수 있다. 세션 중 자격 증명은 프로세스 메모리에 남는다.
관련 논문 5
유사 도구
- deep-searcher사내 문서를 벡터 DB에 적재하고 LLM이 검색·평가·추론을 반복해 근거 있는 답변과 보고서를 만드는 Python 딥리서치 도구다.
- synthadocPDF·스프레드시트·영상 등 원본 문서를 LLM으로 컴파일해 출처 인용이 붙은 로컬 Markdown 위키로 만드는 Python CLI다.
- llama_index사설 데이터를 수집·구조화해 LLM이 검색·질의할 수 있게 하는 Python 프레임워크다. 코어와 300여 개 통합 패키지를 조합해 RAG·에이전트 앱을 만든다.
- onyxLLM 애플리케이션 계층으로, RAG·웹 검색·코드 실행·에이전트를 갖춘 셀프호스팅 AI 채팅 플랫폼이다. 50개 이상 커넥터로 사내 데이터를 색인한다.
- MaxKBRAG 파이프라인과 워크플로 엔진, MCP 도구 호출을 묶어 기업용 에이전트를 만드는 Python/Django 오픈소스 플랫폼이다.
- knowhere비정형 문서를 계층·인용이 붙은 청크 메모리로 파싱하고, 에이전트가 MCP 도구로 탐색·인용하도록 절차를 주입하는 Claude Code용 스킬 팩이다.