diff --git a/README.md b/README.md index d8f757c..048b0d5 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,7 @@ Slack 기반 AI 어시스턴트 **로빙(Robeing)** 프로젝트의 모든 문 ### 아이디어 및 설계 문서 - [MVP 개발 개요](./docs/ideas/00_%20MVP%20개발%20개요.md) - [로빙 MVP 계획](./docs/ideas/00_로빙_MVP_계획.md) +- [로빙 컨테이너 아키텍처 설계](./docs/ideas/로빙_컨테이너_아키텍처_설계.md) - [통합 지식베이스 로빙 프로젝트](./docs/ideas/00_통합_지식베이스_로빙_프로젝트.md) - [MOC 프로젝트 관련 문서들 집합](./docs/ideas/00_MOC_프로젝트%20관련%20문서들%20집합.md) - [정보의바다 프로젝트 개요](./docs/ideas/00_정보의바다%20프로젝트%20개요.md) diff --git a/docs/ideas/로빙_컨테이너_아키텍처_설계.md b/docs/ideas/로빙_컨테이너_아키텍처_설계.md new file mode 100644 index 0000000..2436cbc --- /dev/null +++ b/docs/ideas/로빙_컨테이너_아키텍처_설계.md @@ -0,0 +1,225 @@ +# 로빙 컨테이너 아키텍처 설계 + +## 개요 +로빙 AI 에이전트는 사용자별로 독립적인 Docker 컨테이너에서 실행되며, 중앙 집중식 대시보드를 통해 관리됩니다. 각 로빙은 개별적인 성장 경로를 가지며, 효율적인 리소스 관리와 데이터 안전성을 보장합니다. + +## 전체 아키텍처 + +### 기본 구조 +``` +┌─────────────────────────────────────┐ +│ 대시보드 서버 (1개) │ +│ ┌─────────────────────────────┐ │ +│ │ 웹 인터페이스 │ │ +│ │ 사용자 A 로그인 → A 로빙 │ │ +│ │ 사용자 B 로그인 → B 로빙 │ │ +│ └─────────────────────────────┘ │ +│ ┌─────────────────────────────┐ │ +│ │ 공통 DB │ │ +│ │ users, robings, stats │ │ +│ └─────────────────────────────┘ │ +└─────────────────────────────────────┘ + │ + │ API 호출 + ▼ +┌─────────────────┐ ┌─────────────────┐ +│ 로빙 A 컨테이너 │ │ 로빙 B 컨테이너 │ +│ (2GB 메모리) │ │ (8GB 메모리) │ +│ 스탯: 초보 │ │ 스탯: 고급 │ +│ 스킬: 3개 │ │ 스킬: 15개 │ +└─────────────────┘ └─────────────────┘ +``` + +### 서비스 모델 +**컨테이너 호스팅 서비스**: 사용자가 개인화된 AI 에이전트를 컨테이너 형태로 생성하고 관리하는 서비스 + +## 핵심 구성 요소 + +### 1. 대시보드 서버 (중앙 집중형) +- **역할**: 모든 사용자의 로빙 관리 인터페이스 +- **구성**: 단일 서버, 단일 DB +- **기능**: + - 사용자 인증 및 세션 관리 + - 로빙 컨테이너 생성/관리 + - 스탯, 레벨, 스킬 설정 UI + - 성능 모니터링 대시보드 + +### 2. 로빙 컨테이너 (개별 격리) +- **역할**: 각 사용자의 개인 AI 에이전트 +- **특징**: 완전 독립적, 사용자별 고유 설정 +- **구성**: + - FastAPI 서버 + - 벡터 DB (ChromaDB) + - 개인 데이터 저장소 + +## 데이터 구조 + +### 대시보드 DB (공통) +```sql +-- 사용자 정보 +users: id, name, email, created_at + +-- 로빙 메타데이터 +robings: id, user_id, name, level, stats, container_id, status + +-- 스킬 및 아이템 설정 +skills: id, robing_id, skill_type, config, enabled + +-- 성능 통계 +performance: id, robing_id, date, tasks_completed, success_rate +``` + +### 로빙 컨테이너 DB (개별) +``` +벡터 DB 구조: +- 기억: 대화 내용, 업무 처리 기록 → 벡터 임베딩 +- 윤리: 판단 기준, 가치관 → 벡터 공간에서 유사성 검색 +- 감정: 상황별 반응 패턴 → 감정 벡터 +- 경험: 성공/실패 케이스 → 학습 데이터 +``` + +## 통신 구조 + +### 양방향 통신 시스템 +``` +대시보드 ←→ 로빙 컨테이너 + ↓ ↑ + 스킬/아이템 스탯/레벨 + 설정 전달 업데이트 +``` + +### API 엔드포인트 +``` +대시보드 → 로빙: +- POST /api/config/skills (스킬 설정) +- POST /api/config/stats (스탯 조정) +- GET /api/status (상태 확인) + +로빙 → 대시보드: +- POST /dashboard/api/stats (스탯 업데이트) +- POST /dashboard/api/performance (성능 데이터) +- POST /dashboard/api/events (이벤트 로그) +``` + +## 로빙 성장 시스템 + +### 성장 단계 +``` +레벨 1: 🥚 베이스 이미지 (거의 동일) + ↓ +레벨 5: 🐣 스탯 분기 시작 + ↓ +레벨 10: 🤖 개별화 완성 +``` + +### 등급 시스템 (선택적) +- **노멀**: 기본 성장 경로 +- **에픽**: 특수 스킬 언락 +- **레전드**: 최고 성능 + 희귀 능력 + +### 리소스 할당 (스탯 기반) +``` +초보 로빙: 1CPU, 2GB RAM, 10GB Disk +중급 로빙: 2CPU, 4GB RAM, 20GB Disk +고급 로빙: 4CPU, 8GB RAM, 50GB Disk +``` + +## 리소스 효율성 관리 + +### 수면/각성 시스템 +``` +활성 상태: 풀 리소스 컨테이너 + ↓ (비활성 5분 후) +수면 상태: 최소 컨테이너 (128MB 정도) + ↓ (사용자 접속 시) +각성 과정: 웨이크업 3-5초 대기 +``` + +### 침실 시스템 (데이터 보관) +``` +활성 볼륨: /robeing/active/ (현재 작업 중) +수면 볼륨: /robeing/bedroom/ (수면 상태) +백업 볼륨: /robeing/backup/ (백업 저장소) +``` + +## 베드 상태 반성 시스템 + +### 반성 프로세스 +``` +베드 진입 → 하루 활동 분석 + ↓ + 성공/실패 케이스 분류 + ↓ + 벡터 DB 재정렬 및 가중치 조정 + ↓ + 내일을 위한 행동 패턴 최적화 +``` + +### 구체적인 반성 작업 +- **기억 정리**: 중요한 대화/업무는 강화, 불필요한 것은 압축 +- **실수 학습**: 오늘 한 실수를 분석해서 다음엔 안 하도록 +- **감정 조율**: 과도한 반응이나 부적절한 감정 표현 수정 +- **스킬 효율성**: 어떤 스킬이 효과적이었는지 평가 + +### 침실 일기 형태 로그 +``` +- 오늘 처리한 업무: 15건 +- 성공률: 87% +- 개선 필요 영역: 이메일 톤앤매너 +- 내일 집중 포인트: 더 친근한 말투 +``` + +## 로빙 성장 사이클 + +### 일일 사이클 +``` +🌅 각성 → 활동 → 학습 → 🌙 수면 → 반성 → 성장 + ↑ ↓ + ←←←←←←←←← 개선된 상태로 복귀 ←←←←←←← +``` + +### 장기 성장 +- **레벨업**: 경험치 축적으로 스탯 향상 +- **스킬 습득**: 새로운 능력 언락 +- **개성 발달**: 사용자 상호작용 패턴 학습 + +## 구현 고려사항 + +### 1. 컨테이너 관리 +- **생성**: 사용자 로빙 생성 시 Docker API로 컨테이너 생성 +- **모니터링**: 컨테이너 상태 및 리소스 사용량 추적 +- **스케일링**: 온디맨드 리소스 할당 + +### 2. 보안 및 격리 +- **네트워크 격리**: 각 컨테이너는 독립적인 네트워크 +- **데이터 격리**: 로빙 간 데이터 접근 불가 +- **리소스 제한**: CPU, 메모리 사용량 제한 + +### 3. 백업 및 복원 +- **정기 백업**: 벡터 DB 및 설정 데이터 백업 +- **재해 복구**: 침실 볼륨에서 데이터 복원 +- **마이그레이션**: 서버 간 로빙 이전 지원 + +## 기대 효과 + +### 사용자 경험 +- **개인화**: 각자만의 고유한 AI 에이전트 +- **성장감**: 로빙의 발전 과정 관찰 +- **애착감**: 로빙의 개성과 반성 과정에 대한 관심 + +### 기술적 이점 +- **확장성**: 사용자 증가에 따른 자동 스케일링 +- **안정성**: 독립적인 컨테이너로 장애 격리 +- **효율성**: 리소스 사용량 최적화 + +### 비즈니스 모델 +- **컨테이너 호스팅**: 사용 시간 및 리소스 기반 과금 +- **프리미엄 기능**: 고급 스킬, 더 많은 리소스 제공 +- **개인화 서비스**: 맞춤형 AI 에이전트 제공 + +--- + +**문서 작성일**: 2025-07-05 +**작성자**: 로빙 개발팀 +**버전**: 1.0 +**상태**: 설계 완료, 구현 준비 중 \ No newline at end of file