TrendShift · Personal Knowledge Brain

gbrain — AI 에이전트에게
"기억하는 뇌"를 달아주기

YC 대표 Garry Tan이 12일 만에 만들어 17,888페이지·4,383명·723개 회사를 자동 관리하는 Postgres 기반 개인 지식 두뇌.

garrytan/gbrain · TypeScript · MIT · TrendShift 17위 2026-05-20
00 — 들어가며Context

먼저, "에이전트의 외장 해마"가 뭔가?

왜 지금 이런 두뇌가 필요한가.

2024~2026년 사이 Claude·ChatGPT 같은 에이전트가 빠르게 똑똑해졌지만, 한 가지 약점이 남았다 — 잘 잊어버린다는 것. 세션이 끝나면 어제 얘기한 내용도, 1시간 전 받은 이메일도 사라진다. 그래서 사용자는 매번 같은 컨텍스트를 다시 붙여넣고 있다.

해결책은 보통 두 갈래다 — (1) 모델의 컨텍스트 윈도를 더 키우거나, (2) 외부 DB에 사실을 적어두고 그때그때 검색해서 끼워넣는 RAG. gbrain은 두 번째 길을 택하되, 거기에 "자기 배선 지식 그래프"를 더해 벡터 검색만으로는 닿지 못하는 답까지 끌어낸다.

Term · 용어
RAG (Retrieval-Augmented Generation, 검색 증강 생성)
LLM에 답변시키기 전에 외부 DB에서 관련 문서를 먼저 찾아 컨텍스트에 끼워넣는 패턴. 모델이 모든 지식을 머리에 가진 게 아니라, 도서관(DB)에 가서 책을 펴보고 답하는 구조라고 생각하면 된다.
Term · 용어
하이브리드 검색 (Hybrid Retrieval)
"의미가 비슷한" 벡터 검색과 "단어가 똑같은" 키워드 검색(BM25)을 함께 돌리고 결과를 합치는 전략. 한쪽이 놓치는 결과를 다른 쪽이 잡아내서 정확도가 단일 방식보다 크게 올라간다.
Term · 용어
지식 그래프 (Knowledge Graph)
엔티티(사람·회사 같은 노드)와 관계(invested_in, works_at 같은 엣지)로 표현된 데이터 구조. "Bob이 이번 분기에 어디에 투자했어?" 같은 다중 홉 사실 관계 질문에 강하다 — 벡터 검색은 이런 질문에 약하다.
Term · 용어
MCP (Model Context Protocol)
앤스로픽이 만든 "LLM ↔ 외부 도구" 표준. stdio·HTTP 두 트랜스포트를 지원하며 Claude Desktop·Cursor·Windsurf·ChatGPT 같은 클라이언트들이 같은 도구를 공유할 수 있게 한다.
01 — 한 줄 요약TL;DR

이 프로젝트의 핵심 메시지

한 문장으로 줄이면.

Core Message

"ChatGPT 같은 에이전트의 옆에 붙는 작은 외장 해마 — 회의·이메일·트윗·음성통화를 받아 정리해두면, 에이전트가 매번 외부 API를 부르기 전에 먼저 이 두뇌부터 뒤져본다."

gbrain은 마크다운 파일들을 Postgres에 동기화해두고, 하이브리드 검색(벡터+키워드)자기 배선 지식 그래프로 답을 찾아주는 CLI 겸 MCP 서버다. 핵심은 — 모든 페이지에 자동으로 [[wiki/people/bob]] 같은 위키링크를 추출해 그래프 엣지를 만들고, 그래프 탐색을 검색 파이프라인에 끼워 넣어 "벡터로만은 안 잡히던" 다중 홉 사실 관계 질문에 답한다.

YC 대표 Garry Tan이 자기 업무용으로 12일 만에 만들어 매일 돌리고 있다는 게 가장 큰 신뢰 포인트. "thin harness, fat skills"(코어는 얇게, 도메인 지식은 마크다운 스킬에) 철학을 가장 잘 보여주는 실전 사례다.

02 — 왜 주목받는가Why now

2026년 5월, 트렌딩에 오른 이유

시대적 배경 + 경쟁 우위.

① 유명인이 직접 만들어서 직접 쓴다

