From 19a6995b2c47a0b870c1c9d10ebfac7185050b1b Mon Sep 17 00:00:00 2001 From: happybell80 Date: Tue, 3 Mar 2026 18:55:53 +0900 Subject: [PATCH] docs(research): map db/services for self-improving loop implementation --- ...선루프_DB_서비스_구현_리서치.md | 102 ++++++++++++++++++ journey/research/README.md | 1 + 2 files changed, 103 insertions(+) create mode 100644 journey/research/260303_자기개선루프_DB_서비스_구현_리서치.md diff --git a/journey/research/260303_자기개선루프_DB_서비스_구현_리서치.md b/journey/research/260303_자기개선루프_DB_서비스_구현_리서치.md new file mode 100644 index 0000000..db5a4f0 --- /dev/null +++ b/journey/research/260303_자기개선루프_DB_서비스_구현_리서치.md @@ -0,0 +1,102 @@ +# 260303 자기개선 루프 구현을 위한 DB/서비스 리서치 + +## 목적 +- 로빙의 `자기개선 루프(예측-행동-평가-반성)`를 실제 서비스에 붙이기 위한 현재 자산(DB/서비스/코드)을 정리한다. +- 이미 운영 중인 컴포넌트를 재사용해 최소 변경으로 구현 가능한 경로를 제시한다. + +## 요약 결론 +1. `rb8001`은 이미 피드백/평가/리뷰 큐를 갖고 있어 루프의 `평가`와 `반성` 입력 데이터가 존재한다. +2. `robeing-monitor`는 상태/로그를 저장하지만 설정 테이블(`robeing_settings`)이 미구현(TODO)이라 정책 버전 관리 계층이 비어 있다. +3. `robeing-gateway`는 모니터 서비스 프록시 경로가 있어 루프 지표를 프론트에 노출하기 좋은 진입점을 이미 보유한다. + +## robeing-monitor 존재 여부 +- 로컬 워크스페이스에서 `ivada/robeing-monitor` 폴더 존재 확인 완료 +- 상태: 이미 존재함(추가 clone 불필요) +- 원격 참고: [robeing-monitor](https://git.ro-being.com/ivada_Ro-being/robeing-monitor.git) + +## 현재 DB/서비스 자산 + +### 1) rb8001 (루프 데이터의 핵심 소스) +- 피드백 수집 엔드포인트: + - [`app/router/feedback_endpoint.py`](https://git.ro-being.com/ivada_Ro-being/rb8001/src/branch/main/app/router/feedback_endpoint.py) + - `POST /api/feedback/chat` +- 리뷰 큐 테이블(의도 예측/정답/상태): + - [`app/models/intent_review_model.py`](https://git.ro-being.com/ivada_Ro-being/rb8001/src/branch/main/app/models/intent_review_model.py) + - 핵심 컬럼: `predicted_intent`, `predicted_confidence`, `user_feedback`, `status`, `true_intent` +- 리뷰 큐 처리/통계: + - [`app/state/intent_review_repository.py`](https://git.ro-being.com/ivada_Ro-being/rb8001/src/branch/main/app/state/intent_review_repository.py) + - 상태 전이: `pending -> confirmed/corrected` +- IR 평가 + 피드백(학습용 데이터셋): + - [`app/state/ir_valuation_repository.py`](https://git.ro-being.com/ivada_Ro-being/rb8001/src/branch/main/app/state/ir_valuation_repository.py) + - 테이블: `ir_deck_evaluations`, `ir_deck_page_evaluations`, `ir_deck_feedback` +- 감정 예측 평가 함수: + - [`app/core/emotion/bayesian.py`](https://git.ro-being.com/ivada_Ro-being/rb8001/src/branch/main/app/core/emotion/bayesian.py) + - 함수: `evaluate_prediction()`, `should_update()` +- 일기 집계에서 피드백 루프 추출: + - [`app/services/diary/aggregator.py`](https://git.ro-being.com/ivada_Ro-being/rb8001/src/branch/main/app/services/diary/aggregator.py) + +### 2) robeing-monitor (상태 저장/조회 허브) +- 개요 및 API: + - [`README.md`](https://git.ro-being.com/ivada_Ro-being/robeing-monitor/src/branch/main/README.md) + - 상태 조회/업데이트, 로그 저장, 모니터링 API +- DB 모델: + - [`app/state/database.py`](https://git.ro-being.com/ivada_Ro-being/robeing-monitor/src/branch/main/app/state/database.py) + - 테이블: `robeing`, `conversation_log` + - 주석/TODO: `robeing_settings` 테이블 미구현 +- 상태 서비스: + - [`app/state/state_service.py`](https://git.ro-being.com/ivada_Ro-being/robeing-monitor/src/branch/main/app/state/state_service.py) + +### 3) robeing-gateway (노출 계층) +- 모니터 프록시/설정: + - [`app/main.py`](https://git.ro-being.com/ivada_Ro-being/robeing-gateway/src/branch/main/app/main.py) + - [`app/settings.py`](https://git.ro-being.com/ivada_Ro-being/robeing-gateway/src/branch/main/app/settings.py) +- 의미: + - 루프 지표 API를 monitor에 추가하면 gateway를 통해 프론트로 안전하게 전달 가능 + +## 자기개선 루프 관점 매핑 + +### 예측 (Predict) +- 출처: 의도 분류 결과, 감정 예측 분포 +- 저장 지점: `intent_review_queue.predicted_*`, 감정 예측 결과 + +### 행동 (Act) +- 출처: rb8001의 응답/워크플로 실행, 스킬 호출 +- 저장 지점: `conversation_log`, `activity_log`(rb8001 내부 집계에서 사용) + +### 평가 (Evaluate) +- 출처: `user_feedback`, `true_intent`, IR 등급 피드백, 감정 예측 오차 +- 저장 지점: `intent_review_queue`, `ir_deck_feedback`, 감정 평가 함수 출력 + +### 반성 (Reflect) +- 현재: 부분 구현(리뷰큐 상태 전이, 일부 재학습 흐름) +- 부족: 정책 버전/실험 버전/롤백 이력을 구조적으로 남기는 저장소 부재 + +## 구현 시 필요한 최소 추가 설계 + +### A. 정책 버전 저장소(필수) +- 위치 권장: `robeing-monitor` DB +- 신규 테이블 제안: + - `robeing_policy_versions` + - 컬럼 예: `id`, `robeing_id`, `policy_type`, `version`, `config_json`, `created_at`, `is_active` + +### B. 루프 실행 로그(필수) +- 신규 테이블 제안: + - `robeing_self_improvement_runs` + - 컬럼 예: `run_id`, `robeing_id`, `predict_snapshot`, `action_summary`, `evaluation_metrics`, `reflection_notes`, `created_at` + +### C. 평가 지표 표준화(필수) +- 공통 지표 키를 고정: + - intent: `accuracy`, `f1`, `correction_rate` + - feedback: `up_ratio`, `down_ratio` + - emotion: `kl_divergence`, `brier_score`, `entropy_diff` + +## 우선 실행 순서 (현실적) +1. `rb8001`에서 루프 관련 결과를 JSON 스냅샷으로 일단 저장(테이블 추가 전 임시 단계). +2. `robeing-monitor`에 정책 버전/루프 실행 테이블 추가. +3. `robeing-gateway`로 루프 대시보드 API 프록시 연결. +4. 주간 단위로 `정책 업데이트 -> 롤백 가능성 검증` 운영 절차 고정. + +## 관련 철학 문서 연결 +- [자기개선 루프 정의(용어집)](../../book/600_appendix/650_용어집.md) +- [존재형 에이전트 정의](../../book/100_philosophy/130_존재형_에이전트란_무엇인가.md) +- [자기개선 루프 설계 전개](../../book/100_philosophy/195_철학에서_설계로.md) diff --git a/journey/research/README.md b/journey/research/README.md index 44dc2e1..3600970 100644 --- a/journey/research/README.md +++ b/journey/research/README.md @@ -54,6 +54,7 @@ - LangGraph vs n8n 비교 - OpenClaw 아키텍처 및 로빙 적용 리서치 - [구카 평가·결정 로직 로빙 적용 리서치 (260303)](./260303_구카_평가결정_로직_로빙_적용_리서치.md) +- [자기개선 루프 구현을 위한 DB/서비스 리서치 (260303)](./260303_자기개선루프_DB_서비스_구현_리서치.md) ## 로빙을 위한 체크리스트