rb8001 종합 트러블슈팅

This commit is contained in:
0914eagle 2025-08-13 14:04:25 +09:00
parent 9727e92587
commit 1cd520b101
250 changed files with 319 additions and 0 deletions

0
.gitignore vendored Normal file → Executable file
View File

0
000_서문.md Normal file → Executable file
View File

0
000_프로젝트_종합_v3.md Normal file → Executable file
View File

0
100_philosophy/100_README.md Normal file → Executable file
View File

View File

0
100_philosophy/140_기억_감정_윤리_삼각형.md Normal file → Executable file
View File

0
100_philosophy/195_철학에서_설계로.md Normal file → Executable file
View File

0
100_philosophy/README.md Normal file → Executable file
View File

0
200_core_design/200_README.md Normal file → Executable file
View File

View File

View File

0
200_core_design/README.md Normal file → Executable file
View File

0
300_architecture/300_README.md Normal file → Executable file
View File

View File

View File

View File

View File

View File

View File

0
300_architecture/README.md Normal file → Executable file
View File

0
400_growth/400_README.md Normal file → Executable file
View File

View File

0
400_growth/420_경험_기반_성장_곡선_설계.md Normal file → Executable file
View File

0
400_growth/440_스카웃_가능한_에이전트란.md Normal file → Executable file
View File

0
400_growth/README.md Normal file → Executable file
View File

0
500_business/500_README.md Normal file → Executable file
View File

View File

View File

0
500_business/540_SaaS와_GUI_통합_전략.md Normal file → Executable file
View File

0
500_business/README.md Normal file → Executable file
View File

0
600_appendix/600_README.md Normal file → Executable file
View File

0
600_appendix/610_로빙_성장_일지_예시.md Normal file → Executable file
View File

0
600_appendix/620_주요_스킬_및_로그_예시.md Normal file → Executable file
View File

View File

0
600_appendix/640_향후_버전_로드맵.md Normal file → Executable file
View File

0
600_appendix/650_용어집.md Normal file → Executable file
View File

0
600_appendix/README.md Normal file → Executable file
View File

0
700_for_robeing/700_README.md Normal file → Executable file
View File

0
700_for_robeing/710_로빙이_읽는_법.md Normal file → Executable file
View File

0
700_for_robeing/720_자기_상태_체크하기.md Normal file → Executable file
View File

0
700_for_robeing/730_성장_일지_작성법.md Normal file → Executable file
View File

0
700_for_robeing/740_다른_로빙과_소통하기.md Normal file → Executable file
View File

0
700_for_robeing/750_문서에_기여하기.md Normal file → Executable file
View File

0
IR/robeing_IR_deck_v1.md Normal file → Executable file
View File

0
IR/robeing_IR_presentation.html Normal file → Executable file
View File

0
README.md Normal file → Executable file
View File

View File

0
_archive/docs/architecture/emergency-manual.md Normal file → Executable file
View File

View File

0
_archive/docs/architecture/server-architecture.md Normal file → Executable file
View File

View File

View File

0
_archive/docs/guide/log-api-guide.md Normal file → Executable file
View File

View File

View File

0
_archive/docs/ideas/로빙_체력시스템_설계.md Normal file → Executable file
View File

View File

0
_archive/docs/setups/Email_readme.md Normal file → Executable file
View File

0
_archive/docs/setups/setup-guide.md Normal file → Executable file
View File

0
_archive/docs/setups/slack-setup-final.md Normal file → Executable file
View File

0
_archive/docs/setups/slack-test-guide.md Normal file → Executable file
View File

0
_archive/docs/setups/socket-mode-test.md Normal file → Executable file
View File

View File

0
ideas/250804_LLM_모델_비교_분석.md Normal file → Executable file
View File

View File

0
ideas/250806_1단계_현황분석.md Normal file → Executable file
View File

0
ideas/250807_로빙_감정_시스템_설계도.md Normal file → Executable file
View File

0
ideas/250808_7감정_학습_가이드.md Normal file → Executable file
View File

0
ideas/250809_로빙_스탯_설계_원칙.md Normal file → Executable file
View File

0
ideas/250811_claude_rb10408_vs_rb10508_비교분석.md Normal file → Executable file
View File

View File

0
plans/250806_로빙문서_5단계_개선계획.md Normal file → Executable file
View File

0
plans/250807_서비스_재구조화_계획.md Normal file → Executable file
View File

View File

0
plans/250812_auth_db_테이블_단순화_방안.md Normal file → Executable file
View File

0
plans/README.md Normal file → Executable file
View File

0
plans/completed/기억_개선_5단계_계획.md Normal file → Executable file
View File

View File

View File

