diff --git a/journey/troubleshooting/260310_프롬프트DB_응답생성_폐루프_미연결.md b/journey/troubleshooting/260310_프롬프트DB_응답생성_폐루프_미연결.md new file mode 100644 index 0000000..134d6ad --- /dev/null +++ b/journey/troubleshooting/260310_프롬프트DB_응답생성_폐루프_미연결.md @@ -0,0 +1,42 @@ +--- +tags: [rb8001, prompt-db, self-improvement, tracking, troubleshooting] +--- + +# 프롬프트 DB 응답생성 폐루프 미연결 + +**날짜**: 2026-03-10 +**작성자**: Codex +**관련 파일**: `rb8001/app/services/message_tracking_service.py`, `rb8001/app/router/message_endpoint.py`, `rb8001/app/state/prompt_management_repository.py` +**상위 원칙**: [문서 작성 원칙](../../book/300_architecture/312_writing-principles.md), [Backend Coding Principles](../../book/300_architecture/311_backend_coding_principles.md) + +## 관련 문서 +- [프롬프트 동적 관리 시스템 계획](../plans/251225_프롬프트_동적관리_계획.md) +- [자기개선 루프 DB/서비스 구현 실행계획](../plans/260303_자기개선루프_DB_구현_실행계획.md) +- [자기개선루프 프롬프트DB 23로컬24 통합실행기록](../plans/260304_자기개선루프_프롬프트DB_23로컬24_통합실행기록.md) + +## 문제 정의 +- 프롬프트 DB와 자기개선 DB의 저장/조회 API, 적재 테이블, `run_id` 추적 골격은 이미 구현돼 있다. +- 하지만 현재 `/api/message` 응답 생성 경로는 활성 프롬프트 버전을 읽어 실제 답변 생성 규칙에 반영하지 않는다. +- 그 결과 프롬프트 DB에서 버전을 바꿔도, 사용자는 응답 품질 변화나 규칙 반영을 직접 체감할 수 없다. + +## 재현 조건 +- 유효한 JWT로 `POST /api/message` 호출 +- `X-Run-Id` 지정 +- 같은 사용자로 `message_chat` 프롬프트를 DB에서 새 버전으로 생성/활성화 후 다시 호출 + +## 확인된 사실 +- `message_chat` 템플릿에 `v2`를 생성하고 active로 전환하는 API 호출은 정상 동작했다. +- DB 조회 결과 `message_chat`의 기존 `v1`은 `retired`, 새 `v2`는 `active` 상태로 바뀌었다. +- 같은 시점 `/api/message` 호출은 정상 응답했고, 해당 `run_id`에 대한 `prompt_events.version_id`는 `v2`를 가리켰다. +- 그러나 실제 `bot_response`에는 `v2` 내용(`always answer with prefix TEST-V2`)이 반영되지 않았다. +- 코드상 `message_tracking_service.py`는 응답 생성 후 `get_active_prompt_version()`을 호출해 이벤트를 기록하지만, 응답 생성 이전에 프롬프트 버전을 주입하는 경로는 없다. + +## 영향 범위 +- 프롬프트 DB는 현재 기준으로 `운영 버전 저장소 + 추적 로그` 역할에 머문다. +- 사용자 입장에서는 프롬프트 버전을 바꿔도 실제 답변 개선이 즉시 일어나지 않는다. +- 자기개선 루프도 현재는 `run_id` 기준 추적은 되지만, 추적 결과가 다음 응답 품질을 바꾸는 폐루프까지는 연결되지 않았다. + +## 미확정 항목 +- 실제 응답 생성 경로에서 어느 계층에 프롬프트 버전 병합을 넣을지가 아직 확정되지 않았다. +- `message_chat` 외의 task별 템플릿(`meeting_summary`, `clarify` 등)을 어떤 우선순위로 적용할지도 아직 미확정이다. +- 프롬프트 DB를 읽는 순간 기존 하드코딩 프롬프트와 어떤 fallback 규칙으로 공존시킬지도 미확정이다.