이 레포의 가장 큰 신뢰 포인트는 Garry Tan(현 Y Combinator 사장)이 본인 업무용으로 만들고 매일 돌리고 있다는 점이다. README에 적힌 운영 규모 (작성 시점 2026-05-20 기준):

② RAG 단점을 "그래프"로 보완

일반적인 RAG는 "의미가 비슷한 문장"만 잘 찾아온다. 그래서 "Bob이 이번 분기에 어디에 투자했어?" 같은 사실 관계 질문엔 약하다. gbrain은 모든 페이지에 위키링크([[wiki/people/bob]])를 자동 추출해 그래프 엣지를 LLM 호출 없이 자라게 한다. tree-sitter로 마크다운을 파싱해 엔티티 참조를 패턴 매칭으로 뽑는 게 비밀.

Benchmark · 자체 측정 결과

자체 벤치마크(BrainBench, Opus가 생성한 240페이지 코퍼스)에서 P@5 49.1% / R@5 97.9%를 기록했고, 그래프를 끈 변형(vector-only RAG)보다 +31.4 포인트 더 정확했다. 같은 데이터셋에서 ripgrep+BM25 같은 키워드 검색도 비슷한 차이로 이김.

③ "30분이면 끝나는 셋업" — 진입장벽이 낮다

"Postgres 같은 서버 깔아라"부터 막힐 게 뻔하니까 PGLite(WASM으로 도는 임베디드 Postgres)를 기본으로 쓴다. 도커도, 서버도 필요 없이 2초 만에 DB가 뜨고, 그다음은 "API 키 묻는 질문에 답만 하면" 끝.

④ MCP · Claude Code · Cursor 등 어디든 꽂힌다

MCP 서버로 동작하므로 Claude Desktop, Claude Code, Cursor, Windsurf, ChatGPT, Perplexity, Cowork에서 그대로 사용할 수 있다. gbrain serve 한 줄.

경쟁 비교 — 일반 RAG vs gbrain

비교 항목일반 RAG (벡터 only)gbrain (하이브리드 + 그래프)
의미 검색벡터 1종벡터 + BM25 + 그래프 RRF
다중 홉 질문약함typed link로 강함
DB 설치Pinecone·Qdrant 등 별도PGLite(WASM) 기본, 0 설치
외부 노출직접 API 작성MCP 자동 (30+ 도구)
밤 사이 정리없음cron + dream cycle
관리자 UI없음React SPA 임베드
03 — 기술 스택Stack

전체 기술 지도

런타임 · DB · 검색 · MCP · 잡 큐.

런타임 · 언어

TypeScript + Bun

  • TypeScript — 타입 안정성 + 에이전트 친화적 문서화
  • Bun ≥ 1.3.10 — Node보다 빠른 시작, bun build --compile로 OS별 단일 바이너리 생성
  • CLI 진입점src/cli.tsgbrain init, gbrain doctor 등 모든 명령어 라우팅

데이터베이스 · 검색

두 엔진, 하나의 계약

  • PGLite 0.4.3 — Postgres 17을 WASM으로 컴파일한 임베디드 DB. 50K 페이지 이하 개인용에 권장
  • Postgres + pgvector — Supabase나 셀프 호스팅. 대규모/팀 공유/다중 머신 배포용
  • 두 엔진이 같은 BrainEngine 인터페이스(약 47개 오퍼레이션)를 구현

인덱스 · 알고리즘

  • pgvector + HNSW — 벡터 검색 인덱스, 의미가 비슷한 청크 찾기
  • pg_trgm — 트라이그램 기반 타이틀 유사 검색 인덱스
  • Postgres FTS (ts_rank + websearch_to_tsquery) — 전문 검색(키워드)
  • RRF (Reciprocal Rank Fusion) — 벡터·키워드 결과 순위를 1/(k+rank) 공식으로 합치는 알고리즘

임베딩 · 리랭커

  • 기본값 ZeroEntropy(zembed-1 1280차원 + zerank-2). OpenAI보다 2.2× 빠르고 2.6× 저렴하다고 주장
  • 폴백 14종 — OpenAI, Voyage, Gemini, Azure, MiniMax, Alibaba DashScope, Zhipu, Ollama(로컬), llama.cpp, LiteLLM 프록시 등

