AI가 내 노트를 읽고, 내 노트를 써요

카파시가 GitHub gist로 조용히 올린 아이디어가 있어요 — LLM을 단순 챗봇이 아니라 살아있는 위키의 작성자로 쓰는 방법이에요. RAG는 질문이 들어올 때마다 원본을 다시 뒤져요. 이 방식은 달라요 — 질문을 거듭할수록 지식이 점점 쌓여요. 단순한 도구 소개가 아니라, 지식을 다루는 패러다임이 달라지는 얘기예요.

01쌓이는 위키 vs 매번 찾는 RAG

저는 AI를 써서 리서치를 많이 해요. 논문 읽고, 레포 파고, 트렌드 정리하고. 그런데 문제가 있었어요 — 같은 주제를 두 번째 물으면 처음부터 다시 시작이에요. 지난번에 발견한 게 어딘가에 기록되지 않으면 없어지는 거죠.

RAG(Retrieval-Augmented Generation)가 그 문제를 부분적으로 해결해요. 원본 문서를 벡터로 저장해 두고, 질문이 들어오면 관련 조각을 찾아서 함께 넣어주는 방식이에요. 그런데 여기에 한계가 있어요 — 매번 원본을 다시 찾아요. 지난번 질문에서 발견한 연결고리, 패턴, 인사이트 — 이것들은 다음 질문으로 이어지지 않아요.

RAG
매번 원본을 다시 찾아요
질문 → 검색 → 답변 → 끝. 지식이 누적되지 않아요.
vs
LLM Wiki
질문할수록 위키가 쌓여요
질문 → 검색 → 답변 + 위키 갱신 → 다음 질문이 더 빨라요.
차이는 단순해요 — 지식이 어디 남느냐예요

카파시는 이걸 이렇게 표현했어요.

"a persistent, compounding artifact where knowledge accumulates through incremental synthesis rather than re-derivation on every query"

매번 다시 유도가 아니라, 점점 쌓이는 합성이에요. 이 차이가 시간이 지날수록 커져요.

RAG
(매번)
1회
2회
3회
1개월
3개월
6개월
RAG는 항상 같은 높이에서 시작해요. LLM Wiki는 질문할수록 높아져요.

02카파시가 조용히 올린 gist 하나

2024년 말, 카파시가 GitHub gist에 짧은 문서를 올렸어요. 공식 발표도 없이, 블로그 포스트도 없이. 그런데 내용을 보면 그냥 메모가 아니에요 — LLM을 지식 관리 시스템의 핵심 작성자로 쓰는 방법에 대한 완결된 아키텍처예요.

핵심 아이디어는 이거예요. 노트 앱(Obsidian 등)을 LLM과 연결하되, LLM이 노트를 읽기만 하는 게 아니라 직접 쓰게 하는 거예요. 제약은 하나 — "Schema"라는 설계도를 사람이 만들고, 그 안에서 LLM이 자율적으로 위키를 운영해요. 통제권은 LLM에게, 규칙은 사람이 — 카파시 특유의 패턴이 여기서도 나와요.

근거 · Karpathy LLM Wiki Gist (2024)
"LLM이 노트를 읽는 게 아니라, 노트를 써요"

Raw Sources(원본)를 사람이 sourcing하면, LLM이 그걸 읽고 Wiki 페이지를 직접 작성·갱신해요. 사람은 Schema(어떤 형식으로 쓸지)만 정의하면 돼요. LLM이 작성자가 되는 구조예요.

033계층 — Sources · Wiki · Schema

구조는 단순해요. 세 개 계층이에요.

사람 → 공급
Sources
논문·링크·회의 메모
불변(immutable)
사람 → 규칙 정의
Schema
CLAUDE.md 스타일
포맷·엔티티·링크 규칙
읽고
규칙 적용
LLM
합성·작성
Sources를 읽고
Schema 규칙 따라
Wiki를 직접 써요
작성·
갱신
LLM 소유
Wiki
마크다운 페이지
교차참조 자동 생성
사람이 직접 편집 ✗
사람의 역할: Sources 공급 + Schema 설계. LLM의 역할: Wiki 작성·관리. 역할이 명확히 분리돼요.

여기서 핵심을 한 번 더 짚으면 — Wiki는 LLM의 소유예요. 사람이 Wiki 페이지를 직접 편집하면 안 돼요. 사람의 역할은 Schema를 잘 정의하는 것, 그리고 Sources를 가져오는 것. LLM이 그걸 읽고 페이지를 써요. 역할 분리가 명확해요.

