Skip to content

Latest commit

 

History

History
122 lines (85 loc) · 8.04 KB

File metadata and controls

122 lines (85 loc) · 8.04 KB

KnowledgeFabric

친구의 뇌를 빌린다. 내 뇌는 지킨다.


이런 이야기입니다

민호는 몇 달째 로컬 LLM-Wiki를 쌓아오고 있었습니다. 인프라 트릭, 힘들게 얻은 설정 노하우, 전부 Markdown으로 개인 레포에 저장해뒀죠. 그러다 벽에 부딪혔습니다 — 자기 지식만으로는 풀 수 없는 Kubernetes 스케줄링 문제였습니다.

병민에게 메시지를 보냈습니다. 병민은 파일 하나를 툭 던져줬습니다. 맥락도 없고, 통합하기도 어렵고, 이미 반쯤 낡은 정보였습니다.

KnowledgeFabric을 쓰는 민호는 대신 대시보드를 열고 병민의 Wiki에 연결합니다. 클릭 한 번에 병민의 k8s/ 노드들이 민호의 에디터 사이드바에 나타납니다. 민호의 레포에 복사된 것도 아니고, git 히스토리를 오염시키는 것도 아닙니다. 읽기 전용 네트워크 드라이브처럼 그냥 거기 있는 것입니다. 민호는 읽고, 자기 언어로 정리해서 my-k8s-strategy.md를 씁니다. 원본을 역링크로 연결한 채로. 20분 만에 문제가 해결됩니다.

대시보드에는 이렇게 표시됩니다: "이번 주 병민의 지식을 활용해 해결한 문제 3건." 민호는 감사 알림을 보냅니다. 병민은 더 많은 것을 공유하기 시작합니다.

이것이 KnowledgeFabric입니다.


KnowledgeFabric이란?

KnowledgeFabric은 친구의 큐레이션된 LLM-Wiki 지식을 내 로컬 환경으로 바로 빌려올 수 있는 경량 브리지입니다. 파일을 복사하지 않아도 되고, git 히스토리를 오염시키지 않아도 되며, 친구에게 작업 방식을 바꾸라고 요청할 필요도 없습니다.

내 지식은 내 것. 친구 지식은 친구 것. 연결 그 자체가 제품입니다.


핵심 가설

# 가설 검증 지표
A 개인형 LLM-Wiki 환경이 파편화될 것이며, 연결 수요가 폭증할 것이다 '친구 연결' 요청 빈도
B 파편화된 지식을 그래프로 연결하는 것이 단순 검색보다 가치 있을 것이다 LLM 답변에서 외부 지식 활용률
C '지식 불균형 경고'와 선택적 공유가 심리적 장벽을 낮출 것이다 공유 수락률
D Raw 데이터 동기화 없이 MCP 기반 실시간 쿼리가 효율적일 것이다 로컬↔원격 지식 조회 latency + 정합성
E Auto-Ingest된 데이터는 Insight 품질을 떨어뜨린다 — 수집보다 큐레이션이 낫다 수동 편집 노드 vs. 자동 수집 노드의 실제 참조 횟수
F 지식의 가치는 양이 아니라 맥락에 비례한다 생성 답변 품질 + 사용자 피드백(좋아요/수정)

아키텍처

┌─────────────────────────────────────────────────────┐
│                     WebApp                          │
│  대시보드 · 공유 설정 · 알림 · 그래프 뷰              │
└───────────────────┬─────────────────────────────────┘
                    │ OAuth / 메타데이터만 처리
┌───────────────────▼─────────────────────────────────┐
│                    Backend                          │
│  인증(GitHub OAuth) · 접근 토큰 매핑                 │
│  Raw 데이터 미저장 — 지식 주권은 각 사용자에게        │
└───────────────────┬─────────────────────────────────┘
                    │ MCP 프로토콜