LLM SDK

  • @ai-sdk/anthropic · @ai-sdk/google · @ai-sdk/openai · @ai-sdk/openai-compatible · @anthropic-ai/sdk
  • Vercel의 ai SDK를 기본 추상화로 사용 — 한 줄 바꾸면 모델 교체 가능

MCP · 서버 · 인증

  • @modelcontextprotocol/sdk 1.29.0 — 표준 MCP 구현체
  • Express 5 + cookie-parser + cors + express-rate-limit
  • OAuth 2.1 + DCR(Dynamic Client Registration) — HTTP MCP 모드의 인증
  • scope-gated accessread / write / admin 스코프로 권한 통제

유틸리티 · 파일 처리

  • gray-matter — 마크다운 프론트매터 파싱
  • marked — 마크다운 → HTML
  • web-tree-sitter + tree-sitter-wasms — 코드 청크 분할
  • @dqbd/tiktoken — 토큰 카운트
  • @jsquash/png · @jsquash/avif · heic-decode · exifr — 이미지 ingest
  • @aws-sdk/client-s3 — Supabase Storage/S3 첨부파일
  • zod — 런타임 스키마 검증

잡 큐 — "Minions"

  • BullMQ 스타일 API를 Postgres만으로 재구현 — Redis 없이 동작
  • two-phase pending → done 영속성으로 크래시에서도 살아남음
  • LLM 도구 루프를 "fire-and-forget Promise"가 아닌 durable subagent(영속적 서브에이전트)로 돌림

관리자 UI

  • admin/ 디렉토리에 별도 React SPA
  • build:admin-embedded 스크립트가 빌드 결과물을 단일 바이너리에 임베드
  • gbrain serve --http/admin 페이지 + SSE 라이브 피드 제공
04 — 아키텍처Design

시스템 구조와 핵심 설계 패턴

전체 루프 → 두 엔진 → 자기 배선 그래프 → 하이브리드 검색 → 잡 큐 → 보안.

전체 루프 — "신호 → 검색 → 응답 → 쓰기 → 자동 연결 → 동기화"

  signal   →   search   →   respond   →   write   →   auto-link   →   sync
  (every    (brain-first  (informed     (page +    (typed edges     (cron
  message)  retrieval)    by context)   timeline)  + backlinks)     keeps fresh)
Analogy · 비유로 풀기

비서가 메일을 받을 때 ① 일단 다이어리부터 펴고(brain-first 검색), ② 다이어리에 적힌 맥락으로 답장 쓰고, ③ 새 사실은 다이어리에 추가하면서, ④ "이 사람 = 그 사람"이라는 화살표를 그어두고, ⑤ 밤에 다이어리를 정리(cron)하는 흐름과 같다.

두 개의 엔진, 하나의 계약

┌─────────────────────────────────────────────────────────────┐
│              src/core/engine.ts (BrainEngine 인터페이스)     │
│   put_page · get_page · search · query · graph-query 등     │
│                  약 47개 오퍼레이션                          │
└──────────┬──────────────────────────────────┬───────────────┘
           │                                  │
   PGLite 엔진(default)                  Postgres+pgvector 엔진
   - WASM 임베디드                       - Supabase / 셀프호스팅
   - 서버/도커 불필요                    - 다중 머신 공유
   - ~50K페이지까지 권장                 - 대규모 / 팀용

CLI와 MCP 서버는 단일 소스에서 생성된다. 같은 47개 오퍼레이션을 두 가지 방식(셸 명령 vs MCP 도구)으로 노출하므로 사람과 에이전트가 같은 기능을 공유한다.

두 가지 조직 축 — Brain ⊥ Source

의미
Brain"어느 데이터베이스인가" — 내 개인 두뇌 / 팀이 마운트한 두뇌~/.gbrain, brain-host:3001
Source"두뇌 안의 어느 레포인가" — wiki, gstack, 에세이, 사내 KBwiki, yc-media

모든 페이지는 source_id 컬럼으로 태깅된다. .gbrain-source 닷파일이 라우팅을 결정하고, 6단계 우선순위 체인이 어디로 쓸지/읽을지 결정한다.

자기 배선 그래프 — LLM 호출 없이 엣지가 자란다

핵심 트릭 — 페이지를 쓸 때마다 마크다운에서 패턴 매칭만으로 엔티티 참조를 뽑아낸다.

