samvallad33/vestige
Vestige enhances agents by deterministic root-cause retrieval that reaches backward through time to find the quiet change, decision, or service that caused today’s failure, not the lookalike.
Vestige – AI 지원 개발자를 위한 로컬 우선 메모리
무엇인가요 – Vestige는 오픈소스이며 로컬에서 실행되는 메모리 계층으로, 대규모 언어 모델(LLM) 코딩 에이전트(Claude Code, Claude Desktop, Codex, Cursor 등)가 코드베이스에 대한 "기억"을 저장하고 검색할 수 있게 해줍니다. 작업 중에 결정사항, 설정 선택, 기타 맥락 정보를 기록한 후, 장애가 발생했을 때 단순한 유사성 검색이 아닌 인과적-시계열적 링크를 사용하여 가장 관련 있는 정보를 다시 제시합니다.
핵심 아이디어 (README에서)
| 개념 | Vestige의 구현 방식 |
|---|---|
| 예측 오차 게이팅 | 새로운 사실만 기록되며, 중복된 사실은 통합되고 모순된 사실은 경고됨. |
| 후행적 중요성 백필 | 버그가 보고되면 Vestige는 메모리 그래프를 거슬러 올라가, 실패에 기여한 이전 사실의 중요성을 높임. |
| 간격 반복 페이딩 (FSRS-6) | 사용되지 않은 기억은 점차 가중치를 잃어 저장소를 작게 유지함. |
| 이중 강도 저장 | "저장 강도"(사실을 얼마나 단단히 유지하는지)와 "검색 강도"(어떻게 쉽게 찾는지)를 별도로 관리. |
| 오프라인 작동 | 130MB 임베딩 모델과 약 150MB 재정렬 모델을 한 번 다운로드한 후, 네트워크 호출 없이 완전히 로컬에서 작동. |
주요 사용자 시각 기능
- 자동 쓰기 반환: 어떤 MCP 호환 에이전트도
smart_ingest를 호출해 사실을 저장할 수 있으며, Vestige는 그것이 새로운지, 중복인지, 모순인지 판단하여 처리함. - 집중적 재기억:
recall은 단순히 텍스트가 유사한 것이 아니라, 현재 코드 컨텍스트와 인과적으로 연결된 기억을 반환함. - 백필:
vestige backfill --contrast는 오류에서 시작해 그 원인이 되었을 가능성이 높은 가장 초기 기억을 제시하며, 수령증(증거 경로)을 함께 제공함. - 대시보드: WebGPU 시각화 도구(
vestige dashboard)는 실시간으로 메모리 그래프를 표시(1000+ 노드에서 60fps), 짧은 동영상이나 "브레인 프린트"(실제 데이터를 노출하지 않고 그래프 형태만 표현)를 내보낼 수 있음. - 프로젝트 투영: 지속적인 결정은 Markdown 규칙 파일(예:
CLAUDE.md)로 내보내어 에이전트가 향후 세션에서 존중할 수 있도록 함. - 프로 티어 (옵션, 월 19달러): XChaCha20-Poly1305와 Argon2id를 사용한 암호화된, 다중 기기 연속성. 무료 티어는 완전히 오프라인이고 무제한임.
설치 및 빠른 시작 (설명대로)
- Node로 MCP 서버를 전역 설치:
npm install -g vestige-mcp-server@latest - 에이전트의 MCP 설정에 서버를 추가 (README에 JSON 예시 있음). README에는 Claude Code, Codex, Cursor, Claude Desktop 등에 대한 정확한 명령어가 나와 있음.
vestige dashboard를 실행하고http://localhost:3927/dashboard를 열기.- 첫 실행 시 바이너리가 임베딩 및 재정렬 모델을 다운로드함. 이후에는 완전히 오프라인으로 작동함.
일반 RAG와의 차이점
| RAG (벡터 유사성) | Vestige |
|---|---|
| 쿼리 텍스트와 비슷한 항목을 검색. | 인과적 + 시계열적 관계로 연결된 항목을 검색한 후 유사성으로 재정렬. |
| 모순 개념 없음; 중복이 누적됨. | 모순 탐지, 중복 통합, 사용되지 않은 기억 페이딩. |
| 데이터는 일반적으로 클라우드 서비스에 저장됨. | 모든 데이터는 개발자의 기기에서만 유지됨 (SQLite, 선택적 SQLCipher 암호화). |
| 증상과 관련 없는 버그의 근본 원인을 지정할 수 없음. | backfill을 통해 실패를 유발한 결정까지 거슬러 올라가, 수령증 기반 후보 원인 제공. |
벤치마크 및 증거 (보고된 내용)
- 사라진 회전 벤치마크 – 246개의 에이전트 트랜스크립트를 사용해 세 가지 설정(메모리 없음, dense-cosine RAG, Vestige)을 비교.
- 결과 (각 설정 23회 시도): Vestige는 23회 중 20회에서 정확한 수정에 수렴했으며, 오류 수렴은 0회. 반면 RAG는 정확한 수렴이 4/23, 잘못된 수정이 12/23.
- 벤치마크는 제공된 Python 스크립트로 몇 초 내에 재현 가능 (see
benchmark/silent-rotation).
기술 스택 ("내부 구조" 표에서)
- 엔진: Rust (약 145k LOC), 단일 ~25MB 바이너리로 컴파일, 2000개 이상의 테스트, clippy 정리됨.
- 검색: Nomic Embed v1.5 (Matryoshka 768→256), USearch HNSW 인덱스, SQLite FTS5; 선택적 Qwen-3 재정렬 모델.
- 저장소: SQLite (암호화에는 선택적 SQLCipher).
- 임베딩 모델: 한 번 다운로드 후 영구적으로 오프라인 사용 가능.
누가 이득을 볼 수 있나요?
- LLM 코딩 어시스턴트를 사용하며 반복적으로 "에이전트의 망각" 문제에 직면하는 개발자.
- AI 에이전트가 내린 결정의 감사 추적을 필요로 하는 팀 (수령증이 재현 가능한 증거 제공).
- 엄격한 데이터 프라이버시를 요구하는 사용자 (모든 처리는 기기 내부, API 키 필요 없음).
제한 및 미해결 사항 (인식됨)
- 시스템은 하위 임베딩 모델과 선택적 재정렬 모델의 품질에 의존함. 이 모델들이 열악하면 유사성 랭킹이 관련 사실을 놓칠 수 있음.
- "백필" 메커니즘은 기록된 인과 링크의 질에 따라 달라짐. 핵심 결정이 기록되지 않으면 나중에 가져올 수 없음.
- 메모리를 여러 기기 간에 동기화하는 유일한 방법은 Pro 티어. 무료 티어는 단일 기기 전용.
- 벤치마크는 저자들이 제시한 것. 보다 넓은 신뢰를 얻기 위해 독립적인 재현이 필요.
라이선스
- AGPL-3.0 (전체 소스 공개; 상용 사용은 코피레프트 조건 준수 필요).
결론 – Vestige는 연구 기반의 진정한 도구로, LLM 코딩 에이전트에 인과적, 로컬 메모리 그래프를 추가하여, 결정의 이유를 기억하고 장애 발생 시 해당 맥락을 제시함으로써 반복적인 실수를 제거하는 것을 목표로 합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트