docs: 로빙 컨테이너 아키텍처 설계 문서 추가
- 사용자별 독립 컨테이너 아키텍처 설계 - 대시보드-로빙 컨테이너 통신 구조 - 수면/각성 시스템과 베드 상태 반성 시스템 - README.md에 새 문서 링크 추가 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
3a844d1390
commit
bd9dfa771f
@ -10,6 +10,7 @@ Slack 기반 AI 어시스턴트 **로빙(Robeing)** 프로젝트의 모든 문
|
|||||||
### 아이디어 및 설계 문서
|
### 아이디어 및 설계 문서
|
||||||
- [MVP 개발 개요](./docs/ideas/00_%20MVP%20개발%20개요.md)
|
- [MVP 개발 개요](./docs/ideas/00_%20MVP%20개발%20개요.md)
|
||||||
- [로빙 MVP 계획](./docs/ideas/00_로빙_MVP_계획.md)
|
- [로빙 MVP 계획](./docs/ideas/00_로빙_MVP_계획.md)
|
||||||
|
- [로빙 컨테이너 아키텍처 설계](./docs/ideas/로빙_컨테이너_아키텍처_설계.md)
|
||||||
- [통합 지식베이스 로빙 프로젝트](./docs/ideas/00_통합_지식베이스_로빙_프로젝트.md)
|
- [통합 지식베이스 로빙 프로젝트](./docs/ideas/00_통합_지식베이스_로빙_프로젝트.md)
|
||||||
- [MOC 프로젝트 관련 문서들 집합](./docs/ideas/00_MOC_프로젝트%20관련%20문서들%20집합.md)
|
- [MOC 프로젝트 관련 문서들 집합](./docs/ideas/00_MOC_프로젝트%20관련%20문서들%20집합.md)
|
||||||
- [정보의바다 프로젝트 개요](./docs/ideas/00_정보의바다%20프로젝트%20개요.md)
|
- [정보의바다 프로젝트 개요](./docs/ideas/00_정보의바다%20프로젝트%20개요.md)
|
||||||
|
|||||||
225
docs/ideas/로빙_컨테이너_아키텍처_설계.md
Normal file
225
docs/ideas/로빙_컨테이너_아키텍처_설계.md
Normal file
@ -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
|
||||||
|
**상태**: 설계 완료, 구현 준비 중
|
||||||
Loading…
x
Reference in New Issue
Block a user