# 페이지 본문 예시
오늘 [[wiki/people/bob]] 가 [[companies/acme-ai]] 에 100K USD를 invested_in.

# 자동으로 만들어지는 그래프 엣지
people/bob  --invested_in-->  companies/acme-ai

LLM API 호출 = 0. 단순히 tree-sitter로 마크다운을 파싱해 위키링크 + typed link(attended/works_at/invested_in/founded/advises 등)를 추출한다. 이게 "Bob이 어디 투자했어?" 같은 다중 홉 질문에 답할 수 있는 비밀이다.

하이브리드 검색의 내부

  query
    │
    ▼
  query expansion / 의도 인식 재작성
    │
    ├─→ Vector (HNSW on pgvector)    ┐
    ├─→ BM25 keyword (pg_trgm)       │── RRF (Reciprocal Rank Fusion)
    └─→ Graph traversal (multi-hop)  ┘
                                       │
                                       ▼
                              Source-tier 가중치
                                       │
                                       ▼
                           ZeroEntropy zerank-2 리랭커
                                       │
                                       ▼
                                  Top-K 결과

세 가지 모드(conservative / balanced / tokenmax)가 비용·품질의 다이얼을 미리 묶어둔다. 기본은 balanced.

잡 큐 — Minions

durable subagent가 핵심 개념. LLM 도구 루프가 도중에 크래시가 나도 pending → done 2단계 상태로 회복한다. 셸 잡(쉘 명령 실행)에는 감사 로그가 붙고, 자식 잡엔 캐스케이딩 타임아웃이, 외부 호출엔 rate lease가 걸린다.

밤사이 도는 "꿈 사이클(dream cycle)"

cron이 매시간/매일 돌리는 자율 정비 페이즈들:

Feature · v0.36.4.0 핵심 기능
"두뇌 건강 점수 90/100까지 자가 진료"

gbrain doctor --remediate --yes --target-score 90 --max-usd 5 한 줄로 의존성 순서(sync → extract → embed → consolidate)를 자동 계산하고, 단계 사이마다 점수를 다시 측정하며, 정해진 비용($5)을 넘으면 거부한다. cron으로 unattended 실행 가능.

보안 경계 — 신뢰된 로컬 vs 원격 에이전트

아주 중요한 설계 포인트. OperationContext.remote 플래그로 두 부류를 구분한다.

Trap · 함정
MCP에 붙은 원격 에이전트가 Anthropic 크레딧을 태움

모든 도구를 똑같이 열어두면, MCP를 거쳐 들어온 외부 에이전트가 사용자 모르게 비용 큰 작업(synthesize/patterns/consolidate)을 실행할 수 있다. 한 번 실수에 수십 달러가 날아간다.

Fix · 해결책
remote 플래그로 권한 이원화

remote=false(src/cli.ts 직접 호출)는 신뢰됨 → 모든 명령 허용. remote=true(src/mcp/server.ts)는 파일시스템 제한 강화 + 비용 큰 작업 금지. 같은 47개 op라도 호출 경로에 따라 다르게 동작한다.

05 — 디렉토리Repo map

레포 구조 해부

어디에 뭐가 있는지.

