
Karpathy의 'LLM wiki' 아이디어를 구현했습니다 (MCP 서버, 오픈 소스)
요약
Karpathy의 'LLM wiki' 아이디어를 구현한 오픈 소스 프로젝트로, RAG 대신 모델이 지식을 지속적으로 업데이트하는 위키 방식을 사용합니다. MCP 서버를 통해 Cursor, Claude Code 등 다양한 도구와 연동되며, 데이터의 일관성을 유지하기 위해 에이전트 기반의 관리 체계를 갖추고 있습니다.
핵심 포인트
- RAG 대신 모델이 직접 위키를 관리하여 지식의 최신성 유지
- MCP 서버를 통해 Cursor, Claude Code 등 다양한 AI 도구와 연동 가능
- 에이전트가 context.md를 관리하여 질문 시 답변 효율 극대화
- 타입 지정 링크 인덱스를 통한 정보 간 모순 및 고립 페이지 탐지
저는 Karpathy의 "LLM wiki" 아이디어를 구현했습니다. 쿼리 시점에 노트에 대해 RAG (Retrieval-Augmented Generation)를 수행하는 대신, 모델이 소스를 추가할 때마다 위키 (wiki)를 유지 관리하는 방식입니다. 이는 MCP (Model Context Protocol) 서버와 작은 웹 UI로 구성되어 있습니다. MIT 라이선스로 제공되며, 모든 것은 사용자의 디스크에 마크다운 (markdown) 형식으로 저장됩니다.
https://github.com/frankchu91/mindbase
작동 원리
소스를 추가할 때 (생각, PDF, URL 등), 모델은 관련 위키 페이지를 업데이트하고 사용자가 추적 중인 주제에 대한 현재 상태를 요약하는 페이지인 context.md를 다시 작성합니다. 나중에 질문을 하면, 답변은 대부분 이미 작성되어 있습니다. 모델은 원시 청크 (raw chunks)에서 모든 것을 다시 유도하는 대신 context.md와 연결된 페이지들을 읽습니다.
데이터 레이아웃은 소유자가 다른 세 부분으로 나뉩니다:
sources/ 사용자가 작성하고 모델이 읽습니다. 추가 전용 (Append-only).
context.md 모델이 작성하고 사용자가 읽습니다.
README.md 프로젝트별 규칙입니다. 사용자가 작성하고 모델이 따릅니다.
추가 전용 (Append-only) 보장은 프롬프트 (prompt)가 아닌 도구 (tooling)에 의해 강제됩니다. 각 작업은 제한된 도구 목록을 가진 서브 에이전트 (sub-agent)로 실행됩니다. context.md를 재구축하는 에이전트는 일반적인 파일 쓰기 도구가 없으며, 이전 버전의 스냅샷과 함께 원자적 쓰기 (atomic write)를 수행하는 단 하나의 MCP 호출만 가집니다. 처음에는 프롬프트 기반 규칙으로 시작했으나 대부분의 경우 유지되었고, 이는 절대 다시 쓰여지면 안 되는 레이어로서 충분히 안전하지 않았습니다.
페이지 간의 링크는 유형이 지정되어 있으며 (언급, 상세 설명, 대체, 모순), 마크다운에서 파생된 sqlite 인덱스에 저장됩니다. lint 명령은 이를 사용하여 실제 충돌을 보고합니다. 예를 들어, 어제 저장한 게시물은 프리픽스 캐싱 (prefix caching)이 긴 대화에 가장 도움이 된다고 주장하지만, 3월의 노트는 그 이점이 짧은 에이전틱 루프 (agentic loops)에 집중된다고 말하는 경우입니다. 또한 고립된 페이지 (orphan pages)와 오래된 주장 (stale claims)도 보고합니다.
Karpathy의 gist 댓글에는 이 패턴을 구현한 다른 사례들이 여러 개 있습니다. 제 구현물이 다른 점은 다음과 같습니다: MCP 서버 (MCP server)로 동작하여 Cursor, Windsurf, Cline, Claude Desktop, Claude Code 내부에서 작동하며, 모순 탐지 (contradiction detection)를 위한 타입 지정 링크 인덱스 (typed link index)를 갖추고 있다는 점입니다.
설치 (Install)
모든 MCP 클라이언트 — 설정에 다음 항목 하나를 추가하세요:
{ "mcpServers": { "mindbase": { "command": "npx", "args": ["-y", "mindbase-mcp"] } } }
Claude Code는 슬래시 명령어 (slash commands)와 서브 에이전트 (sub-agents)를 포함한 더 완전한 버전을 제공합니다:
/plugin marketplace add frankchu91/mindbase
/plugin install mb@mindbase
일상적으로 저는 세 가지 명령어를 사용합니다: 무언가를 추가하기 위한 /mb:contribute, context.md를 재생성하기 위한 /mb:build, 그리고 질문하기 위한 /mb:ask입니다. 데이터 폴더는 Obsidian 보관소 (vault)로 직접 열 수 있습니다.
현재 한계점 (Current limitations)
대화형 수집 흐름 (interactive ingest flow; 모델이 소스를 요약하고 쓰기 전에 승인을 기다리는 방식)은 Claude Code에서만 작동합니다. 다른 에디터들은 더 단순한 버전을 사용합니다. 웹 UI는 탐색 및 편집용이며, 작업을 실행하는 용도는 아닙니다. 모바일 지원 및 동기화 기능은 없습니다.
아직 초기 단계입니다. 약 30명의 초기 사용자를 찾고 있으며, 설정 과정을 개인적으로 도와드릴 예정입니다. 사용해 보시고 문제가 발생하면 이슈 (issue)를 생성해 주세요. 현재 매일 수정 작업을 진행하고 있습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기