043가지 오퍼레이션 — Ingest · Query · Lint

이 시스템엔 세 가지 동작이 있어요.

ingest
새 Source가 들어오면 LLM이 읽고 관련 Wiki 페이지 10-15개를 갱신해요. 기존 페이지에 연결하고, 없으면 새로 만들고, 교차참조(backlink)도 자동으로 달아요.
query
질문이 들어오면 Wiki를 먼저 찾고, 찾은 내용으로 답해요. 그리고 이 질문이 발견한 새 패턴이 있으면 Wiki에 반영해요 — 질문 자체가 위키를 더 풍성하게 만들어요.
lint
주기적으로 스스로 점검해요. 모순된 내용, 고아 페이지(아무도 링크 안 한 것), 누락된 연결을 찾아서 정리해요. Schema 위반도 잡아요.
ingest
Source 투입
10-15 페이지 갱신
Wiki
지식 축적
교차참조 자동 연결
query
질문 → 답변
+ 새 패턴 발견 시 갱신
lint
주기 정리
모순·고아 페이지 제거
세 오퍼레이션이 루프를 이뤄요 — 들어오고, 쌓이고, 쓰면서 더 깊어지고, 주기적으로 정리해요.

세 오퍼레이션을 합치면 — ingest로 지식이 들어오고, query로 쓰면서 더 깊어지고, lint로 깨끗하게 유지돼요. 시스템이 스스로 건강해지는 루프예요.

05왜 100k 토큰 이하에서 더 잘 작동하나

카파시가 gist에서 언급한 포인트 중 가장 실용적인 거예요 — 위키가 100k 토큰(약 200페이지) 이하일 때는, RAG보다 이 방식이 우월해요.

이유가 있어요. RAG는 "관련 조각을 찾는다"는 전제 위에서 작동해요. 그런데 조각을 잘 찾으려면 임베딩 품질, 청킹 전략, 검색 임계값 같은 걸 계속 튜닝해야 해요. 그리고 여전히 빠지는 게 생겨요 — 조각끼리의 연결이 보이지 않거든요.

Wiki 방식은 달라요. 전체 위키를 컨텍스트에 넣으면 — 전체 코퍼스에 대한 글로벌 추론이 가능해요. "이 개념과 저 개념의 연결"을 찾는 데 RAG보다 훨씬 강해요. 벡터 인프라도 없고, 검색 임계값 튜닝도 없고, 100% 리트리벌 신뢰성이에요.

~ 100k 토큰 (약 200페이지)
LLM Wiki 최강 구간
RAG·Graph 필요
0 (빈 위키) 개인 지식 관리 스케일 기업·대규모 코퍼스
100k 이하에선 전체를 컨텍스트에 넣는 게 RAG보다 낫고, 그 이상에선 벡터 인프라가 필요해요.
왜 100k가 경계선인가

100k 이하에서는 위키 전체를 한 번에 프롬프트에 넣을 수 있어요. 조각 찾기(RAG)가 필요 없고, 글로벌 추론이 가능해요. 넘어가면 모델 컨텍스트 한계에 걸려서 전통적 검색이 다시 필요해져요.

06실제로 구축해보니 — kairosai llm-wiki 7주 기록

이론을 읽고 직접 만들어 봤어요. kairosai 하네스 안에 llm-wiki/라는 이름으로요. 카파시 gist를 기반으로 하되, 운영하면서 확장한 구조예요. 아래 숫자는 실제 운영 로그에서 나온 수치예요.

7주
bootstrap → 자동화
2026-04-25 첫 페이지 → 06-14 완전 자동화
4,832
prompts → 8 domains
프롬프트 분석으로 도메인 자동 발견
367
atoms indexed
매 대화마다 관련 atom 자동 주입

처음엔 평범하게 시작했어요. Sources 5개를 투입하니 wiki 페이지 13개가 자동으로 만들어졌어요. 그때까지는 "빠른 메모장" 정도였죠. 진짜 변화는 7주 뒤 자동화 파이프라인이 붙고 나서였어요 — 4,832개 프롬프트를 분석해서 8개 도메인을 스스로 발견했어요. 내가 어떤 주제로 일하는지를 시스템이 직접 분류한 거예요.

그 이후로 모든 대화가 달라졌어요. 매 프롬프트가 시작될 때 llm_wiki_route.py가 0.10초 안에 도메인을 감지하고, 관련 atom을 자동으로 컨텍스트에 주입해요. 질문하지 않아도 관련 지식이 먼저 들어와 있어요.