gbrain/
├── src/
│   ├── cli.ts                 # gbrain 명령어 엔트리포인트 (신뢰된 호출자)
│   ├── schema.sql             # Postgres 스키마 (pages/sources/edges/etc.)
│   ├── core/
│   │   ├── engine.ts          # BrainEngine 인터페이스 (47개 op 계약)
│   │   ├── engine-factory.ts  # PGLite vs Postgres 선택
│   │   ├── pglite-engine.ts   # WASM Postgres 구현체
│   │   ├── operations.ts      # remote=true/false별 권한 정책
│   │   ├── embedding.ts       # 14개 임베딩 공급자 추상화
│   │   ├── search/hybrid.ts   # 벡터+BM25+그래프 RRF
│   │   ├── link-extraction.ts # 위키링크 + typed link 파서
│   │   ├── ai/gateway.ts      # LLM 호출 게이트 (비용/속도/리트라이)
│   │   ├── minions/           # 잡 큐 (BullMQ-shaped, Postgres-native)
│   │   ├── cycle/             # synthesize/patterns/consolidate 페이즈
│   │   ├── calibration/       # voice gate, SVG 차트 렌더러
│   │   └── ...                # 50+ 모듈
│   ├── commands/              # gbrain init / doctor / sync / serve 등
│   ├── mcp/                   # MCP 서버 (stdio + HTTP/OAuth)
│   └── eval/                  # LongMemEval, BrainBench, replay
│
├── skills/                    # 총 43개 스킬
│   ├── RESOLVER.md            # 스킬 디스패처 (에이전트가 먼저 읽음)
│   ├── _AGENT_README.md
│   ├── _brain-filing-rules.md
│   ├── ingest/                # 회의/미디어/아이디어 ingest
│   ├── enrich/                # 사람·회사 자동 보강
│   ├── citation-fixer/        # 깨진 인용 수리
│   ├── daily-task-manager/    # 매일 할일 사이클
│   ├── cron-scheduler/        # 21개 cron 정의
│   └── soul-audit/            # 모순 감지
│
├── admin/                     # React SPA 관리자 대시보드
├── docs/
│   ├── architecture/          # topologies, brains-and-sources, RETRIEVAL
│   ├── mcp/                   # 각 MCP 클라이언트별 셋업
│   ├── integrations/          # 음성/이메일/임베딩 공급자별 레시피
│   └── ethos/                 # "thin harness, fat skills" 철학
├── recipes/                   # twilio-voice-brain 등 통합 레시피
├── evals/                     # LongMemEval 실행/덤프
├── examples/                  # 샘플 브레인 레포
├── templates/                 # 사람/회사/딜 마크다운 템플릿
├── test/                      # 단위 + E2E
├── scripts/                   # CI/검증/빌드 스크립트
│
├── package.json               # Bun + ai SDK + MCP SDK + pgvector
├── gbrain.yml                 # storage 정책 (db_tracked / db_only)
├── openclaw.plugin.json       # OpenClaw 플러그인 매니페스트
├── docker-compose.ci.yml      # 로컬 CI Docker 스택 (pgvector)
├── llms.txt / llms-full.txt   # LLM이 한 번에 빨아가는 문서 맵
├── AGENTS.md                  # 비-Claude 에이전트용 진입점
├── CLAUDE.md                  # Claude Code 전용 진입점
└── README.md
Analogy · 관전 포인트

llms.txt / llms-full.txt는 최근 OSS에서 떠오르는 표준이다. "에이전트가 GitHub에서 한 번의 fetch로 문서 전체를 빨아갈 수 있게" 모든 마크다운을 인라인으로 합친 파일이다. gbrain의 llms-full.txt는 무려 533KB 짜리 단일 파일.

06 — 학습 포인트What to learn

기술별 배울 것

8개 영역에서 무엇을 가져갈지 + 실습 아이디어.

① TypeScript + Bun 단일 바이너리

  • 배울 것bun build --compile로 OS별 단일 실행 파일 만들기, postinstall 훅을 통한 마이그레이션 자동화, exports 필드로 라이브러리 동시 노출

실습: 작은 CLI(메모 검색기 등)를 Bun으로 만들고 build:all로 darwin-arm64 + linux-x64 바이너리를 동시에 뽑아 GitHub Release에 올려보기

② PGLite — 서버 없는 Postgres

  • 배울 것 — Postgres가 WASM으로 컴파일되어 Node/Bun 안에서 도는 모델. SQLite를 대체하려는 시도, "에이전트용 임베디드 DB"라는 새 분야가 열리고 있음

실습: @electric-sql/pglite로 토이 노트 앱을 만들고 같은 코드를 Supabase로 갈아끼우기 — "두 엔진, 하나의 계약" 패턴 직접 경험

③ pgvector + HNSW + BM25 하이브리드 검색

  • 배울 것 — pgvector의 HNSW 인덱스 튜닝, RRF 공식(1/(k+rank)의 합), 키워드와 벡터를 합칠 때의 정규화 문제, 리랭커가 top-1을 60% 뒤집는다는 측정 결과

실습: 자신의 노트(또는 회사 위키)에 src/core/search/hybrid.ts의 RRF 로직을 옮겨붙여 "벡터만 vs 벡터+BM25"의 차이 직접 측정

④ MCP 서버 — stdio + HTTP/OAuth

  • 배울 것@modelcontextprotocol/sdk의 stdio·HTTP 트랜스포트, OAuth 2.1 + DCR로 원격 에이전트를 안전하게 받기, scope-gated tool exposure

