Enzyme, 마크다운 노트를 에이전트용 로컬 인덱스로 컴파일한다

Hacker News8일 전조회 1

Enzyme은 마크다운 노트 폴더를 코딩 에이전트가 바로 활용할 수 있는 로컬 지식 인덱스로 바꿔주는 오픈소스 도구다. 스스로를 "지식 베이스를 위한 로컬 우선 컴파일 단계"라고 규정하며 깃허브 byenzyme/enzyme에 공개됐다. Claude Code, Codex처럼 터미널 명령을 실행할 수 있는 에이전트에 설치해 쓰는 방식이라 별도 앱을 띄울 필요가 없다.

설치 프롬프트를 에이전트에 붙여넣으면 에이전트가 설치 스크립트를 실행하고, 노트가 이미 정리된 방식(폴더, 태그, 링크, 날짜)을 읽어 어떤 범위를 인덱싱할지 제안한다. 사용자는 제안된 포함·제외 항목을 확인해 고칠 수 있고, 승인하면 로컬 인덱스가 만들어진다. 이어서 실제 질문 하나를 자기 노트에 근거해 답하고, 원문 노트 링크를 함께 보여준다. 기존 노트 파일은 위치도 내용도 건드리지 않는다.

인덱싱은 두 갈래로 진행된다. 첫째는 '카탈리스트(catalyst)'라 부르는 질문 묶음 생성이다. 선택한 폴더·태그·링크마다 시간축을 따라 발췌를 샘플링한 뒤, 그 안에서 무엇을 결정했고 무엇을 바꿨고 무엇을 열어뒀는지 묻는 질문을 만들어 낸다. enzyme petri 명령으로 이 지도를 터미널 트리나 JSON으로 볼 수 있다. 둘째는 검색 인덱스로, enzyme catalyze가 어휘 일치와 의미 유사도를 함께 반영하는 하이브리드 랭킹으로 노트를 찾아낸다. 결과마다 어떤 카탈리스트가 그 노트를 질의와 이어주는지 함께 표시된다.

설정은 '.enzyme' 확장자의 짧은 프로그램 파일로 저장된다. `source markdown "notes" { path "~/notes" }`처럼 읽을 대상을 선언하고, 폴더나 태그별로 어떤 관점의 질문을 학습할지 지정하는 식이다. 명령 체계는 compile이 설정을 제안·저장하고, init이 로컬 인덱스를 만들고, doctor가 무엇이 인덱싱됐는지와 문제를 보고하며, refresh가 이후에 추가된 노트를 반영한다.

이 도구가 겨냥하는 것은 빠르게 불어나는 마크다운 기반 지식 베이스다. Obsidian vault처럼 몇 개 폴더에 날짜별 노트가 쌓이는 구조, 회의록, 마크다운으로 운영하는 CRM, 에이전트의 메모리 파일 등이 대표적이다. 여러 노트에 걸쳐 시간이 흐르며 답이 흩어진 질문, 예컨대 프로젝트에서 무엇이 달라졌는지, 특정 인물과 반복되는 쟁점이 무엇인지, 어떤 결정이 왜 그렇게 났는지를 다룰 때 효과가 크다고 설명한다.

반대로 이름이나 제목, 정확한 문구를 찾는 일에는 일반 검색이 더 빠르다. 설치되는 스킬이 어느 쪽을 쓸지 에이전트에게 알려주는 구조라, 사용자가 검색 방식을 매번 판단하지 않아도 된다는 점이 설계의 핵심이다. 검색 자체는 전부 사용자 머신에서 실행된다.

성능 주장도 눈에 띈다. 프로젝트는 프런티어 모델을 그대로 호출하는 방식과 비교해 350배의 비용 절감과 1000배의 속도를 내세운다. 노트 전체를 매번 컨텍스트로 밀어넣는 대신 로컬 인덱스에서 관련 구절만 뽑아 올린다는 발상이며, 개인 기록을 외부로 보내지 않으려는 요구와도 맞물린다.

다만 카탈리스트는 모델이 생성한 힌트일 뿐 근거가 아니라고 프로젝트는 명시한다. 설정이 제대로 됐는지는 생성된 질문 목록이 아니라 에이전트가 실제로 되가져오는 노트를 보고 판단해야 한다. Apple Notes나 Are.na처럼 별도 프리셋으로 워크스페이스를 만드는 경로도 있어, 저장된 .enzyme 프로그램을 먼저 검토한 뒤 init을 실행하는 절차를 권한다. 노트 정리, 모델 다운로드, 반복 작업은 사전에 별도로 확인을 받도록 되어 있다.