- session-logs, blogwatcher, summarize, whisper, gitea, himalaya, skill-creator SKILL.md - SKILL.md 인덱스 업데이트 (16개 스킬) - 311/314/315 상위 SSOT 중복 제거 + 링크 수정 - Phase 1-3 결과 + 테스트 결과 + evaluation 트러블슈팅 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
134 lines
5.7 KiB
Markdown
134 lines
5.7 KiB
Markdown
---
|
|
date: 2026-03-25
|
|
subject: 로빙 신규 스킬 7개 적용 계획
|
|
writer: 24-claude (총괄)
|
|
sources: 24-Cursor(스킬 구조), 24-Codex(rb8001 호출), 23-Cursor(SKILL.md 체계), 24-Gemini(외부 도구 조사)
|
|
---
|
|
|
|
# 로빙 신규 스킬 7개 적용 계획
|
|
|
|
## 1. 현재 스킬 아키텍처 요약
|
|
|
|
### 스킬 서비스 2가지 패턴
|
|
| 패턴 | 대표 | 네트워크 | rb8001 연동 | 적합한 경우 |
|
|
|------|------|----------|------------|------------|
|
|
| **email형** | skill-email | host 네트워크 | 양방향 콜백 (process + llm_callback) | 대화형, 내부 인증 필요 |
|
|
| **news형** | skill-news | 브리지 + robeing-network | 단방향 REST (LLM 게이트웨이 호출) | 수집형, 단순 REST |
|
|
|
|
### rb8001 스킬 호출 구조
|
|
```
|
|
사용자 메시지
|
|
→ IntentClassifier (SKILL.md name 기반 LLM 분류)
|
|
→ DecisionEngine (규칙/시맨틱/LLM fallback)
|
|
→ tool_registry (SKILL.md → OpenAI tool schema 동적 생성)
|
|
→ message_service (실행 + 결과 요약)
|
|
```
|
|
|
|
### 새 스킬 추가 시 필수 작업
|
|
| 작업 | 파일 |
|
|
|------|------|
|
|
| SKILL.md 작성 | `DOCS/skills/{name}/SKILL.md` |
|
|
| 인덱스 추가 | `DOCS/skills/SKILL.md` (목록 + 의도→스킬 매핑) |
|
|
| tool_registry 등록 | `rb8001/app/services/brain/tool_registry.py` (SKILL_DIR_ALLOWLIST) |
|
|
| 의도 타입 추가 | `rb8001/app/services/brain/decision_engine.py` (IntentType) |
|
|
| 실행 매핑 | `rb8001/app/services/message_service.py` |
|
|
| 환경변수 (외부 서비스) | `rb8001/app/core/config.py` (SKILL_*_URL) |
|
|
|
|
## 2. 신규 7개 스킬 적용 계획
|
|
|
|
### Phase 1 — 기존 인프라 활용 (빠름, 1-2일)
|
|
|
|
#### 1-1. session-logs (내장)
|
|
- **패턴**: rb8001 내장 (신규 서비스 불필요)
|
|
- **구현**: 기존 `conversation_repository`에 세션 검색·토큰 집계 API 추가
|
|
- **외부 의존**: 없음
|
|
- **수정 범위**: rb8001 router + repository 쿼리
|
|
- **SKILL.md 트리거**: `session_search`, `cost_check`, "저번에 뭐라 했지", "토큰 얼마 썼어"
|
|
|
|
#### 1-2. blogwatcher → skill-news 확장
|
|
- **패턴**: 기존 skill-news에 RSS 피드 기능 추가
|
|
- **구현**: `feedparser` (Python 네이티브, BSD, 6.0.12) 사용
|
|
- **외부 의존**: `pip install feedparser`
|
|
- **수정 범위**: skill-news에 RSS 엔드포인트 + DB에 구독 피드 테이블
|
|
- **SKILL.md 트리거**: `rss_subscribe`, `blog_watch`, "블로그 구독", "RSS 추가"
|
|
|
|
### Phase 2 — 신규 경량 서비스 (3-5일)
|
|
|
|
#### 2-1. summarize
|
|
- **패턴**: news형 (단방향 REST)
|
|
- **구현**: FastAPI + 크롤링(httpx/BeautifulSoup) + LLM 게이트웨이 요약
|
|
- **유튜브**: `youtube-transcript-api` (Python 네이티브, MIT, 6.5k★) 자막 추출 → LLM 요약
|
|
- **포트**: 8516 (제안)
|
|
- **SKILL.md 트리거**: `summarize_url`, `youtube_summary`, "이 링크 요약", "유튜브 요약"
|
|
|
|
#### 2-2. whisper (skill-whisper)
|
|
- **패턴**: news형 (단방향 REST)
|
|
- **구현**: OpenAI Whisper API 호출 (로컬 GPU 없으므로 API 우선)
|
|
- **외부 의존**: `OPENAI_API_KEY` (이미 있음)
|
|
- **포트**: 8517 (제안)
|
|
- **SKILL.md 트리거**: `transcribe`, `voice_to_text`, "음성 파일 텍스트로", "회의록"
|
|
|
|
### Phase 3 — Gitea 연동 (5-7일)
|
|
|
|
#### 3-1. github → skill-gitea
|
|
- **패턴**: news형 (Gitea REST API 호출)
|
|
- **구현**: Gitea API v1 (Swagger, MIT, 54.5k★) + `python-gitea` SDK
|
|
- **기능**: PR/이슈 조회·생성, CI 상태, 코드 검색
|
|
- **포트**: 8518 (제안)
|
|
- **SKILL.md 트리거**: `git_issue`, `git_pr`, "PR 목록", "이슈 만들어"
|
|
|
|
### Phase 4 — 기존 확장 (7-10일)
|
|
|
|
#### 4-1. himalaya → skill-email 확장
|
|
- **패턴**: 기존 skill-email에 IMAP/SMTP 프로바이더 추가
|
|
- **구현**: `himalaya` CLI (Rust, MIT, 4.5k★) 래핑 또는 Python `imaplib`/`smtplib` 직접
|
|
- **수정 범위**: skill-email에 프로바이더 추상화 레이어 (Gmail + IMAP)
|
|
- **SKILL.md 트리거**: 기존 email 트리거 유지, 프로바이더 자동 선택
|
|
|
|
#### 4-2. skill-creator (메타 스킬)
|
|
- **패턴**: rb8001 내장 또는 스크립트
|
|
- **구현**: 템플릿 스캐폴딩 (SKILL.md + Dockerfile + docker-compose + main.py + config.py)
|
|
- **외부 의존**: 없음
|
|
- **트리거**: 개발자 전용, CLI 스크립트로 제공
|
|
- **OpenClaw 패턴 채택**: requires 선언, 설치 가이드 포함
|
|
|
|
## 3. 외부 도구 상태
|
|
|
|
| 도구 | ★ | 최근 업데이트 | Python | 라이선스 |
|
|
|------|---|-------------|--------|---------|
|
|
| whisper | 96.6k | 2026.03 | 네이티브 | MIT |
|
|
| Gitea API | 54.5k | 2026.03.12 | SDK 있음 | MIT |
|
|
| youtube-transcript-api | 6.5k | 2026.02 | 네이티브 | MIT |
|
|
| himalaya | 4.5k | 2026.02 | CLI 래핑 | MIT |
|
|
| feedparser | 2.3k | 2025.09 | 네이티브 | BSD |
|
|
| summarize CLI | ~100 | 2026.03 | CLI | MIT |
|
|
| blogwatcher | ~50 | 2026.01 | CLI (Go) | MIT |
|
|
|
|
## 4. 포트 할당 계획
|
|
|
|
| 스킬 | 포트 | 비고 |
|
|
|------|------|------|
|
|
| 기존 skill-email | 8501 | |
|
|
| 기존 skill-slack | 8502 | |
|
|
| 기존 skill-news | 8505 | + blogwatcher(RSS) 통합 |
|
|
| 기존 skill-rag-file | 8508 | |
|
|
| 기존 skill-calendar | 8512 | |
|
|
| 기존 skill-embedding | 8515 | |
|
|
| **신규 summarize** | 8516 | |
|
|
| **신규 skill-whisper** | 8517 | |
|
|
| **신규 skill-gitea** | 8518 | |
|
|
| session-logs | 내장 (8001) | rb8001 엔드포인트 |
|
|
| skill-creator | 스크립트 | 포트 불필요 |
|
|
|
|
## 5. 우선순위 요약
|
|
|
|
| 순위 | 스킬 | Phase | 이유 |
|
|
|------|------|-------|------|
|
|
| 1 | session-logs | 1 | 신규 서비스 불필요, 쿼리만 추가 |
|
|
| 2 | blogwatcher (RSS) | 1 | 기존 skill-news 확장, feedparser만 추가 |
|
|
| 3 | summarize | 2 | 즉시 가치 가장 높음, 경량 |
|
|
| 4 | whisper | 2 | API 키 이미 있음 |
|
|
| 5 | skill-gitea | 3 | Gitea 이미 운영 중 |
|
|
| 6 | himalaya | 4 | 기존 서비스 구조 변경 필요 |
|
|
| 7 | skill-creator | 4 | 메타 도구, 급하지 않음 |
|