실습: Express + MCP SDK로 "내 노션 검색해주는" MCP 서버를 띄우고 Claude Desktop에 연결

⑤ Postgres-native 잡 큐 (Minions)

  • 배울 것 — Redis 없이 Postgres만으로 BullMQ-shaped 큐를 짜는 법, advisory lock + SKIP LOCKED, durable subagent 패턴

실습: 10줄짜리 Postgres 큐를 직접 짜보고 "크래시 후 재시작 시 복구" 시나리오 시뮬레이션

⑥ 마크다운 = 시스템 오브 레코드

  • 배울 것 — "DB는 캐시, 진짜 데이터는 git에 있는 .md" 철학. db_tracked vs db_only 분리, soft-delete + 72시간 회복 윈도

실습: Obsidian 보관함을 gbrain에 sync해보고, git에서 파일을 지웠을 때 DB가 어떻게 따라가는지 관찰

⑦ Eval 파이프라인 — LongMemEval + replay

  • 배울 것 — 공개 벤치마크(LongMemEval)를 자기 시스템에 돌리는 법, eval replay(실 사용 쿼리를 캡처해 코드 변경에 다시 돌리기), cross-modal eval(서로 다른 공급자 모델 3개로 교차 채점)

⑧ "Thin harness, fat skills" 철학

  • 배울 것 — Claude Code 등의 스킬 시스템에서 하니스(코어 엔진)는 얇게, 스킬(markdown 파일)은 풍부하게 가져가는 설계. 스킬은 도구가 아니라 레시피로 본다
07 — 요구사항Setup

하드웨어·시스템 요구사항

규모별 최소 / 권장 사양.

구성최소권장
OSmacOS / Linux (x64, arm64)macOS arm64
런타임Bun ≥ 1.3.10최신 Bun
DB (소규모)PGLite (WASM, 0추가 설치)~50K 페이지까지 OK
DB (대규모)Supabase 무료 티어Supabase Pro 또는 셀프호스팅 Postgres + pgvector
RAM4GB8GB+ (PGLite WASM은 콜드 스타트가 무거움)
API 키Anthropic 또는 OpenAI 중 1개ZeroEntropy(임베딩/리랭커) + Anthropic(분석) + OpenAI(폴백)
월 운영 비용$0 (로컬 임베딩)$10~50/월 (search mode에 따라 25× 차이)
Docker불필요 (PGLite 모드)bun run ci:local용으로만
Trap · 비용 함정
검색 모드별 비용이 25배 차이난다

검색 모드conservative/balanced/tokenmax 중 무엇이냐에 따라 "한 번 쿼리당 비용"이 25배까지 차이난다. 처음 설치할 때 에이전트가 9-cell 비용 매트릭스를 출력하는데, 반드시 사용자에게 보여주고 동의받기가 설치 프로토콜에 명시돼 있다.

08 — 실습 과제Hands-on

직접 해볼 수 있는 6단계

난이도별 실습 — Easy → Hard.

실습 1 — 30분 셋업하기Easy

1) curl -fsSL https://bun.sh/install | bash 2) bun install -g github:garrytan/gbrain 3) gbrain init --pglite 4) gbrain doctor로 헬스체크 5) 샘플 마크다운 1개 만들고 gbrain search "내가 적은 키워드"

배우는 것: PGLite 임베디드 DB, gbrain CLI 구조, 하이브리드 검색 첫 호출

실습 2 — Claude Desktop에 MCP로 연결Easy

gbrain serve(stdio)로 띄운 뒤 Claude Desktop의 MCP 설정에 등록 → 채팅창에서 "내 두뇌에서 X 검색해줘" 명령. 응답이 두뇌 페이지를 인용하는지 확인.

배우는 것: MCP stdio 트랜스포트, scope-gated tool 노출, 클라이언트-서버 연결 흐름

실습 3 — Obsidian 보관함 마이그레이션Medium

본인의 Obsidian Vault를 gbrain의 "brain repo"로 삼아 gbrain sync. 위키링크가 typed edge로 변환되는 양상을 관찰. gbrain graph-query people/me --depth 2로 그래프 탐색.

배우는 것: 마크다운 → 그래프 자동 변환, sync 파이프라인, graph traversal API

실습 4 — 자체 스킬 만들기Medium

