From ea53f2c38b0f9d1c21fd89f55beca931c8a2431c Mon Sep 17 00:00:00 2001 From: Claude-51124 Date: Tue, 10 Mar 2026 22:04:07 +0900 Subject: [PATCH] docs: record prompt db response loop gap --- ...„νŠΈDB_응닡생성_폐루프_λ―Έμ—°κ²°.md | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 journey/troubleshooting/260310_ν”„λ‘¬ν”„νŠΈDB_응닡생성_폐루프_λ―Έμ—°κ²°.md 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 κ·œμΉ™μœΌλ‘œ κ³΅μ‘΄μ‹œν‚¬μ§€λ„ 미확정이닀.