본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 05. 26. 19:08

당신의 LLM은 모든 것을 잊어버립니다. 위키(Wiki)를 제공하세요!

요약

LLM의 컨텍스트 유지 문제를 해결하기 위해 에이전트가 직접 관리하고 편집할 수 있는 '위키(Wiki)' 기반의 지식 관리 체계를 제안합니다. 단순 검색을 넘어 정보를 합성하고 업데이트하는 편찬(compilation) 중심의 접근 방식을 다룹니다.

핵심 포인트

  • LLM이 직접 마크다운 위키를 관리하여 컨텍스트 소실 방지
  • 단순 검색(Retrieval)이 아닌 정보 합성(Compilation) 과정 강조
  • SQLite와 하이브리드 검색을 활용한 kb-wiki CLI 구현
  • 로컬 우선(Local-first) 방식의 지식 저장소 구축

당신의 LLM과 나누는 모든 새로운 채팅은 항상 같은 방식으로 시작됩니다. 안녕하세요, 여기 컨텍스트 (Context)가 있습니다. 여기 스택 (Stack)이 있습니다. 지난주에 우리가 시도했던 것들입니다. 아무도 기록하지 않은 제약 사항들입니다. 모델이 상황을 파악할 때쯤이면, 당신은 이미 다 다룬 내용을 다시 설명하느라 10분을 허비하게 됩니다.

그러고 나서 당신이 탭을 닫으면

  • Raw sources (원시 소스) — 기사, 논문, 노트, 전사(transcripts). 변경 불가능(Immutable)합니다. LLM은 이를 읽지만 절대 수정하지 않습니다.
  • The wiki (위키) — LLM이 관리하는 마크다운(Markdown) 파일들. 엔티티 페이지, 개념 페이지, 요약본, 인덱스(index) 등으로 구성됩니다. LLM이 이 계층을 완전히 소유합니다.
  • The schema (스키마) — LLM에게 위키를 수집(ingesting), 질의(querying), 유지 관리(maintaining)하기 위한 규칙을 알려주는 하나의 문서(CLAUDE.md, AGENTS.md 등 에이전트가 읽는 파일).

LLM Wiki

새로운 소스가 들어오면, LLM은 단순히 이를 청크(chunk)로 나누고 임베딩(embed)만 하지 않습니다. LLM은 소스를 읽고, 관련 사실을 기존 페이지에 통합하며, 이미 존재하는 내용과 모순되는 부분을 표시하고, 상호 참조(cross-references)를 업데이트하며, 로그에 추가합니다. 단 한 번의 과정으로 하나의 소스가 10개 또는 15개의 위키 페이지에 영향을 미칠 수도 있습니다. 이 합성(synthesis) 과정은 당신이 읽은 모든 내용을 이미 반영하고 있습니다.

이것은 검색(retrieval)이 아닙니다. 편찬(compilation)입니다.

Karpathy는 그 계보를 찾기 위해 Vannevar Bush의 1945년 Memex를 소환합니다. Memex는 문서 간의 큐레이션된 경로를 가진 개인적이고 연상적인 지식 저장소였습니다. Bush는 유지 관리 문제를 해결할 수 없었지만, LLM은 할 수 있습니다.

kb-wiki의 실체

저는 이 패턴의 실용적인 버전으로 kb-wiki를 구축했습니다. 에이전트가 실제로 읽고, 검색하고, 편집할 수 있는 위키를 제공하는 로컬 우선(local-first) CLI입니다.

기술 스택:

  • SQLite (메타데이터용) + FTS5 (키워드 검색용)
  • sqlite-vec (벡터 검색용)
  • bge-base-en-v1.5 (로컬 임베딩용, 약 200MB, Apple Silicon에서 실행 가능, API 키 불필요)
  • Hybrid search (하이브리드 검색): Reciprocal Rank Fusion을 통해 BM25와 코사인 유사도(cosine similarity)를 결합
  • Markdown files (마크다운 파일): 신뢰할 수 있는 단일 원천(source of truth) — git 친화적이며 Obsidian과 호환됩니다. SQLite 인덱스는 디스크로부터 완전히 재구축 가능합니다.

모든 것은 사용자의 로컬 머신에서 실행됩니다. 클라우드도, 속도 제한(rate limits)도 없으며, 사용자의 노트를 제3자에게 유출할 염려도 없습니다. 임베딩 모델 (embedding model)은 첫 실행 시 한 번 다운로드되어 ~/.kb/.models/에 캐시됩니다. 그 이후에는 오프라인 상태에서도 작동합니다.

핵심적인 작동 원리는 kb setup에 있습니다. 이 명령은 에이전트의 지침 파일(instruction file)에 짧은 메모를 작성합니다. Claude Code의 경우 CLAUDE.md

모든 지식 베이스 (knowledge base)의 짜증 나는 부분은 읽는 것이 아닙니다. 바로 장부 정리 (bookkeeping)입니다. 무언가의 이름이 변경되었을 때 상호 참조 (cross-references)를 업데이트하는 것, 요약본을 최신 상태로 유지하는 것, 그리고 새로운 노트가 기존의 노트와 모순된다는 사실을 알아차리는 것 말입니다. 인간은 유지 관리 비용이 가치보다 더 빠르게 증가하기 때문에 위키 (wiki)를 포기합니다.

LLM은 지루함을 느끼지 않습니다. 상호 참조를 업데이트하는 것을 잊어버리지도 않습니다. 불평 한마디 없이 한 번의 작업으로 15개의 파일을 수정할 수 있습니다. 위키를 유지하는 비용이 거의 제로에 가깝기 때문에 위키는 생명력을 유지합니다.

업무 분담은 명확합니다. 당신은 소스를 큐레이션 (curate)하고 좋은 질문을 던지며, 모델은 파일 정리 (filing)를 수행합니다.

만약 당신이 이번 달에만 에이전트 (agent)에게 동일한 프로젝트 컨텍스트 (context)를 다섯 번이나 설명했다면, 이것이 바로 그 문제를 해결해 줄 도구입니다.

npm install -g kb-wiki
kb wiki create my-notes
kb setup --agents claude --global

세 개의 명령만으로 충분합니다. 이제 당신의 에이전트는 기억합니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0