┌───────────────────▼─────────────────────────────────┐
│               MCP Bridge                            │
│  Local MCP  — 내 llm-wiki 읽기                      │
│  Remote MCP — 친구 레포를 가상 마운트으로 읽기        │
│  제공 도구: list_shared_nodes · read_shared_node ·   │
│            search_shared_knowledge                  │
└───────────────────┬─────────────────────────────────┘
                    │ 온보딩
┌───────────────────▼─────────────────────────────────┐
│                   Skills                            │
│  CLI: MCP 설치 · GitHub OAuth 로그인 ·               │
│       index.md 노드 자동 등록                        │
└─────────────────────────────────────────────────────┘

지식 흐름: 친구의 데이터는 친구의 레포에 그대로 존재합니다. MCP가 필요할 때만 가상 shared/ 네임스페이스로 불러옵니다. Obsidian, VS Code, 로컬 LLM 클라이언트 모두 호환됩니다. 커밋 없음. 충돌 없음. 연결 해제 = 즉시 삭제.


MLP: 3시간 스프린트

역할 분담

역할 담당 스택 목표
Frontend Next.js + shadcn/ui + Vercel 대시보드 UI: 친구 목록, 공유 노드 목록, 참조 그래프
Backend Supabase(Auth/DB) + GitHub API GitHub OAuth, 접근 토큰 매핑, 공유/알림 API
LLM_Wiki Python + MCP SDK 로컬 index.md 파서, 원격 fetch, shared/ 동기화 데몬

스프린트 타임라인

시간 Frontend Backend LLM_Wiki
0~1h 레이아웃 + 대시보드 뼈대 GitHub OAuth + DB 세팅 index.md 파서 + 노드 구조화
1~2h 친구 목록 뷰 + 상태 관리 공유 노드 목록 조회 API 원격 MCP fetch 로직
2~3h 불균형 경고 UI + 그래프 알림 + 공유 상태 변경 API shared/ 폴더 동기화(읽기 전용)

데모 체크리스트 (4장면)

  • 연결 — 민호가 대시보드 URL로 래영을 친구로 등록
  • 공유 — 래영의 index.md가 민호의 대시보드에 공유 노드로 표시
  • 참조 — 민호가 노드 클릭 → ~/shared/laeyoung/ 폴더에 파일 생성
  • 시각화 — 대시보드 그래프에 민호 → 래영 지식 엣지 표시

미래 마일스톤

MLP 범위 입니다. 나중을 위해 파킹:

  • 신뢰도 점수 — 자동 수집 노드에 Unverified 태그 부여, 신뢰도 기반 Weighted RAG
  • 지식 수명 주기 관리 — 연결성 낮은 자동 수집 노드 정기 정리
  • CC 라이선스 상호성 — "내 것 빌렸으면 너도 공개해" 공유 정책 강제
  • 자동 동기화 데몬 — 수동 트리거 없이 shared/ 자동 최신화
  • Obsidian 플러그인 — 파일 시스템 sync 없이 네이티브 사이드바 통합

핵심 설계 결정

GitHub App 불필요. GitHub OAuth + PAT로 충분합니다. 이 규모에서 GitHub App은 설치 오버헤드만 늘릴 뿐 실질적 이점이 없습니다.

백엔드에 Raw 데이터 미저장. 백엔드는 인증 토큰과 메타데이터만 저장합니다. 지식 주권은 각 사용자에게 있습니다 — 친구의 데이터는 서버에 복사되지 않습니다.

git clone 대신 가상 마운트. 친구의 파일은 .gitignore에 등록된 shared/{이름}/ 디렉토리에 위치합니다. 내 git 히스토리는 깨끗하게 유지됩니다. 친구 연결 해제 시 파일이 즉시 삭제됩니다.

index.md가 진실의 단위. 모든 llm-wiki에 기본으로 포함됩니다. 이 파일 하나만 잘 가져오면 친구의 지식 그래프를 매핑하기에 충분합니다 — 레포 전체를 크롤링할 필요가 없습니다.