Semble - grep보다 토큰을 98% 적게 쓰는 에이전트용 코드 검색
1 week ago
8
- Semble은 에이전트가 자연어·코드 쿼리로 필요한 코드 조각만 즉시 찾도록 만든 코드 검색 라이브러리임
- grep+read 대비 약 98% 적은 토큰을 사용하며, 전체 파일을 읽는 대신 관련 청크만 반환함
- 평균 저장소를 약 250ms에 인덱싱하고 쿼리는 약 1.5ms에 응답하며, CPU에서 API 키·GPU·외부 서비스 없이 동작함
- 벤치마크는 19개 언어의 63개 저장소에서 약 1,250개 쿼리로 수행됐고, Semble은 CodeRankEmbed Hybrid 품질의 99%를 달성하면서 인덱싱은 218배 빠른 것으로 제시됨
- 토큰 효율 벤치마크에서 Semble은 평균 98% 적은 토큰을 사용하고 2k 토큰만으로 94% 재현율에 도달했으며, grep+read는 100k 컨텍스트 창으로 85% 재현율에 도달함
- MCP 서버로 Claude Code, Cursor, Codex, OpenCode 및 MCP 호환 에이전트에서 사용할 수 있고, 저장소는 필요 시 클론·인덱싱되며 세션 동안 인덱스가 캐시됨
- Bash 기반 사용도 지원해 AGENTS.md나 CLAUDE.md에 semble search와 semble find-related 워크플로를 넣을 수 있으며, Claude Code와 Codex CLI의 서브에이전트에는 이 방식이 필요함
- CLI는 로컬 경로와 https:// Git URL을 모두 받을 수 있고, path를 생략하면 현재 디렉터리를 기본값으로 사용함
- Python 라이브러리로도 사용할 수 있어 SembleIndex.from_path, SembleIndex.from_git, search, find_related로 커스텀 도구에 검색을 통합 가능함
- 내부적으로 tree-sitter로 파일을 코드 인식 청크로 나누고, Model2Vec의 potion-code-16M 임베딩과 BM25를 결합한 뒤 Reciprocal Rank Fusion으로 점수를 합침
- 랭킹은 심볼형 쿼리의 어휘 가중치, 정의 청크 부스트, 식별자 어간 매칭, 같은 파일 내 관련성, 테스트·legacy·예제·.d.ts에 대한 하향 조정을 사용함
- 정적 임베딩 모델을 사용해 쿼리 시 transformer forward pass가 없기 때문에 CPU에서 밀리초 단위 검색이 가능함
- semble savings는 검색마다 반환 청크가 속한 고유 파일의 전체 문자 수와 반환 스니펫 문자 수를 비교해 절약 토큰을 추정하고, 통계는 ~/.semble/savings.jsonl에 저장함
- 패키지는 PyPI의 semble로 설치할 수 있고, MCP 사용 시 uvx --from "semble[mcp]" semble 형태를 사용함
- 라이선스는 MIT임
-
Homepage
-
개발자
- Semble - grep보다 토큰을 98% 적게 쓰는 에이전트용 코드 검색