skills/skill-creator 디렉토리 구조를 베껴서 "일기 자동 정리" 스킬을 작성. RESOLVER.md에 트리거 키워드 등록 → 에이전트가 자동 디스패치.

배우는 것: "thin harness, fat skills" 철학, 스킬 디스패처 동작 원리

실습 5 — 검색 모드별 비용/정확도 측정Hard

1) GBRAIN_CONTRIBUTOR_MODE=1 환경변수 켜기 2) gbrain eval export --since 7d > base.ndjson 3) conservative/balanced/tokenmax 각각으로 gbrain eval replay 4) 비용·재현율(R@5)·정밀도(P@5)를 표로 비교 → 자기 사용 패턴에 맞는 모드 선택의 근거 마련

배우는 것: eval replay 패턴, 정확도/비용 트레이드오프 측정, contributor mode

실습 6 — 잡 큐(Minions) 패턴 이식Hard

src/core/minions/를 읽고 동일한 패턴(two-phase pending/done + Postgres advisory lock)을 자신의 사이드 프로젝트에 옮겨붙이기. "Redis 없는 BullMQ"라는 좋은 학습 사례.

배우는 것: Postgres-native 큐, advisory lock + SKIP LOCKED, durable subagent

09 — 학습 로드맵8 weeks

8주 심화 학습 로드맵

주차별로 따라가면 전체 스택 마스터.

Week 01
Postgres + pgvector 기초

pgvector 공식 README, CREATE EXTENSION vector;부터. HNSW vs IVFFlat 인덱스 비교. cosine vs L2 vs inner product. 직접 OpenAI 임베딩으로 100개 문서 검색 데모.

Week 02
RAG의 한계와 그래프 RAG

Microsoft GraphRAG 논문 읽기. gbrain의 link-extraction 모듈 정독. 위키링크/typed link로 LLM 호출 없이 엣지 만드는 패턴 직접 구현.

Week 03
MCP 프로토콜 마스터

Anthropic MCP 스펙 문서 → @modelcontextprotocol/sdk stdio·HTTP 두 트랜스포트 차이. OAuth 2.1 + DCR 흐름. src/mcp/server.ts의 scope-gated tool exposure 구현체 정독.

Week 04
잡 큐와 durable subagent

BullMQ 공식 문서 → src/core/minions/ 코드 정독. SKIP LOCKED·advisory lock·two-phase commit. 크래시 후 회복 시나리오 시뮬레이션.

Week 05
Eval 파이프라인

LongMemEval 데이터셋 다운로드 → gbrain eval longmemeval 직접 실행. 자신의 시스템에서 P@5/R@5 측정 코드 작성. cross-modal eval(서로 다른 모델 3개로 교차 채점) 구현.

Week 06
Bun 단일 바이너리 배포

bun build --compile로 OS별 단일 실행 파일 만들기. GitHub Actions 매트릭스 빌드. postinstall 훅으로 DB 마이그레이션 자동화.

Week 07
"스킬" 시스템 설계 철학

gbrain의 43개 스킬, mattpocock/skills, obra/superpowers 비교. "thin harness, fat skills" 철학. 자신의 도메인(회계·법률·의료 등)에 맞는 스킬셋 직접 설계.

Week 08
클론 프로젝트 출시 (캡스톤)

위 7주의 모든 컴포넌트를 합쳐 "내 분야 전용 두뇌" 출시. 예: 독서 노트 두뇌, 음악 라이브러리 두뇌, 코드 리뷰 두뇌. README + llms.txt 작성.

10 — 키워드 사전Glossary

핵심 용어 한눈에

자주 마주칠 단어들.

