# rb10508 → rb8001 이식 가이드 ## 작성일: 2025-08-28 ## 작성자: 서버 관리자 ## 목적: rb10508의 검증된 기능을 rb8001에 선택적 이식 --- ## 현재 상태 비교 ### 메모리 사용량 - **rb8001**: 145MB (이미 경량화, skill-embedding 사용) - **rb10508**: 136MB (동일하게 skill-embedding 사용) - **결론**: 둘 다 이미 최적화됨, 메모리는 이식 대상 아님 ### ChromaDB 버전 - **rb8001**: v0.5.20 (구버전, 984KB) - **rb10508**: v1.0.16 (최신) - **이식 필요**: ✅ 업그레이드 권장 --- ## 핵심 이식 대상 (우선순위) ### 1. 🔥 메모리 알고리즘 개선 (즉시 가능) ```python # rb10508의 고급 알고리즘 - add_composite_scores(): 복합 점수 계산 - maximal_marginal_relevance(): 다양성 확보 + 중복 제거 # rb8001 현재 - 단순 유사도 검색만 사용 ``` **이식 방법**: `/app/memory/scoring.py` 함수만 복사 ### 2. 📁 다중 컬렉션 구조 (중요) ```python # rb10508: 메모리 타입별 분류 - episodic_memory # 대화 이벤트 - semantic_memory # 개념/지식 - procedural_memory # 작업 방법 # rb8001: 단일 컬렉션만 사용 ``` **이식 방법**: ChromaDB 마이그레이션 필요 ### 3. 🎮 Gmail 아이템 권한 체크 (높음) ```python # rb10508: growth.py 시스템 async def check_item_equipped(user_id, "gmail"): # 스킬 호출 전 권한 확인 if not is_equipped: return "Gmail을 먼저 연결해주세요!" # rb8001: 체크 없이 바로 호출 → 에러 발생 ``` **이식 방법**: `/app/core/growth.py` 추가 ### 4. 👤 사용자별 메모리 격리 (필수) ```python # rb10508: 사용자별 독립 컬렉션 f"{robeing_id}_{user_id}_episodic" # rb8001: 기본 컬렉션 공유 문제 ``` **이식 방법**: 컬렉션 명명 규칙 변경 --- ## 구현 상태 vs 설계 | 모듈 | rb8001 | rb10508 | 실제 구현 여부 | 이식 가치 | |------|--------|---------|--------------|-----------| | **MMR 알고리즘** | ❌ | ✅ | 구현 완료 | ⭐⭐⭐⭐⭐ | | **다중 컬렉션** | ❌ | ✅ | 구현 완료 | ⭐⭐⭐⭐ | | **아이템 체크** | ❌ | ✅ | 구현 완료 | ⭐⭐⭐⭐ | | **베이지안 메모리** | ❌ | 부분 | 부분 구현 | ⭐⭐⭐ | | **Langchain** | ❌ | ✅ | 구현 완료 | ⭐⭐⭐ | | **감정 시스템** | ❌ | 임시 | 미구현 | ⭐ | | **윤리 필터** | ❌ | 빈 파일 | 미구현 | ⭐ | --- ## 단계별 이식 계획 ### Phase 1 (즉시) 1. MMR 알고리즘 함수 복사 2. composite_scores 추가 3. 테스트 및 검증 ### Phase 2 (1주) 1. ChromaDB 1.0 업그레이드 2. 다중 컬렉션 마이그레이션 3. 사용자별 격리 구현 ### Phase 3 (2주) 1. growth.py 아이템 시스템 2. Gmail 권한 체크 미들웨어 3. 스킬 호출 전 검증 로직 --- ## 주의사항 - 감정/윤리 모듈은 설계만 존재, 실제 구현 없음 - Stats 시스템은 rb8001이 더 완성도 높음 (유지) - 이미 둘 다 skill-embedding 사용 중 (메모리 최적화 완료)