TL;DR
- Wn은 실제 수정 사례 약 110만 건으로 학습한 모델과 저장소별 어댑터를 사용해 버그가 영향을 미칠 가능성이 높은 파일 세 개를 찾는 로컬 도구임.
- 자연어로 저장소에 질문하면 따뜻한 상태에서 약 80~100밀리초 만에 결과를 반환하며,
git이력에서 학습하고 CLI와 MCP를 제공함. - 공식 ContextBench 500개 작업에서 수정 파일이 상위 3개 안에 든 비율은 기본 모델 0.76, 저장소별 어댑터 적용 모델 0.81임.
- 에이전트 비용 절감이나 성공률 향상은 통제 실험에서 측정되지 않았으므로 비용 절감 도구가 아닌 코드 탐색 도구로 사용해야 함.
- 현재 v0.1.0이며 macOS Apple 실리콘과 glibc 2.35 이상을 사용하는 Linux를 지원하고, Windows와 Intel Mac은 아직 지원하지 않음.
where-next
- 저장소에 “X는 어디에 있나?”라고 자연어로 질문하면 열어볼 파일 세 개를 반환함.
- 로컬에서 실행되고
git이력으로 학습하며, 따뜻한 상태의 질의 처리 시간은 약 80~100밀리초임. CLI와 MCP를 제공함. - Kubernetes 복제 저장소에서 실제 버그 보고서 제목을 사용한 데모에서, 각 수정이 변경한 파일이 1위에 오름. 데모 관련 정보는 About the demo에서 확인할 수 있음.
설치
- 다음 명령으로 설치 프로그램을 실행함:
curl -fsSL https://raw.githubusercontent.com/andreylukin/where-next/main/install.sh | sh - Apple 실리콘을 사용하는 macOS와 glibc 2.35 이상을 사용하는 Linux를 지원함. 설치 프로그램이 확인을 요청한 뒤 약 1.2GB 모델을 내려받음.
- 먼저 읽을 설치 안내, 제거, Intel Mac 및 Windows 지원 현황은
docs/install.md에 있음. 전부 제거하려면wn uninstall을 실행함.
빠른 시작
- 저장소 디렉터리에서
wn init을 실행해 저장소를 색인하고git이력에서 학습함. wn setup을 실행해 Claude Code, Codex, Cursor를 연결하면 힌트가 자동으로 전달됨.wn ask "where are gitignore rules matched against paths"처럼 질문해 파일을 찾음.- 선택 사항인
wn bench는 이전 커밋을 재생해 해당 저장소에서의 성능을 확인함. ripgrep복제 저장소에서 같은 질문을 실행한 결과는 다음과 같음.crates/ignore/src/gitignore.rs— 0.50crates/ignore/src/dir.rs— 0.42crates/ignore/src/overrides.rs— 0.42- 점수는 파일 순위를 나타내며 확률은 아님. 보정된 임계값을 넘는 결과가 없으면
wn은 “확신할 만한 힌트 없음”을 반환함. 질의 요령은docs/quickstart.md에 있음. - 에이전트에 연결하려면
wn setup을 실행함. Claude Code, Codex, Cursor는 스킬과 훅을 받아 컨텍스트에 힌트를 추가함. 자세한 내용은docs/skill.md에 있으며, 다른 클라이언트에는wn mcp로 MCP를 제공함.
grep이나 일반 임베딩을 쓰지 않는 이유
grep은 이미 알고 있는 문자열이 필요하고, 일반 임베딩 검색은 텍스트상 비슷한 내용을 찾음.wn모델은 작업 설명 → 실제로 변경된 파일 쌍 약 110만 건으로 미세 조정됨. 저장소별 어댑터는 해당 저장소의 커밋을 바탕으로 수 초 안에 맞춰짐.- 공식 ContextBench 500개 작업 하위 집합에서 실제 수정 파일이 상위 3개에 포함된 비율(hit@3)은 다음과 같음.
BM25¹ — 0.37- 학습하지 않은
EmbeddingGemma-300M— 0.46.wn과 같은 기반 모델임. SweRankEmbed-Small— 0.61wn모델 — 0.76wn모델과 저장소별 어댑터 — 0.81- hit@3은 실제 수정에서 변경된 파일이 상위 3개에 포함되는 비율임.
- ¹
BM25점수는 전체 1,136개 작업을 대상으로 함. 학습에서 제외된 저장소의 994개 작업만 보면 학습하지 않은 모델은 0.46,wn은 0.76, 어댑터 적용 모델은 0.80임. 프로토콜과 추가 모델은 benchmarks 및 FAQ에서 확인할 수 있음. - 실제로 종료된 이슈 102건에서는 제목만으로 수정 파일을 상위 3개에 포함한 비율이 49%였으며, 이슈 식별자를
grep한 경우는 31%였음. 전체 본문을 사용하면grep이 앞섬. 관련 자료는 issue titles에 있음.
한계
- 에이전트 비용 절감은 측정되지 않음. 통제 실험 네 건에서 유능한 에이전트의 비용 감소나 성공률 향상이 나타나지 않았으며, 실제 수정 파일을 에이전트에 제공해도 개선 효과가 거의 없었음. 에이전트 실험 결과는 agent trials에 있음. 비용 절감 도구가 아닌 탐색 도구로 사용해야 함.
- 정확한 이름과 문자열을 찾을 때는
rg를 사용해야 함.wn은 의미를 기준으로 파일 순위를 매김. - “이제 다른 것” 같은 모호한 후속 질문에는 추측 대신 “확신할 만한 힌트 없음”을 반환함. 질문을 완전한 문장으로 작성해야 함.
- 아직 초기 단계인 v0.1.0임. Windows와 Intel Mac은 아직 지원하지 않음.
- 전체 한계 목록은
docs/limitations.md에 있음.
문서와 라이선스
- 문서 링크 목록: Docs, FAQ, Troubleshooting, Benchmarks, Changelog, Contributing.
- 코드는
Apache-2.0라이선스에 따름(LICENSE). 기본 모델lukandrey/where-next-gemma-xl1은 별도로 배포되며,google/embeddinggemma-300m을 미세 조정한 모델로 Gemma 이용 약관의 적용을 받음.NOTICE와 개인정보 및 라이선스 안내를 확인해야 함.
개인정보 보호
- 텔레메트리는 없으며 코드가 기기 밖으로 나가지 않음.
wn report는 익명 사용 통계를 읽고 확인한 뒤에만 공유함. 자세한 내용은docs/stats.md에 있음.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요