
RAG(Retrieval-Augmented Generation) 시스템을 구축해본 적이 있다면, 그 복잡함을 잘 알 것이다. 벡터 데이터베이스 설정, 임베딩 파이프라인 구축, ETL 프로세스 관리, 그리고 끝없는 인덱싱. 문서가 업데이트될 때마다 전체를 다시 인덱싱해야 하는 악몽.
Sirchmunk는 이 모든 것을 뒤집는다. Alibaba의 ModelScope 팀이 만든 이 시스템은 “인덱스 없는 검색”이라는 혁명적인 접근으로, 벡터 DB 없이도 실시간으로 자가 진화하는 지식 베이스를 제공한다.
전통적 RAG의 문제점
| 차원 | 전통적 RAG | Sirchmunk |
|---|---|---|
| 설정 비용 | 높은 오버헤드 (VectorDB, GraphDB…) | ✅ Zero Infrastructure |
| 데이터 신선도 | Stale (배치 리인덱싱) | ✅ Instant & Dynamic |
| 확장성 | 선형 비용 증가 | ✅ 극도로 낮은 RAM/CPU |
| 정확도 | 근사 벡터 매치 | ✅ 결정론적 & 컨텍스트 |
| 워크플로우 | 복잡한 ETL 파이프라인 | ✅ Drop-and-Search |
전통적 RAG는 벡터 유사도 검색에 의존한다. 문서를 청킹하고, 임베딩하고, 벡터 DB에 저장한다. 쿼리가 들어오면 가장 가까운 벡터를 찾는다. 빠르지만 근사적이고, 데이터가 stale 해지기 쉽다.
Sirchmunk는 다르다. 파일을 그냥 놓고 검색하면 끝이다.
핵심 기술: 인덱스 없는 검색 (Indexless Retrieval)
작동 원리
전통적 RAG:
문서 → 청킹 → 임베딩 → 벡터 DB 저장 → 쿼리 → 벡터 검색 → 결과
Sirchmunk:
문서 → [그냥 놓기] → 쿼리 → 직접 검색 → 결과
벡터 DB가 없다. 사전 처리 파이프라인이 없다. 파일을 디렉토리에 놓고, 쿼리를 던지면 LLM이 직접 파일을 읽고 답을 찾는다.
Monte Carlo Evidence Sampling
Sirchmunk의 검색 엔진은 3단계 탐색-활용 전략을 사용한다:
Phase 1: Cast the Net (Exploration)
- 퍼지 앵커 매칭으로 후보 파일 식별
- 층화 랜덤 샘플링으로 대표 스니펫 추출
Phase 2: Focus (Exploitation)
- 가우시안 중요도 샘플링으로 관련성 높은 영역 집중
- 컨텍스트 윈도우 최적화
Phase 3: Synthesize
- Top-K 스니펫을 LLM으로 종합
- 결정론적이고 추적 가능한 답변 생성
자가 진화 지식 베이스 (Self-Evolving Knowledge Base)
KnowledgeCluster 구조
Sirchmunk의 핵심 혁신은 검색 결과를 구조화된 지식 단위로 저장하는 것이다:
KnowledgeCluster:
├── Evidences # Monte Carlo 샘플링으로 추출된 스니펫
├── Content # LLM 종합 마크다운
├── Patterns # 3-5개 설계 원칙
├── Confidence # 신뢰도 점수 [0, 1]
├── Queries # 기여한 쿼리 이력 (FIFO, 최대 5)
├── Hotness # 활동 점수
└── Embedding # 384차원 벡터 (선택적)
지식 재사용 메커니즘
새로운 쿼리가 들어오면 Sirchmunk는 먼저 기존 KnowledgeCluster를 확인한다. cosine similarity ≥ 0.85면 기존 지식을 재사용한다. 매번 같은 질문에 대해 파일을 다시 읽을 필요가 없다.
이것이 “자가 진화”의 핵심이다:
- 첫 번째 쿼리 → 파일 검색 → KnowledgeCluster 생성
- 두 번째 유사 쿼리 → KnowledgeCluster 재사용 (빠름)
- 새로운 각도의 쿼리 → 기존 클러스터 확장
- 시간이 지날수록 지식 베이스가 풍부해짐
검색 모드
FAST (기본)
- 탐욕 검색 알고리즘
- 2회 LLM 호출
- 소요 시간: 2-5초
- 일반적인 Q&A에 적합
DEEP
- Monte Carlo 샘플링
- 종합적 분석
- 소요 시간: 10-30초
- 복잡한 연구 질문에 적합
FILENAME_ONLY
- 빠른 파일 검색
- LLM 불필요
- 밀리초 단위 응답
- 파일 탐색에 적합
Python API
from sirchmunk import AgenticSearch
from sirchmunk.llm import OpenAIChat
llm = OpenAIChat(
api_key="your-api-key",
base_url="https://api.openai.com/v1",
model="gpt-4o"
)
async def main():
searcher = AgenticSearch(llm=llm)
# FAST 모드 - 빠른 검색
result = await searcher.search(
query="트랜스포머의 어텐션 메커니즘은 어떻게 작동하나요?",
paths=["/path/to/documents"],
)
# DEEP 모드 - 심층 분석
result_deep = await searcher.search(
query="트랜스포머의 어텐션 메커니즘은 어떻게 작동하나요?",
paths=["/path/to/documents"],
mode="DEEP",
)
print(result.content)
print(f"신뢰도: {result.confidence}")
print(f"패턴: {result.patterns}")
CLI 명령어
# 초기화
sirchmunk init
# API 서버 시작
sirchmunk serve
# 검색
sirchmunk search "쿼리 내용"
# Web UI 빌드
sirchmunk web init
# API + WebUI 함께 실행
sirchmunk web serve
# MCP 서버 (Claude Desktop, Cursor 통합)
sirchmunk mcp serve
MCP 지원 — Claude Desktop & Cursor 통합
Sirchmunk는 MCP(Model Context Protocol)를 완벽 지원한다:
- stdio 전송: 로컬 프로세스 통신
- HTTP 전송: 원격 서버 통신
Claude Desktop 설정
{
"mcpServers": {
"sirchmunk": {
"command": "sirchmunk",
"args": ["mcp", "serve"]
}
}
}
Cursor IDE 설정
Cursor의 MCP 설정에 동일하게 추가하면, 에디터 내에서 바로 Sirchmunk 검색을 사용할 수 있다.
Web UI

