# 2025년 8월 15일 개발 작업 기록 ## 오전 11시 31분 ### 1. robeing-gateway 헬스체크 경로 불일치 해결 #### 문제 상황 - robeing-gateway가 3일 이상 unhealthy 상태 - FailingStreak: 10,028회 실패 - 서비스는 정상 작동하지만 헬스체크만 실패 #### 원인 분석 - Dockerfile: `/health` 경로로 헬스체크 - 실제 코드: `/healthz` 엔드포인트만 구현 - 이전 커밋에서 main.py와 Actions는 수정했지만 Dockerfile 누락 #### 해결 방법 ```bash # Dockerfile 수정 HEALTHCHECK ... CMD curl -f http://localhost:8000/healthz || exit 1 ``` #### 교훈 - **헬스체크 엔드포인트 변경 시 체크리스트 필수** - main.py (실제 엔드포인트) - Dockerfile (컨테이너 헬스체크) - docker-compose.yml (compose 헬스체크) - .gitea/workflows/*.yml (CI/CD 헬스체크) - CLAUDE.md에 규칙 추가 완료 --- ### 2. rb10508_micro 하드코딩 제거 및 중앙 설정 관리 #### 문제 상황 - ChromaDB 검색 개수 100개가 하드코딩 - Gemini 모델명이 부분적으로 하드코딩 - Mistral 모델명이 완전히 하드코딩 #### 현황 파악 1. **ChromaDB 검색 100개** - storage.py:112에 하드코딩 - config.py에 설정 없음 2. **Gemini 모델** - brain.py:72에 'gemini-2.5-flash-lite' 하드코딩 - config.py:48에 GEMINI_FALLBACK_MODEL 있지만 미사용 3. **Mistral 모델** - mistral.py:112에 'mistral-small-latest' 하드코딩 - config.py에 설정 없음 #### 해결 방법 ```python # config.py 추가 MEMORY_SEARCH_LIMIT: int = 100 MISTRAL_MODEL: str = "mistral-small-latest" # 각 파일에서 settings 활용 settings.MEMORY_SEARCH_LIMIT settings.GEMINI_FALLBACK_MODEL settings.MISTRAL_MODEL ``` #### 추가 수정 - README.md 업데이트 #### 교훈 - **하드코딩 금지 원칙 재확인** - 설정값은 반드시 config.py에서 중앙 관리 - 코드 리뷰 시 하드코딩 여부 우선 체크 --- ### 3. 사랑 기반 윤리 시스템 설계 논의 #### 현재 상태 - rb10508_micro/app/core/ethics.py는 거의 비어있음 - 기본 구조만 있고 실제 구현 없음 #### 아키텍처 결정 사항 1. **윤리 평가 위치**: rb10508_micro 내부 (로빙의 핵심 정체성) 2. **Love Index 저장**: ChromaDB 메타데이터 (기억과 연결) 3. **LLM 사용**: 하이브리드 (명확한 경우 규칙, 애매한 경우 LLM) 4. **구현 전략**: 점진적 추가 (기존 시스템 유지) 5. **표현 방식**: 내부는 사랑, 외부는 세속적 용어 #### 기억 시스템 분석 - ChromaDB 벡터 저장소 사용 - 적응형 메모리 선택 (LLM + MMR 알고리즘) - 100개 초기 검색 → 10-20개 최종 선택 - 황금비(1.618) 활용한 효율적 축소 #### 다음 단계 - ethics.py에 Love Index 계산 함수 추가 - brain.py에서 윤리 평가 통합 - ChromaDB에 love_metrics 메타데이터 추가 --- ## 배포 결과 - robeing-gateway: Dockerfile 헬스체크 수정 후 푸시 - rb10508_micro: 하드코딩 제거 후 푸시 - 두 서비스 모두 Gitea Actions 통해 자동 배포 진행 중