BSage는 플러그인, 스킬, Knowledge Graph, 2nd Brain 네 가지 핵심 개념으로 구성됩니다.
플러그인 vs 스킬
BSage는 두 가지 확장 메커니즘을 제공합니다. 각각의 용도와 특성이 다르므로 정확히 이해하고 활용하는 것이 중요합니다.
비교 표
| 구분 | 플러그인 (Plugin) | 스킬 (Skill) |
|---|---|---|
| 구현 방식 | Python 코드 | Markdown (LLM 파이프라인) |
| 용도 | 외부 시스템과의 데이터 입출력 | 텍스트 처리 및 분석 |
| 실행 주체 | BSage 서버 (백그라운드) | LLM (요청 시 실행) |
| 상태 | 상시 실행 (이벤트 기반) | 필요 시 호출 |
| credential | 필요 (API 키, 토큰 등) | 불필요 |
| 커스터마이징 | 설정 파라미터 조정 | 프롬프트 수정 |
| 예시 | Telegram 봇, Email 수신, S3 업로드 | 요약, 번역, 위험 분석, 감정 분석 |
플러그인 상세
플러그인은 외부 시스템과 BSage를 연결하는 브릿지입니다. 세 가지 카테고리로 분류됩니다:
Input 플러그인
외부에서 BSage로 정보를 수집하는 플러그인입니다.
| 플러그인 | 동작 방식 | 트리거 |
|---|---|---|
| Telegram | Telegram 봇으로 받은 메시지를 수집 | 메시지 수신 시 즉시 |
| Slack | 지정된 Slack 채널의 메시지를 모니터링 | 메시지 수신 시 즉시 |
| Discord | Discord 봇을 통해 메시지를 수집 | 메시지 수신 시 즉시 |
| IMAP으로 이메일을 수신하여 수집 | 새 메일 도착 시 (폴링) | |
| RSS | RSS/Atom 피드를 구독하여 새 글 수집 | 피드 업데이트 시 (폴링) |
Process 플러그인
수집된 정보를 가공하고 분석하는 플러그인입니다.
| 플러그인 | 기능 | 적용 시점 |
|---|---|---|
| Summarizer | LLM 기반으로 긴 텍스트를 자동 요약 | 새 지식 수집 시 |
| Tagger | 내용을 분석하여 자동으로 태그를 부여 | 새 지식 수집 시 |
| DangerAnalyzer | 위험 요소, 민감 정보를 자동 탐지 | 새 지식 수집 시 |
Output 플러그인
BSage의 지식을 외부 시스템으로 내보내는 플러그인입니다.
| 플러그인 | 기능 | 출력 형식 |
|---|---|---|
| S3 | Amazon S3 버킷으로 파일 업로드 | 원본 파일 |
| Vault | Obsidian Vault로 노트를 자동 생성/업데이트 | Markdown |
스킬 상세
스킬은 Markdown으로 정의된 LLM 파이프라인입니다. 프롬프트 체인으로 구성되며, 텍스트를 입력받아 가공된 결과를 출력합니다.
| 특성 | 설명 |
|---|---|
| 정의 | Markdown 파일에 프롬프트, 입력/출력 형식, 체인 순서를 기술 |
| 실행 | 사용자 요청 또는 플러그인 파이프라인에서 호출 시 LLM이 실행 |
| 체이닝 | 여러 스킬을 순차적으로 연결하여 복합 처리 가능 |
| 예시 | 요약 스킬 → 번역 스킬 → 태깅 스킬 순서로 체이닝 |
플러그인과 스킬의 조합
플러그인과 스킬은 함께 사용할 때 가장 강력합니다:
[Input 플러그인] → [Process 플러그인/스킬] → [Output 플러그인]예시 파이프라인:
- Telegram(Input)으로 논문 링크를 수신
- Summarizer(Process)가 논문을 자동 요약
- Tagger(Process)가 분야, 키워드를 자동 태깅
- Vault(Output)로 Obsidian 노트를 자동 생성
Knowledge Graph
BSage의 Knowledge Graph는 수집된 모든 지식을 그래프 구조로 연결하여, 단순한 검색을 넘어 지식 간의 관계를 탐색할 수 있게 합니다.
그래프 구성 요소
| 요소 | 설명 | 예시 |
|---|---|---|
| 노드 (Node) | 개별 지식 항목 | ”PostgreSQL JSONB 인덱싱 가이드” |
| 엣지 (Edge) | 노드 간 관계 | 참조, 관련, 반박, 확장, 요약 |
| 속성 (Property) | 노드의 메타데이터 | 태그, 카테고리, 생성일, 출처 |
엣지 유형
지식 간의 관계는 다음 유형으로 분류됩니다:
| 엣지 유형 | 의미 | 예시 |
|---|---|---|
| 참조 (references) | A가 B를 인용/참조함 | 논문이 다른 논문을 인용 |
| 관련 (related_to) | A와 B가 같은 주제를 다룸 | 두 개의 PostgreSQL 관련 메모 |
| 반박 (contradicts) | A가 B의 내용과 상충 | 서로 다른 기술적 주장 |
| 확장 (extends) | A가 B의 내용을 확장/보완 | 기존 메모에 추가 정보 |
| 요약 (summarizes) | A가 B의 요약본 | Summarizer가 생성한 요약 |
Vector Store
Knowledge Graph는 Vector Store를 내장하여 의미 기반 검색을 지원합니다:
| 기능 | 설명 |
|---|---|
| 임베딩 생성 | 모든 지식 항목은 자동으로 벡터 임베딩이 생성됨 |
| 시맨틱 검색 | 키워드가 아닌 의미로 검색 (예: “DB 성능 개선” → JSONB 인덱싱 메모 매칭) |
| 유사도 기반 연결 | 임베딩 유사도가 높은 지식을 자동으로 “관련” 엣지로 연결 |
| 검색 정확도 | 코사인 유사도 기반 랭킹으로 가장 관련성 높은 결과 우선 표시 |
그래프 시각화
Knowledge Graph 페이지에서 제공하는 시각화 기능:
- 인터랙티브 그래프: 노드를 클릭, 드래그, 줌하여 탐색
- 클러스터링: 관련 노드가 자동으로 그룹화되어 표시
- 경로 탐색: 두 노드 사이의 관계 경로를 시각적으로 표시
- 시간축 필터: 특정 기간에 생성된 지식만 표시
- 태그 필터: 특정 태그의 지식만 하이라이트
2nd Brain 구조
BSage는 Digital Garden 방법론을 기반으로 세 가지 영역에서 지식을 관리합니다.
Seeds (씨앗)
| 항목 | 설명 |
|---|---|
| 정의 | 새로 입력된 원시 정보, 아직 정제되지 않은 상태 |
| 입력 방식 | Chat 입력, 플러그인 수집, 수동 추가 |
| 자동 처리 | Tagger가 자동 태깅, Summarizer가 요약 생성 |
| 상태 | 검토 대기 중 |
Garden (정원)
| 항목 | 설명 |
|---|---|
| 정의 | 정리되고 검증된 지식, 다른 지식과 연결된 상태 |
| 전환 조건 | 사용자가 Seeds를 검토하고 승인 / 자동 품질 기준 충족 |
| 특징 | Knowledge Graph에서 엣지로 다른 지식과 연결됨 |
| 활용 | 시맨틱 검색의 주요 검색 대상 |
Actions (실행)
| 항목 | 설명 |
|---|---|
| 정의 | 지식에서 도출된 실행 항목 (할 일, 아이디어, 프로젝트) |
| 생성 방식 | 사용자가 직접 생성 / BSage가 자동 추천 |
| 상태 관리 | TODO → IN_PROGRESS → DONE |
| 연결 | 해당 Action의 근거가 된 지식과 자동 연결 |
지식 흐름
외부 소스 → [Input 플러그인] → Seeds → [Process/스킬] → Garden → Actions
↕ ↕
Knowledge Graph Knowledge Graph- 외부 소스(Telegram, Email, RSS 등)에서 정보가 수집됩니다.
- Seeds로 저장되고 자동 태깅/요약이 수행됩니다.
- 사용자 검토 또는 자동 기준에 따라 Garden으로 승격됩니다.
- Garden의 지식에서 실행 항목이 도출되면 Actions가 생성됩니다.
- 모든 단계에서 Knowledge Graph에 노드와 엣지가 추가됩니다.
Last updated on