diff --git a/journey/troubleshooting/251122_intent_parsing_greeting_context_followup_fix.md b/journey/troubleshooting/251122_intent_parsing_greeting_context_followup_fix.md new file mode 100644 index 0000000..7588f42 --- /dev/null +++ b/journey/troubleshooting/251122_intent_parsing_greeting_context_followup_fix.md @@ -0,0 +1,65 @@ +# 의도 파싱 개선 - GREETING 우선 처리 및 CONTEXT_FOLLOWUP 조건 강화 + +**날짜**: 2025-11-22 +**작성자**: Claude +**관련 파일**: +- `rb8001/app/brain/decision_engine.py` + +--- + +## 문제 상황 + +"하이" 같은 인사 메시지가 이전 캘린더 의도 맥락과 결합되어 `calendar_event`로 잘못 파싱됨. + +**현상**: +- 이전 대화에 `calendar_confirm` intent 존재 +- "하이" 입력 시 "다음 주 월요일 1시부터 4시까지 컴퍼니엑스 세미나 일정을 등록해 드릴게요" 응답 +- 인사 키워드임에도 이전 의도의 후속 질문으로 오해 + +--- + +## 원인 분석 + +### 의도 파싱 순서 문제 +- `decision_engine.py:318-322`: GREETING 체크가 CONTEXT_FOLLOWUP 체크 이후에 실행 +- `decision_engine.py:300-320`: 짧은 메시지(len <= 20)가 임베딩 기반 CONTEXT_FOLLOWUP 감지에 먼저 걸림 +- 이전 `calendar_confirm` 맥락과 결합되어 `calendar_event`로 오인식 + +### 맥락 기반 감지 조건 미흡 +- CONTEXT_FOLLOWUP 감지 시 이전 의도 검증 부족 +- 시간 제약 없음 (오래된 맥락도 참조) + +--- + +## 해결 방안 + +### 1. GREETING 체크 우선순위 상향 +- `decision_engine.py:209-213`: GREETING 체크를 맨 앞으로 이동 +- 명확한 인사 키워드는 맥락 체크 전에 처리 + +### 2. CONTEXT_FOLLOWUP 조건 강화 +- `decision_engine.py:283-313`: 이전 의도가 컨텍스트 의도인지 확인 (`context_eligible_intents`) +- `decision_engine.py:288-306`: 10분 시간 제약 추가 (10분 초과 시 CONTEXT_FOLLOWUP 비활성화) +- `decision_engine.py:337`: 임베딩 기반 감지 임계값 상향 (0.5 → 0.7) + +--- + +## 구현 완료 + +**커밋**: `e76a582` - fix: 의도 파싱 개선 - GREETING 우선 처리 및 CONTEXT_FOLLOWUP 조건 강화 +**수정 파일**: `rb8001/app/brain/decision_engine.py` + +--- + +## 교훈 + +### 명확한 의도 키워드 우선 처리 원칙 +- 명확한 의도 키워드(GREETING 등)는 맥락 체크 전에 우선 처리해야 함 +- 순서 조정보다는 명확한 의도 감지 로직을 먼저 실행하는 구조 필요 +- 교훈: 의도 파싱 파이프라인 설계 시 명확한 의도 → 맥락 기반 의도 순서 고정 + +### 맥락 기반 의도 감지 조건 강화 +- CONTEXT_FOLLOWUP은 이전 의도가 실제로 컨텍스트 의도이고 시간 제약 내에서만 적용 +- 임베딩 기반 감지는 임계값을 충분히 높여 오인식 방지 +- 교훈: 맥락 기반 의도 감지는 엄격한 조건 검증 후 적용 (의도 타입, 시간 제약, 신뢰도) +