xerj
무엇인가
XERJ는 에이전트와 파일 시스템 사이에 놓이는 로컬 검색 인덱스 서버다. 에이전트가 파일을 직접 열어 읽는 대신 질의를 보내면 서버가 해당 구절을 돌려주며, 검색·RAG·보안 감사·에이전트 기억을 같은 프리미티브 위에서 처리한다.
어떻게 동작하나
동작은 `xerj autoindex <경로>` 한 명령에서 시작한다. 서버가 파일마다 형식을 판별해 데이터셋별로 인덱스를 하나씩 만들고, 코드는 tree-sitter로 파싱해 심볼과 행 번호를 붙인다. 문서·로그·PDF·SQLite·CSV도 각각 타입이 있는 인덱스로 들어가며 스키마 작성이나 파이프라인 설정은 필요 없다. 인덱스는 Elasticsearch 호환 REST API로 노출되고, `/_memory/{namespace}` 네임스페이스는 에이전트가 학습한 내용을 다음 세션에서 의미 기반으로 다시 불러오는 저장소로 쓰인다.
무엇과 다른가
grep과 sed는 파일의 위치만 알려주므로 에이전트는 결국 소스를 컨텍스트로 읽어야 한다. README가 인용한 측정에서 한 코퍼스 기준 입력 토큰이 1.06M까지 올라갔다. XERJ는 같은 질의에 구절 자체를 반환한다. 8개 과제·4개 언어·arm당 16회 실행에서 출력 토큰이 grep 대비 2.7배, 기억만 쓰는 경우 대비 26배 적었고 해결률은 16/16으로 동일했다. 단일 Java 과제에서는 278배 차이가 났고, 실사용 보고는 약 5배 절감을 말한다.
어떻게 쓰나
설치 후 서버를 띄우고 `xerj autoindex .`를 실행한 뒤 기존 Elasticsearch 클라이언트로 질의하면 된다. https://xerj.org/llms.txt가 설치·기동·인덱싱·질의와 참조 코딩 루프(유사 OSS 클론, 인덱싱, 메커니즘 검색, 인용, 라이선스 준수)를 순서대로 에이전트에 지시한다. `xerj feedback`은 버전·OS·인덱싱 대상을 채운 필드 리포트 초안을 만들고 `--open-pr`는 PR까지 연다. 수동 경로는 `user-feedback/16-agent-field-reports/` 아래 마크다운 파일 하나만 추가하는 `gh pr create`다.
전제와 한계
`--insecure`는 TLS와 API 키 인증을 끄는 플래그이며, 이때 포트에 닿는 모든 호출자가 모든 인덱스와 `/_memory` 네임스페이스를 읽고 삭제할 수 있는 슈퍼유저가 된다. 새 노드는 127.0.0.1에만 바인딩하고, 다른 인터페이스로의 평문 바인딩은 명시적으로 허용하지 않으면 시작을 거부한다. 전체 모델은 docs/SECURITY_MODEL.md에 있다. 라이선스는 Apache-2.0이고 Windows는 수동 설치 경로로 검증된다. 검색 효과는 모델의 암기 여부에 좌우되어 비공개·내부·니치·컷오프 이후 코드에서는 이기지만, 모델이 이미 아는 인기 공개 라이브러리에서는 중립적이거나 해로울 수 있다.