LLM Wiki의 핵심은 벡터 DB가 아니라 지식 아키텍처다

Obsidian frontmatter를 출발점으로, Google AI Agent 자료들이 말하는 RAG, 메모리, 품질, 거버넌스 관점에서 LLM Wiki를 다시 설계합니다.

LLM Wiki의 핵심은 벡터 DB가 아닙니다.
에이전트가 믿고 행동할 수 있는 지식 아키텍처입니다.

Google의 AI Agent 자료들을 보면 공통된 방향이 있습니다.

에이전트는 단순히 답변을 생성하는 모델이 아닙니다.
외부 지식을 검색하고, 도구를 호출하고, 상태를 기억하고, 때로는 업무를 실행하는 소프트웨어 시스템입니다.

그래서 LLM Wiki도 단순한 문서 저장소가 되면 안 됩니다.

Obsidian으로 생각해보면 더 분명합니다.

Obsidian 볼트는 Markdown 파일이 든 폴더입니다.
사람이 읽을 수 있고, Git으로 버전 관리할 수 있고, 코드로 파싱할 수 있습니다.

하지만 진짜 중요한 건 파일 내용이 아니라 맨 위의 메타데이터입니다.

1
2
3
4
5
6
7
8
9
---
domain: payments
owner: jane.kim
updated: 2026-01-08
source: adr
trust: high
agent_usable: true
audit_required: true
---

이 몇 줄이 LLM Wiki의 정보 아키텍처입니다.

어느 도메인의 지식인가.
누가 책임지는가.
최신인가.
얼마나 신뢰할 수 있는가.
에이전트가 직접 사용해도 되는가.
사용했다면 감사 로그를 남겨야 하는가.

Google의 RAG Engine 문서는 RAG 과정을 데이터 수집, 변환, 임베딩, 인덱싱, 검색, 생성의 흐름으로 설명합니다.
여기서 중요한 점은 임베딩이 첫 단계가 아니라는 겁니다. 먼저 데이터가 수집되고, 정리되고, 검색 가능한 단위로 변환됩니다. 벡터 DB는 그 뒤에 옵니다.

Google의 AI agent core concepts도 비슷한 방향을 말합니다. 에이전트의 데이터 아키텍처는 하나가 아닙니다. 장기 지식 베이스, 작업 중인 대화 상태, 그리고 행동을 기록하는 트랜잭션 메모리가 분리되어야 합니다.

그러면 LLM Wiki의 frontmatter도 단순 태그가 아닙니다.
에이전트의 메모리와 행동을 통제하는 계약입니다.

예를 들어 이런 코드가 먼저 필요합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import frontmatter
from pathlib import Path

def load_vault(vault: str):
for md in Path(vault).rglob("*.md"):
note = frontmatter.load(md)
meta = note.metadata

if meta.get("agent_usable") is False:
continue

yield {
"text": note.content,
"path": str(md),
"domain": meta.get("domain"),
"owner": meta.get("owner"),
"updated": meta.get("updated"),
"trust": meta.get("trust", "unknown"),
"audit_required": meta.get("audit_required", False),
}

보세요.
아직 벡터 DB는 등장하지 않았습니다.

먼저 해야 할 일은 “무엇을 임베딩할지”가 아니라 “무엇을 에이전트가 믿고 써도 되는지”를 정하는 겁니다.

Google의 Agent Quality 백서는 “agent quality is an architectural pillar”라고 말합니다. 품질은 마지막 테스트 단계가 아니라 아키텍처의 일부라는 뜻입니다.

LLM Wiki도 마찬가지입니다.

나중에 검색이 잘 되는지 확인하는 문제가 아닙니다.
처음부터 지식의 출처, 신뢰도, 권한, 사용 가능성, 감사 가능성을 설계해야 합니다.

특히 개발 조직에서는 이 차이가 큽니다.

코딩 에이전트가 코드를 수정하기 전에 관련 ADR을 읽는가.
API를 바꾸기 전에 계약 문서를 확인하는가.
장애 대응 코드를 만들기 전에 과거 incident를 찾아보는가.
보안 정책 문서는 직접 인용해도 되는가, 아니면 사람 검토가 필요한가.

이 질문에 답하지 못하면 LLM Wiki는 그냥 “문서를 많이 넣은 검색창”이 됩니다.

반대로 이 질문에 답할 수 있으면 LLM Wiki는 에이전트가 매 작업마다 호출하는 지식 API가 됩니다.

그래서 저는 LLM Wiki를 만들 때 이렇게 시작하는 게 맞다고 봅니다.

  1. Obsidian 같은 Markdown 기반 지식 저장소를 만든다.
  2. 모든 노트에 domain, owner, updated, trust, agent_usable을 붙인다.
  3. 문서를 heading 단위로 쪼갠다.
  4. path와 metadata를 유지한 채 검색 색인에 넣는다.
  5. 그다음에야 벡터 DB나 RAG 엔진을 붙인다.

벡터 DB는 중요합니다.
하지만 마지막 10%에 가깝습니다.

앞의 90%는 정보 아키텍처입니다.

LLM Wiki의 질문은 “어떤 임베딩 모델을 쓸까?”가 아닙니다.

먼저 물어야 할 질문은 이것입니다.

에이전트가 이 지식을 믿고 행동해도 되는가?


참고 자료

Comments

댓글

GitHub 계정으로 의견을 남길 수 있습니다. 댓글은 GitHub Discussions에 저장됩니다.