수백만 개의 JSONL 또는 SQLite 기록에서 에이전트가 특정 데이터를 조회할 때 전체 이력을 컨텍스트에 로드할 필요 없이 인덱스를 구축한
요약
대규모 JSONL, SQLite 등 구조화된 데이터셋에서 에이전트가 특정 데이터를 조회할 때 전체 이력을 컨텍스트에 로드할 필요 없이 인덱스를 구축하여 효율적으로 질의하는 방법을 제시합니다. 이를 통해 토큰 사용량을 획기적으로 줄이고 응답 속도를 개선했습니다.
핵심 포인트
- 대규모 데이터셋에서 전수 탐색 대신 인덱스 기반 조회 가능
- JSONL, SQLite 등 다양한 포맷을 처리하는 단일 바이너리 제공
- 토큰 사용량 절감 및 빠른 지연 시간(33ms) 달성
현재 수백만 개의 JSONL 또는 SQLite 레코드가 있으며, 에이전트가 그중 하나를 조회해야 할 때 전체 기록을 컨텍스트에 로드할 필요가 없습니다. 미리 구축된 인덱스를 가진 단일 파일 바이너리를 설정하고 직접 질의하면 됩니다.
https://github.com/elstongun/leviathan
...
Rust로 컴파일된 단일 파일 바이너리로, JSONL, JSON, CSV/TSV, SQLite를 모두 처리하며 psql이나 DuckDB 같은 CLI 도구에서 내보낸 데이터도 처리하여 모든 것을 하나의 SQLite 파일에 FTS5 인덱스로 패킹할 수 있습니다.
에이전트가 질문을 하면, 출처(citation)와 함께 몇 장의 참고 카드를 반환합니다. 100만 개 미만의 레코드(678 MB)의 경우 중앙값은 436 토큰인 반면, grep을 사용할 경우 107122 토큰이 필요합니다. 공식 벤치마크에서 상위 5개 관련 기록에 대한 적합도는 99.0%를 달성했고, 순위 1위는 98.5%였으며, 중앙값 지연 시간은 33ms입니다.
Git 변경 사항, 소스 코드 탐색, 커밋 이력, 브랜치 비교 기능을 터미널의 동일한 TUI에 통합하여 diff 도구와 git 명령어 사이를 왔다 갔다 할 필요성을 없애줍니다.
https://github.com/hiroaqii/gitframe
AI 자동 생성 콘텐츠
본 콘텐츠는 X @qingq77 (검증됨)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기