커서의 AI 에이전트를 위한 빠른 정규식 검색 접근법

에이전트 워크플로우에서 정규식 성능 해결
Cursor는 AI 코딩 에이전트를 위해 특별히 색인화된 정규식 검색을 만들고 있습니다. 이는 대규모 코드베이스에서 ripgrep과 같은 기존 정규식 도구가 워크플로우를 중단시킬 수 있는 병목 현상을 해결합니다. 이 문제는 rg 호출이 15초를 초과하는 경우가 빈번한 기업용 모노레포에서 특히 심각하며, AI 에이전트의 대화형 안내를 방해합니다.
현재 도구의 근본적인 문제
대부분의 AI 에이전트 하네스(포함 Cursor)는 기본적으로 정규식 검색에 ripgrep을 사용합니다. ripgrep은 파일 무시에 대한 합리적인 기본값으로 클래식 grep보다 더 나은 성능을 제공하지만, 하나의 근본적인 한계가 있습니다: 모든 파일의 내용을 스캔해야 한다는 점입니다. 이는 개발자가 AI 에이전트와 실시간 상호작용이 필요한 대규모 코드베이스에서 문제가 됩니다.
고전 연구를 기반으로 한 색인 접근법
이 색인 접근법은 1993년 Zobel, Moffat 및 Sacks-Davis가 "압축된 역파일을 사용하여 부분적으로 지정된 용어에 대한 대규모 어휘 검색"에서 처음 발표한 연구를 기반으로 합니다. 이 방법은 n-gram(n개의 문자로 이루어진 문자열 세그먼트)을 사용하여 역색인을 생성하며, 정규 표현식을 색인에서 조회할 수 있는 n-gram 트리로 분해하기 위한 휴리스틱을 사용합니다.
역색인이 작동하는 방식
역색인은 검색 엔진 뒤에 있는 근본적인 데이터 구조입니다. 문서는 토큰화(이 경우 개별 단어를 토큰으로)를 통해 토큰으로 분할됩니다. 이러한 토큰은 사전과 유사한 구조에서 키가 되며, 값은 각 토큰을 포함하는 모든 문서를 식별하는 포스팅 리스트입니다. 여러 토큰을 검색할 때 시스템은 해당 포스팅 리스트를 로드하고 교차하여 지정된 모든 용어를 포함하는 문서를 찾습니다.
이 접근법은 전통적인 IDE가 Go To Definition과 같은 작업을 위해 구문 색인을 생성하는 방식과 유사하지만, 현대 AI 에이전트가 텍스트를 조회할 때 수행하는 정규식 검색 작업에 특화되어 있습니다.
📖 전체 소스 읽기: HN AI Agents
👀 See Also

Stagent: 로컬 거버넌스와 워크플로 오케스트레이션을 갖춘 Claude Agent SDK용 오픈소스 운영 레이어
Stagent는 Claude Agent SDK와 Claude API를 기반으로 구축된 오픈소스, 로컬-퍼스트 조정 작업 공간으로, AI 에이전트를 위한 워크플로 오케스트레이션, 예산 가드레일, 인간-참여 거버넌스를 제공합니다. 15개의 제품 인터페이스, 6가지 워크플로 패턴, 52개 이상의 재사용 가능한 에이전트 프로필을 포함하며, SQLite를 사용해 완전히 로컬에서 실행됩니다.

Vellium, 로컬 LLM을 위한 데스크톱 펫과 CLI 기반 에이전트 추가
Vellium, 로컬 LLM을 위한 오픈소스 크로스플랫폼 앱으로, 이제 창 위에 떠 있는 데스크탑 펫과 MCP 통합, 터미널 명령, 파일 편집이 가능한 에이전트를 지원합니다.

슬레이트: 내장 브라우저가 탑재된 오픈소스 macOS AI 채팅 앱
Slate는 단일 창에서 AI 채팅과 웹 브라우징을 결합한 네이티브 macOS 앱으로, Anthropic, OpenAI, Gemini 및 Ollama 모델을 지원합니다. SwiftUI와 WebKit으로 구축되어 리소스 사용량이 적으며 MIT 라이선스로 제공됩니다.

RUNE 프로토콜: 플랫폼 간 AI 세션 메모리 저장
RUNE(Relational User Notation for Entities)는 AI 관계 전체를 암호화된 .rune 파일로 저장하는 오픈소스 프로토콜로, AI 어시스턴트가 세션 간에 사용자를 잊어버리는 콜드 스타트 문제를 해결합니다. Claude Opus 4.6으로 제작되었으며 Claude와 GPT 플랫폼에서 모두 작동합니다.