Karpathy LLM Knowledge Base Workflow — context-vault 적용 가이드
Andrej Karpathy가 제안한 5단계 LLM 지식 베이스 워크플로우를 context-vault에 적용하는 실전 가이드.
워크플로우 개요
Data Ingest → IDE → Q&A → Output → Linting → (반복)
각 단계는 독립적으로 실행 가능하며, LLM/에이전트가 각 단계를 자동화합니다.
1. Data Ingest (데이터 수집)
LLM이 소스 문서를 증분적으로 마크다운 위키로 “컴파일”합니다.
현재 구현 상태: ✅ 완료
| 기능 | 도구 | 설명 |
|---|---|---|
| 웹 클리핑 | context-vault-writer 스킬 | URL → 마크다운 변환 → 자동 저장 |
| 원본 보관 | raw/ 디렉토리 | 미가공 소스 보관 |
| 자동 분류 | AGENTS.md 규칙 | 7개 주제 카테고리 자동 분류 |
| 메타데이터 | Frontmatter | title, created, modified, tags, source_url |
| 인덱스 | MOC + sidebar | 주제별 이정표 + 사이드바 자동 업데이트 |
사용법
에이전트에게 URL을 전달하면 자동 처리:
"이 URL을 context-vault에 저장해줘: https://..."
수동으로 추가할 때
# defuddle로 파싱
defuddle parse "URL" --md > /tmp/content.md
# AGENTS.md 규칙에 따라 노트 생성
# notes/{topic}/YYYY-MM-DD-slug.md 형식2. IDE (지식 탐색)
마크다운 위키를 탐색하고 시각화합니다.
현재 구현 상태: ✅ 완료
| 기능 | 도구 | 설명 |
|---|---|---|
| 웹 뷰어 | Docsify + GitHub Pages | https://jeongsk.github.io/context-vault/ |
| 로컬 뷰어 | Obsidian | 일반 마크다운 구조라 그대로 열림 |
| 로컬 미리보기 | npx docsify-cli serve . | 로컬에서 Docsify 실행 |
| 검색 | QMD | 키워드 + 임베딩 검색 (미완) |
주요 URL
- 웹: https://jeongsk.github.io/context-vault/
- 로컬:
~/.openclaw/workspace/projects/context-vault
3. Q&A (지식 질의응답)
위키가 충분히 커지면(약 100개 아티클, 40만 단어) LLM 에이전트에게 복잡한 질문이 가능합니다.
현재 구현 상태: 🟡 부분 완료
현재 context-vault는 133개 노트, 약 6만 단어. Q&A가 의미 있는 수준입니다.
스크립트 기반 Q&A
# 키워드 검색 (QMD 임베딩 없을 때)
python3 scripts/vault-qa.py "멀티 에이전트 오케스트레이션 방법"
# 상위 N개 결과
python3 scripts/vault-qa.py "에이전트 통신" --top 10
# vault 통계
python3 scripts/vault-qa.py --stats에이전트 기반 Q&A (권장)
에이전트에게 직접 질문하면 vault의 노트를 검색하여 문서 기반 답변:
"context-vault에서 멀티 에이전트 관련 내용 정리해줘"
QMD 임베딩 검색 (향후)
# 임베딩 생성 (현재 타임아웃 이슈 — GPU 환경 필요)
qmd embed
# 임베딩 기반 자연어 쿼리
qmd query "멀티 에이전트 시스템에서 에이전트 간 통신은 어떻게 하나요?"참고: QMD embed는 llama.cpp 기반이므로 ARM 서버에서 컴파일/실행에 시간이 걸릴 수 있음. GPU 환경 또는 사전 빌드된 바이너리 필요.
4. Output (결과 파일링)
탐색/분석 결과를 다시 위키에 “파일링”하여 지식 베이스를 점진적으로 향상시킵니다.
현재 구현 상태: ✅ 스크립트 완료
# Q&A 결과 저장
python3 scripts/vault-file.py --type qa --title "멀티 에이전트 통신 비교" \
--topic ai-agents --content "Paperclip은 React UI 기반 오케스트레이션..."
# 인사이트 저장
python3 scripts/vault-file.py --type insight --title "에이전트 아키텍처 트렌드" \
--content "2026년 3-4월 트렌드 분석..."
# stdin에서 내용 읽기
echo "린트 결과 요약" | python3 scripts/vault-file.py --type summary \
--title "2026-04-04 Lint Report" --topic misc
# Output 노트 통계
python3 scripts/vault-file.py --statsOutput 노트 타입
| 타입 | 접두사 | 용도 |
|---|---|---|
qa | qa- | Q&A 결과 정리 |
lint-report | lint- | 린트 리포트 |
insight | insight- | 분석 인사이트 |
analysis | analysis- | 심층 분석 |
summary | summary- | 요약 정리 |
5. Linting (건강 검사)
LLM/스크립트로 위키 무결성을 점검하고 개선합니다.
현재 구현 상태: ✅ 스크립트 완료
# 전체 린트 실행
python3 scripts/vault-lint.py
# vault-qa.py에서도 실행 가능
python3 scripts/vault-qa.py --lint체크 항목
| 체크 | 설명 | 심각도 |
|---|---|---|
| 고아 노트 | MOC/sidebar에 링크되지 않은 노트 | 🔴 |
| 깨진 링크 | 존재하지 않는 파일 참조 | 🔴 |
| 위키링크 | [[ ]] 형식 (Docsify에서 깨짐) | 🔴 |
| 프론트매터 | 필수 필드 누락, 금지 태그 | 🟡 |
| 관련 노트 | 유사 태그 노트 간 링크 누락 | 🟡 |
| 임베딩 | embedding_ready: false 노트 | 🟡 |
첫 린트 결과 (2026-04-04)
총 노트: 133개
고아 노트: 8개
깨진 링크: 8개
프론트매터 문제: 189개 (대부분 created/modified 누락)
위키링크: 54개 (Docsify 호환 불가)
임베딩 미생성: 119개
자동 수정 가이드
고아 노트 → MOC/sidebar에 링크 추가: 에이전트에게 “린트에서 발견된 고아 노트들을 MOC와 sidebar에 추가해줘”라고 요청.
위키링크 → 표준 링크 변환:
[[2026-03-29-memento-skills]] → [Memento-Skills](2026-03-29-memento-skills.md)
프론트매터 → 필드 추가: 파일 생성일(또는 파일명의 날짜)로 created/modified 필드 보완.
전체 파이프라인 (에이전트가 자동 실행)
에이전트에게 다음과 같이 요청하면 전체 파이프라인이 자동 실행됩니다:
"context-vault 정기 점검해줘"
에이전트는 다음을 수행합니다:
vault-lint.py실행 → 이슈 목록 획득- 이슈 자동 수정 (고아 노트 링크, 위키링크 변환, 프론트매터 보완)
vault-qa.py --stats실행 → vault 성장 추적- 수정 사항 커밋 & 푸시
향후 개선 (Further Explorations)
QMD 임베딩 안정화
- GPU 환경에서
qmd embed실행 또는 API 기반 임베딩으로 대체 - OpenAI/Anthropic embeddings API 활용
Fine-tuning (장기적)
- vault가 충분히 커지면(40만+ 단어) 합성 데이터 생성
- 개인 지식 베이스에 특화된 모델 파인튜닝
자동 크롤링
- 관심 키워드 모니터링 → 자동 수집 → 자동 노트 생성
- GitHub Trending, arXiv, RSS 피드 자동화
Related
Sources
- Tweet: Andrej Karpathy
- Context Vault: https://github.com/jeongsk/context-vault