khoj
무엇인가
Khoj는 자기 문서와 웹을 근거로 답하는 개인용 AI 애플리케이션이다. 범용 챗봇과 노트 앱 검색 사이의 자리를 대신한다. 질의는 색인된 개인 자료와 인터넷 결과를 함께 조회한 뒤 LLM 답변으로 합쳐진다. 온디바이스 개인용부터 클라우드 규모 엔터프라이즈까지 같은 코드베이스로 확장하는 것을 목표로 한다.
어떻게 동작하나
구성은 Python 서버와 여러 클라이언트다. 서버가 PDF·Markdown·org-mode·Word·Notion 문서와 이미지를 수집해 색인하고, 의미 기반 검색으로 질의에 맞는 조각을 찾는다. 대화 모델은 llama3·qwen·gemma·mistral 같은 로컬 모델이나 gpt·claude·gemini·deepseek 같은 온라인 API 중에서 고른다. 클라이언트는 브라우저, Obsidian, Emacs, 데스크톱, 휴대폰, WhatsApp으로 붙는다. 에이전트는 지식·페르소나·채팅 모델·도구를 조합해 정의하고, 예약 실행으로 뉴스레터와 알림을 메일함으로 보낸다.
무엇과 다른가
클라우드 전용 어시스턴트와 달리 모델 선택이 로컬과 온라인을 가로지르고, 서버를 직접 띄워 데이터를 자기 환경에 둘 수 있다. 노트 앱 내장 검색과 달리 이기종 포맷을 한 색인으로 묶고 자연어 질의에 답한다. 검색 증강 파이프라인을 직접 조립하는 방식과 달리 Obsidian·Emacs·WhatsApp 같은 기존 인터페이스가 같은 서버에 그대로 연결된다. 배포 형태는 클라우드, 온프레미스, 하이브리드를 지원한다.
어떻게 쓰나
설치는 두 갈래다. app.khoj.dev의 클라우드 앱은 설정 없이 바로 쓰고, 셀프호스팅은 공식 문서의 절차를 따른다. 서버를 띄운 뒤 브라우저·Obsidian·Emacs·데스크톱·휴대폰·WhatsApp 클라이언트를 연결하고 색인할 문서 소스를 지정한다. 에이전트는 지식·페르소나·채팅 모델·도구를 지정해 만들고, 리서치 자동화는 일정에 걸어 결과를 메일로 받는다.
전제와 한계
답변 품질과 응답 속도는 연결한 모델에 좌우된다. 로컬 모델을 쓰면 하드웨어 자원을 직접 감당해야 하고, 온라인 API를 쓰면 해당 제공자의 키와 요금이 필요하다. 문서 색인은 지원 포맷(PDF·Markdown·org-mode·Word·Notion·이미지) 범위에 한정된다. 이미지 생성과 음성 출력은 그에 맞는 모델 연결을 전제로 한다.
관련 논문 5
유사 도구
- onyxLLM 애플리케이션 계층으로, RAG·웹 검색·코드 실행·에이전트를 갖춘 셀프호스팅 AI 채팅 플랫폼이다. 50개 이상 커넥터로 사내 데이터를 색인한다.
- llama_index사설 데이터를 수집·구조화해 LLM이 검색·질의할 수 있게 하는 Python 프레임워크다. 코어와 300여 개 통합 패키지를 조합해 RAG·에이전트 앱을 만든다.
- LightRAG문서를 지식 그래프와 벡터 인덱스로 함께 색인해 질의에 답하는 검색 증강 생성 프레임워크다. Python 서버와 WebUI를 함께 제공한다.
- graphrag비정형 텍스트에서 LLM으로 개체와 관계를 추출해 지식 그래프 인덱스를 만들고, 그 그래프를 컨텍스트로 질의응답에 쓰는 Python CLI 파이프라인이다.
- txtai벡터 인덱스·그래프·관계형 DB를 합친 임베딩 데이터베이스 위에서 시맨틱 검색과 LLM 워크플로를 돌리는 Python AI 프레임워크다.
- nanobot파이썬으로 작성된 초경량 자체 호스팅 개인 AI 에이전트 런타임이다. WebUI·터미널·메신저에서 돌며 도구, 장기 기억, MCP, 예약 자동화를 하나의 코어에 묶는다.