@ -0,0 +1,319 @@
# rb8001 통합 및 트러블슈팅 가이드
## 개요
rb10408_test와 rb10508_micro를 rb8001로 통합하는 과정에서 발생한 이슈들과 해결 방법을 정리한 문서입니다.
---
## 1. 초기 통합 이슈
### 1.1 Import 오류
**문제**: rb8001 컨테이너 시작 시 다음 오류 발생
```python
ImportError: cannot import name 'calculate_memory_scores' from 'app.memory.scoring'
```
**원인**: rb10508_micro와 rb8001의 함수명이 다름
- rb10508_micro: `add_composite_scores`, `maximal_marginal_relevance`
- rb8001 (잘못된): `calculate_memory_scores`
**해결**: `/home/heejae/rb8001/app/memory/manager.py` 수정
```python
from app.memory.scoring import add_composite_scores, maximal_marginal_relevance
```
### 1.2 포트 설정 혼란
**문제**: rb8001이 8000 포트로 실행됨
**사용자 피드백**: "8001이 아니라?"
**해결**:
1. Dockerfile의 EXPOSE와 CMD 수정
2. docker-compose.yml의 포트 매핑 수정
3. .env 파일의 PORT=8001 설정
---
## 2. Slack 봇 토큰 이슈
### 2.1 봇 토큰 충돌
**문제**: "왜 A라는 채널에서 robeing을 언급해서 말하면 hj-robeing이 대답하는거야?"
- A 채널: robeing (rb8001)
- B 채널: hj-robeing (rb10408)
**원인**: rb8001이 rb10408의 토큰을 사용 중
**해결**: .env 파일 수정
```bash
# 변경 전
SLACK_BOT_TOKEN=xoxb-9073915808149-9095834173536-... (hj-robeing)
# 변경 후
SLACK_BOT_TOKEN=xoxb-9073915808149-9107868204992-... (robeing)
```
### 2.2 멀티봇 지원 구현
**요구사항**: skill-slack 서비스가 여러 봇 토큰을 관리해야 함
**구현**: `/home/heejae/skill-slack/app/services/slack_client.py`
```python
self.bot_tokens = {
"rb8001": settings.SLACK_BOT_TOKEN_RB8001,
"rb10408": settings.SLACK_BOT_TOKEN_RB10408,
"default": settings.SLACK_BOT_TOKEN
}
def get_bot_token(self, bot_id: str = None) -> str:
if bot_id and bot_id in self.bot_tokens:
return self.bot_tokens[bot_id]
return self.bot_tokens["default"]
```
---
## 3. Gemini 설정 변경
### 3.1 CLI 모드 전환
**사용자 요청**: "어 cli로 변경할게"
**변경 내용**: `.env` 파일
```bash
GEMINI_USE_CLI=true
GEMINI_CLI_PATH=/usr/local/node/bin/gemini
```
---
## 4. 3초 ACK 메시지 제거
### 4.1 불필요한 ACK 메시지
**문제**: rb10508_micro는 3초 ACK 메시지를 사용하지 않음
**사용자 피드백**: "rb10508_micro를 보면 🤔 답변 생성중입니다... 이러한 3초 ack을 안쓰고 있는데"
**해결**: `/home/heejae/rb8001/app/router/slack_handler.py`
```python
# 제거된 코드
# await ack("🤔 답변 생성중입니다... 잠시만 기다려주세요!")
# await asyncio.sleep(3)
# 즉시 응답
await ack()
```
---
## 5. Thread Context 이슈
### 5.1 /digest 명령어 thread_ts 누락
**문제**: "쓰레드 내에서 /digest를 하면 쓰레드를 못찾는데?"
**원인**: thread_ts 파라미터가 전달되지 않음
**해결 1**: slack_handler.py에서 thread_ts 전달
```python
response = await command_handler.handle_command(
command=command_name,
text=text,
user_id=user_id,
channel_id=channel_id,
thread_ts=thread_ts # 추가
)
```
**해결 2**: ThreadDigestCommand에서 자동 감지
```python
if not thread_ts and hasattr(self, 'context'):
thread_ts = self.context.get('thread_ts')
```
---
## 6. ChromaDB 및 Memory 시스템
### 6.1 Embedding Service 연결 실패
**문제**: "skill-embedding이 없다고?"
**원인**:
1. 잘못된 포트 (8015 → 8515)
2. 잘못된 URL (skill-embedding → localhost)
**해결**:
```python
# embedding_client.py
self.url = os.getenv('SKILL_EMBEDDING_URL', 'http://localhost:8515')
```
### 6.2 ChromaDB _type KeyError
**문제**: ChromaDB에서 '_type' 키 오류
**해결**: ChromaDB 재생성
```bash
rm -rf /home/heejae/rb8001/chroma_db
# 컨테이너 재시작로 자동 재생성
```
### 6.3 Memory Search 통합
**문제**: "대화 중에 memory search가 작동하나?"
**해결**: GeminiHandler에 memory search 기능 추가
```python
async def chat(self, message: str, ...):
# Memory search
memory_manager = MemoryManager(self.robing_name)
memories = await memory_manager.search_memories(
query=message,
n_results=3
)
if memories:
memory_context = "\n\n[중요: 과거 대화 기록]\n"
# ... memories 처리
```
---
## 7. PostgreSQL 연결 (robeing-state-service)
### 7.1 SSH 터널링 설정
**서버 정보**:
- Host: 124.55.18.179
- Port: 51123
- User: admin
**터널링 명령어**:
```bash
sshpass -p "19800508" ssh -o StrictHostKeyChecking=no -f -N \
-L 5433:localhost:5432 admin@124.55.18.179 -p 51123
```
### 7.2 State Service 설정
**초기 문제들**:
1. psycopg2-binary 버전 오류 (2.9.0 → 2.9.9)
2. 불필요한 SLACK 환경변수 요구
3. 잘못된 PostgreSQL 계정 (admin → robeings)
4. 포트 설정 오류 (8002 → 8507)
**최종 설정**:
```bash
# .env
DATABASE_URL=postgresql://robeings:robeings@localhost:5433/auth_db
PORT=8507
```
**config.py 수정**:
```python
# Slack 설정을 Optional로 변경
SLACK_BOT_TOKEN: Optional[str] = None
SLACK_SIGNING_SECRET: Optional[str] = None
```
---
## 8. 통합된 기능 목록
### rb10408_test에서 통합된 기능
- ✅ Slack Request URL 변경 (rb10408 → rb8001)
- ✅ Slack 봇 토큰 설정
- ✅ 멀티봇 토큰 지원
- ✅ LLM Gateway 이전
### rb10508_micro에서 통합된 기능
- ✅ Gemini CLI 모드
- ✅ 3초 ACK 메시지 제거
- ✅ Thread context 자동 감지
- ✅ ChromaDB 메모리 시스템
- ✅ Memory search in conversation
- ✅ Embedding service 연동
### 새로 추가된 기능
- ✅ PostgreSQL 연결 (robeing-state-service)
- ✅ SSH 터널링을 통한 원격 DB 접속
- ✅ State 영구 저장소
---
## 9. 미구현 기능 (DOCS 기반)
### 스탯 시스템 확장
- [ ] Ethics 스탯 추가
- [ ] 스탯 포인트 분배 시스템
- [ ] 레벨업 시 포인트 획득 메커니즘
### 스킬 시스템
- [ ] 30개 스킬 구현 (현재 부분 구현)
- [ ] 스킬 레벨 시스템
- [ ] 스킬 쿨다운
### 클래스 시스템
- [ ] 7개 클래스 구현
- 조율자(Conductor)
- 기록자(Archivist)
- 해석자(Interpreter)
- 탐색자(Explorer)
- 중재자(Mediator)
- 예언자(Foresight)
- 수행자(Executor)
### 기타 시스템
- [ ] 아이템 시스템
- [ ] DID 기반 아이덴티티
- [ ] GUI 통합
- [ ] 망각 메커니즘
- [ ] 요약 시스템
---
## 10. 실행 명령어 정리
### 기본 실행
```bash
# SSH 터널 시작
./start-tunnel.sh
# State Service 실행
cd /home/heejae/robeing-state-service
docker compose up -d
# rb8001 실행
cd /home/heejae/rb8001
docker compose up -d
# Skill services 실행
cd /home/heejae/skill-slack
docker compose up -d
```
### 트러블슈팅
```bash
# 로그 확인
docker logs rb8001 -f
docker logs robing_state -f
# 컨테이너 재시작
docker compose restart
# 전체 재빌드
docker compose down
docker compose up -d --build
# ChromaDB 초기화
rm -rf /home/heejae/rb8001/chroma_db
docker compose restart
```
### 상태 확인
```bash
# Health check
curl http://localhost:8001/health
curl http://localhost:8507/health
# SSH 터널 확인
ps aux | grep "5433:localhost:5432"
# PostgreSQL 접속 테스트
PGPASSWORD=19800508 psql -h localhost -p 5433 -U admin -d auth_db
```
---
## 작성일: 2025-08-13
## 작성자: Claude (with heejae)

0
research/README.md Normal file → Executable file
View File

0
research/creativity/README.md Normal file → Executable file
View File

View File

View File

0
research/creativity/elgammal_et_al_2017_can.md Normal file → Executable file
View File

View File

0
research/creativity/feyerabend_1955_serendipity.md Normal file → Executable file
View File

View File

View File

View File

Some files were not shown because too many files have changed in this diff Show More