이 글이 쓰여지는 순간도 그 증거예요
LLM-WIKI 라우터가 이 대화에서도 발동했어요

이 블로그를 작성하는 대화가 시작되자 라우터가 키워드 llm·wiki를 감지하고 D7(AI·LLM Engineering) 도메인으로 분류했어요. agentic-os-product·b5-agentic-os atom이 자동으로 컨텍스트에 주입됐고 — 제가 따로 "이 파일 읽어줘"라고 하지 않아도 관련 지식이 대화에 들어와 있었어요. 위키가 배경에서 조용히 작동하는 거예요.

근거 · kairosai llm-wiki/log.md 2026-06-14 항목 — "라우터 0.10s, 도메인 분류 정확" / index.json 367 atoms

07함정 — 언제 무너지나

좋은 것만 얘기하면 안 되죠. 직접 써보면서 발견한 함정이 있어요.

01
Schema 없이 시작하면 2주 뒤 위키가 흐트러져요
LLM에 자유를 주면 자기 나름대로 페이지를 만들어요. 형식이 다 달라지고, lint도 뭘 기준으로 해야 할지 모르게 돼요. Schema가 먼저예요. 나중에 소급 적용하면 비용이 훨씬 커요.
02
Wiki를 사람이 직접 고치면 소유권이 깨져요
LLM이 쓴 페이지에 아쉬운 부분이 보이면 손이 가요. 근데 이렇게 하면 다음번 LLM 갱신 때 덮어써요. 고치고 싶으면 Schema를 수정하는 방식으로만 해야 해요.
03
Sources 선별이 결국 위키 품질을 결정해요
아무 링크나 넣으면 위키 품질이 낮아져요. LLM이 아무리 잘 합성해도 원본이 허술하면 결과도 허술해요. 고품질 원본 선별 — 이건 끝까지 사람의 몫이에요.

08kairosai llm-wiki 구조를 보면

카파시 원안의 3계층(Sources·Wiki·Schema)에 하나를 더 얹었어요 — Ontology(온톨로지)예요. 재사용 가능한 방법론 원자들을 별도로 모아두는 레이어예요. Wiki 페이지가 "이번 주제에 대한 합성"이라면, Ontology는 "어떤 주제에든 꺼내 쓸 수 있는 패턴"이에요.

사람 → 투입
sources/
논문·리서치·회의록
11 files · immutable
사람 → 규칙
CLAUDE.md
Schema 8섹션
frontmatter·workflow·금지행위
읽고
합성
LLM
wiki/ 작성
23 pages
summaries · concepts
syntheses
사람
승인 후
공동 (kairosai 확장)
ontology/
367 atoms
Pattern·Checklist·Decision
재사용 가능한 방법론
카파시 원안의 3계층 + ontology 레이어가 kairosai 확장이에요. Ontology atom은 LLM이 draft하고 사람이 승인해야 등록돼요.

가장 좋았던 건 llm_wiki_route.py예요. 대화가 시작될 때마다 UserSubmit 훅이 프롬프트를 읽고 도메인을 분류해요 — 0.10초 안에. 관련 atom이 있으면 컨텍스트에 자동으로 밀어 넣어요. "이 파일 읽어줘"라고 하지 않아도 관련 지식이 이미 들어와 있어요.

이게 바로 카파시가 말한 "점점 쌓이는 합성"의 실체예요. Sources를 ingest할수록 Wiki가 깊어지고, Wiki가 깊어질수록 라우터가 더 정확한 atom을 주입하고, 그 다음 대화의 품질이 올라가요. 루프가 닫히는 순간이에요.


카파시의 gist는 짧아요. 그런데 읽다 보면 그가 소프트웨어를 다루는 방식의 핵심이 여기서도 똑같이 등장해요 — 통제권은 위로, 제약은 좁게. LLM에 위키 작성을 맡기되, Schema라는 좁은 규칙 안에서. 지식 관리에서도 같은 패턴이에요.

직접 만들어서 운영하면서 배운 건 — Schema 먼저, 그 다음 Sources. 라우터가 붙고 나서야 "아, 이게 쌓이는 거구나"가 체감됐어요. 그 전까지는 그냥 조금 빠른 메모장이었어요.

매번 찾는 것과 쌓이는 것의 차이 — 7주가 지나고 나서야 보였어요.