cocoindex
무엇인가
CocoIndex는 AI 에이전트와 LLM 애플리케이션이 추론에 사용할 컨텍스트를 만들어 유지하는 증분 데이터 변환 엔진이다. 소스에서 데이터를 읽어 변환한 뒤 타깃에 적재하는 ETL 계열에 속하며, 임베딩과 검색 인덱스를 채우는 파이프라인이 놓이던 자리를 차지한다.
어떻게 동작하나
사용자는 타깃에 무엇이 있어야 하는지를 선언한다. 엔진은 그 선언과 현재 상태를 비교해 차이만 계산한다. 코어는 Rust로 작성되어 병렬 청킹, 가능한 구간의 제로카피 변환, 실패 격리를 수행한다. 소스가 바뀌면 영향받는 레코드를 식별하고, 조인과 조회를 거쳐 변경을 전파한 뒤 타깃을 갱신하고 더 이상 유효하지 않은 행을 회수한다. 변경되지 않은 레코드는 건드리지 않는다.
무엇과 다른가
배치 파이프라인은 주기가 돌 때마다 전체 코퍼스를 다시 임베딩한다. CocoIndex는 델타만 재계산하므로 재처리 범위가 변경분으로 한정된다. 직접 작성한 증분 스크립트와 달리 조인·조회를 통한 변경 전파와 stale row 정리를 엔진이 담당한다.
어떻게 쓰나
파이프라인은 Python 선언형 API로 작성한다. 한 번 실행해 백필하고, 이후 다시 실행하면 바뀐 파일만 재임베딩된다. AI 코딩 에이전트와 함께 쓸 때는 CocoIndex skill 파일을 넣어 v1 코드 규약을 따르게 한다. 예제 트리에 20개 이상의 스타터가 있어 소스를 교체해 바로 사용할 수 있다.
전제와 한계
엔진 코어는 Rust, 파이프라인 정의는 Python이다. 소스 커넥터와 동기화 대상이 될 타깃 스토어가 갖춰져야 한다. 증분 처리는 이전 실행 상태를 전제로 하므로 첫 실행은 전체 백필이다. 라이선스는 Apache 2.0이다.
유사 도구
- octocode로컬 코드와 GitHub 저장소를 ripgrep·AST·LSP로 검색해 AI 에이전트에 토큰 효율적인 근거 컨텍스트를 돌려주는 Rust 엔진 기반 CLI·MCP 서버다.
- meilisearchRust로 작성된 검색 엔진 서버다. 전문 검색과 시맨틱 검색을 결합한 하이브리드 검색을 RESTful HTTP API로 제공한다.
- RediSearchRedis 해시에 보조 인덱스와 전문 검색, 벡터 유사도 검색, 집계를 붙이는 쿼리·인덱싱 엔진이다. Redis 8부터 코어에 포함된다.
- paradedbPostgres에 커스텀 인덱스를 추가해 전문 검색·벡터 검색·집계를 한 데이터베이스 안에서 처리하는 Rust 확장이다. 별도 검색 시스템을 두지 않는다.
- supermemory대화에서 사실을 추출해 사용자 프로필과 컨텍스트를 유지하는 AI 메모리 엔진이다. 단일 API, MCP 서버, 로컬 단일 바이너리 실행을 함께 제공한다.
- databendRust로 작성된 오픈소스 엔터프라이즈 데이터 웨어하우스다. S3 위에서 분석·벡터 검색·전문 검색을 한 엔진에 통합하고, 샌드박스 UDF로 에이전트 로직을 격리 실행한다.