RAG
Retrieval-Augmented Generation. LLM에 답변시키기 전 외부 DB에서 관련 문서를 먼저 찾아 컨텍스트에 끼워넣는 패턴.
하이브리드 검색
벡터(의미) + 키워드(BM25)를 합쳐 한쪽이 놓치는 결과를 다른 쪽이 잡게 하는 검색 전략.
RRF
Reciprocal Rank Fusion. 여러 랭킹의 결과를 1/(k+rank) 점수로 더해 합치는 단순·강력한 앙상블 기법.
pgvector
Postgres 확장. 벡터 컬럼을 추가하고 HNSW/IVFFlat 인덱스로 ANN 검색을 제공.
HNSW
Hierarchical Navigable Small World. 근사 최근접 이웃(ANN) 검색을 위한 그래프 인덱스.
PGLite
Postgres 17을 WASM으로 컴파일한 임베디드 DB. 서버/도커 없이 Node·Bun 안에서 도는 진짜 Postgres.
MCP
Model Context Protocol. 앤스로픽이 만든 "LLM ↔ 외부 도구" 표준. stdio/HTTP 두 트랜스포트.
지식 그래프
엔티티(노드)와 관계(엣지)로 표현된 데이터 구조. 벡터 검색이 못 잡는 사실 관계를 잡음.
typed link
단순 링크가 아니라 관계 종류(works_at, invested_in 등)가 명시된 그래프 엣지.
리랭커
1차로 뽑힌 top-K를 다시 정렬하는 모델. gbrain은 ZeroEntropy zerank-2를 기본 사용.
BullMQ
Node 생태계 표준 잡 큐. Redis 기반. gbrain은 이걸 Postgres-native로 재구현 = "Minions".
durable subagent
크래시·재시작에도 회복되는 영속적 LLM 서브에이전트. two-phase pending→done 상태로 구현.
dream cycle
"사람이 자는 동안 뇌가 정리하듯" 밤사이 cron으로 도는 자율 정비 페이즈들.
LongMemEval
장기 기억을 가진 대화형 어시스턴트를 평가하는 공개 벤치마크. HuggingFace에 공개됨.
llms.txt
"AI 에이전트가 한 번에 빨아갈 수 있게" 만든 사이트/레포 문서 인덱스 파일.
thin harness, fat skills
코어 엔진은 얇게 유지하고 도메인 지식은 스킬(markdown 레시피)에 두는 설계 철학.
OAuth 2.1 + DCR
Dynamic Client Registration. 원격 에이전트가 동적으로 인증 받을 수 있게 하는 OAuth 확장.
scope-gated
read/write/admin 같은 스코프로 API 호출 권한을 통제하는 방식.
Y Combinator
실리콘밸리의 가장 유명한 스타트업 액셀러레이터. Airbnb·Stripe·Dropbox 등을 배출. Garry Tan이 현 사장.
OpenClaw / Hermes
Garry Tan이 자신의 에이전트 배포에 사용하는 AI 에이전트 프레임워크. gbrain은 OpenClaw·Hermes 배포의 뇌 역할.
11 — 참고 링크Refs

더 깊이 파고들 자료

공식 · 관련 표준 · 학습 리소스.

공식 자료

핵심 인프라 · 표준

Action · 이번 주에 해볼 것

gbrain을 처음 만났다면 이 순서로 5단계.

  1. 30분 셋업. Bun 설치 → bun install -g github:garrytan/gbraingbrain init --pglitegbrain doctor로 헬스체크. PGLite 모드라 서버·도커 0개로 진짜 Postgres가 뜬다.
  2. 샘플 페이지 1개 + 검색. 마크다운 1개 만들고 [[wiki/people/bob]] 같은 위키링크 하나 넣어보기. gbrain searchgbrain graph-query로 같은 데이터를 두 가지 방식으로 꺼내보며 "벡터 vs 그래프"의 직관을 잡기.
  3. Claude Desktop에 MCP 연결. gbrain serve로 stdio MCP 서버를 띄우고 Claude Desktop 설정에 등록. 채팅창에서 "내 두뇌에서 X 검색해줘"가 실제로 두뇌 페이지를 인용하는지 확인.
  4. Obsidian Vault 동기화. 본인의 Obsidian 보관함을 brain repo로 삼아 gbrain sync. 위키링크가 typed edge로 자동 변환되는 모습을 관찰. LLM 호출 없이 그래프가 자라는 게 핵심.
  5. gbrain doctor --remediate 한 줄. 비용 한도($5)와 목표 점수(90)를 주고 자율 자가 진료를 돌려보기. 의존성 순서(sync → extract → embed → consolidate)를 자동 계산해서 단계별로 점수를 다시 측정하는 동작을 직접 확인.
원문 · garrytan/gbrain (GitHub) · 2026-05-20 · TrendShift 17위 · 본 문서는 인범님의 TrendShift 정리 프로젝트 자동화 일부로 생성된 학습 자료