Sirchmunk는 실시간 스트리밍 로그가 포함된 웹 인터페이스를 제공한다:
- 채팅 인터페이스: 자연어로 질문
- 지식 분석: KnowledgeCluster 시각화
- 시스템 모니터링: 검색 성능 및 리소스 사용량
API 엔드포인트
| 엔드포인트 | 설명 |
|---|---|
POST /api/v1/search | 검색 쿼리 실행 |
GET /api/v1/search/status | 서버 상태 확인 |
지원 LLM
Sirchmunk는 다양한 LLM을 지원한다:
클라우드:
- OpenAI, Azure OpenAI
- Google Gemini
- Anthropic Claude
- DeepSeek, Moonshot, Mistral, Groq
- Zhipu (GLM), Baichuan, Yi
- SiliconFlow, MiniMax
로컬:
- Ollama
- llama.cpp
- vLLM
- SGLang
설치
pip
pip install sirchmunk
uv
uv pip install sirchmunk
소스에서
git clone https://github.com/modelscope/sirchmunk.git
cd sirchmunk && pip install -e .
Docker
docker pull registry.cn-beijing.aliyuncs.com/modelscope/sirchmunk:latest
# 또는 미국 서부 리전
docker pull registry.us-west-1.aliyuncs.com/modelscope/sirchmunk:latest
요구사항
- Python 3.10+
- LLM API Key (OpenAI 호환)
- Node.js 18+ (Web UI용, 선택)
언제 Sirchmunk를 쓸까?
✅ 적합한 경우
- 데이터가 자주 변경됨 — 리인덱싱 없이 실시간 반영
- 빠른 프로토타이핑 — 인프라 설정 없이 바로 시작
- 작은~중간 규모 데이터셋 — 수천 개 문서까지 효율적
- 정확한 출처 추적 — 어떤 파일의 어떤 부분에서 답을 찾았는지 명확
⚠️ 고려가 필요한 경우
- 대규모 데이터셋 (수백만 문서) — 벡터 DB가 더 효율적일 수 있음
- 밀리초 단위 응답 필수 — FAST 모드도 2-5초 소요
- 오프라인 환경 — LLM 호출 필요
ModelScope — Alibaba의 AI 생태계
Sirchmunk는 Alibaba의 ModelScope 팀에서 개발했다. ModelScope는 “AI 모델의 GitHub”를 목표로 하는 오픈 소스 AI 커뮤니티로, Hugging Face의 중국 counterpart로 볼 수 있다.
430+ 스타는 이 프로젝트가 아직 초기 단계임을 보여주지만, 기술적 혁신성은 분명하다. “인덱스 없는 RAG”라는 개념은 RAG 시스템의 복잡성에 지친 개발자들에게 새로운 대안을 제시한다.
마치며: RAG의 복잡성에서 해방
Sirchmunk는 “Raw data to self-evolving intelligence, real-time”라는 슬로건을 내건다. 데이터를 그대로 두고, 시스템이 스스로 지식을 진화시킨다.
전통적 RAG의 복잡함—벡터 DB 설정, ETL 파이프라인, 배치 리인덱싱—에서 벗어나고 싶다면, Sirchmunk를 시도해보라. 파일을 놓고, 쿼리를 던지면, 끝이다.
물론 만능 해결책은 아니다. 대규모 데이터셋에는 여전히 벡터 DB가 필요할 수 있다. 하지만 중간 규모의 지식 베이스, 특히 데이터가 자주 변경되는 환경에서는 Sirchmunk의 접근이 훨씬 실용적일 수 있다.
“Drop-and-Search” — 이 간결한 문장이 Sirchmunk의 철학을 완벽히 요약한다.
🔗 관련 정보
- 공식 사이트: https://modelscope.github.io/sirchmunk-web/
- GitHub: https://github.com/modelscope/sirchmunk
- 개발자: ModelScope (Alibaba)
- 언어: Python
- 스타: 430+