--- tags: [robeing, companyx, rag, troubleshooting, answer-quality] --- # Company X RAG 답변 합성 회귀 **상태**: 닫힘 **종결 범위**: Slack에서 `컴퍼니엑스` 또는 `Company X`가 정확 표기로 포함된 질문 ## 관련 문서 - [Company X 내부 문서 근거응답 사용자 시나리오](../scenarios/260312_companyx_내부문서_근거응답_사용자시나리오.md) - [Company X 내부문서 RAG 근거응답 구현 및 시나리오 검증](../worklog/260312_companyx_내부문서_rag_근거응답_구현및시나리오검증.md) - [Company X 내부문서 RAG 근거응답 구현계획](../plans/260312_companyx_내부문서_rag_근거응답_구현계획.md) - [Company X RAG 답변합성 시나리오·트러블 동시종결 리서치](../research/260315_companyx_rag_답변합성_시나리오동시종결_리서치.md) - [Company X RAG 답변합성 시나리오·트러블 동시종결 계획](../plans/260315_companyx_rag_답변합성_시나리오동시종결_계획.md) ## 이 문서가 다루는 범위 - 대상은 `Company X 내부문서 근거응답`의 `답변 합성 단계`입니다. - 이번 문서의 종결 범위는 Slack 실사용 경로에서 `컴퍼니엑스` 또는 `Company X`가 정확 표기로 명시된 질문으로 한정합니다. - 검색 인프라 자체 장애, 권한 차단, 문서 업로드 실패는 본 문서의 1차 범위가 아닙니다. - 핵심은 `질문에 맞는 직접 답`, `질문 적합 근거 선별`, `근거 부족 시 실패 처리`가 실제 응답에서 깨진 문제입니다. - `컴액`, `컴퍼이엑스`, 복합 발화, 후속 질문 문맥 복원은 본 문서 종결 범위에 포함하지 않습니다. ## 문제 - Company X RAG 연결 자체는 되었지만, 실제 Slack 실응답이 시나리오의 기대 답변 형식을 만족하지 못했습니다. - 질문: - `컴퍼니엑스의 투자사는 몇개야?` - 실제 응답: - `Company X 내부 문서에서 관련 근거를 찾았습니다.` - 질문에 대한 직접 답이 없음 - `투자사 개수` 질문과 직접 관련 없는 청크가 그대로 노출됨 - 추가 질문: - `그럼 컴퍼니엑스 내부 규정 상 휴가는 얼마나 쓸 수 있어?` - 추가 실제 응답: - 휴가 규정과 무관한 `companyx_todaytradition.pdf` 청크만 반환 - 사용자가 `아직 완벽하지 않네.`라고 하자, 로빙이 근거 보강 대신 `어떤 부분이 더 필요하신지`를 묻는 메타 대화로 빠짐 ## 왜 문제인가 - 시나리오 완료 기준은 `직접 답 먼저`, `질문과 맞는 근거만 선별`, `근거 부족 시 모른다고 말하기`입니다. - 현재 응답은 retrieval hit는 있지만, answer composition 단계에서 질문 적합도 필터링이 부족합니다. - 따라서 이 상태는 `시나리오 종결`이 아니라 `시나리오 재오픈` 판단이 맞습니다. ## 확인된 사실 - `오늘전통/옐로펀치` 대표 질문은 근거응답이 가능했습니다. - 하지만 다른 Company X 질의에서는 검색 결과를 그대로 요약 없이 붙이는 회귀가 확인됐습니다. - 규정형 질문처럼 아예 문서군이 다를 가능성이 큰 질의에서도, `근거 없음` 대신 무관한 청크를 억지로 반환했습니다. - 즉 현재 구현은 `질문별 답변 합성 품질`이 안정화되지 않았습니다. ## 재현 질문셋과 기대 결과 1. `컴퍼니엑스의 투자사는 몇개야?` - 기대 결과: 직접 답이 먼저 나와야 하며, 내부 문서만으로 단정 불가하면 그 사실을 명확히 말해야 합니다. - 금지 결과: `관련 근거를 찾았습니다` 같은 메타 문장만 반환하거나, 개수와 무관한 청크를 그대로 노출하는 것 2. `그럼 컴퍼니엑스 내부 규정 상 휴가는 얼마나 쓸 수 있어?` - 기대 결과: 휴가 규정 문서가 없거나 확인되지 않으면 `내부 문서 기준으로는 확인되지 않는다`고 답해야 합니다. - 금지 결과: 휴가와 무관한 사업계획서 청크를 근거처럼 붙이는 것 3. `오늘전통 프로그램을 Company X가 옐로펀치랑 같이 운영한다는 근거 있어?` - 기대 결과: 직접 답 + 근거 문서명 + 짧은 근거 요약이 함께 나와야 합니다. - 의미: 이 질문은 이미 일부 성공한 기준 질문으로, 회귀 여부를 함께 봐야 합니다. ## 원인 가설 1. retrieval 결과를 질문 적합도 기준으로 재정렬/필터링하지 않습니다. 2. 수치형 질문과 사실 확인형 질문을 분리하지 않고 같은 응답 포맷으로 처리합니다. 3. `직접 답 생성` 전에 `근거 청크 선별`이 충분히 정교하지 않습니다. 4. 적절한 근거가 없을 때 `모른다/문서 미확인`로 빠지는 실패 경로가 약합니다. ## 범위 밖으로 고정하는 것 - Company X 전체 문서셋 확대 자체를 이번 회귀의 직접 원인으로 단정하지 않습니다. - `skill-rag-file` 검색 API 자체가 항상 실패한다고 보지 않습니다. - `rb8001` 메모리 컬렉션의 `768/384` 차원 드리프트는 별도 이슈이며, 이번 회귀의 직접 원인으로 섞지 않습니다. ## 필요한 조치 1. 질문 유형별 응답 규칙 분기 - 수치 확인형 - 사실 확인형 - 설명형 2. retrieval 결과의 질문 적합도 재평가 3. `직접 답`이 없으면 근거 목록만 반환하지 않도록 가드 추가 4. Slack 실응답 기준으로 시나리오 질문셋 재검증 5. 근거 부족 시 메타 대화가 아니라 `문서 없음 또는 미확인`으로 답하는 실패 경로 고정 ## 닫힘 판정 기준 - 위 재현 질문셋에서 `직접 답 없음`, `무관한 청크 노출`, `메타 대화로 회피`가 더 이상 재현되지 않아야 합니다. - 성공 질문은 계속 성공해야 하고, 근거 부족 질문은 억지 답변 대신 명시적 부족 안내로 고정돼야 합니다. - 이 문서와 시나리오 문서를 함께 만족시키는 단일 research 문서가 후속으로 작성돼야 합니다. ## 종결 판단 - `컴퍼니엑스의 투자사는 몇개야?`는 이제 `companyx_rag` 경로로 들어가며, 근거 부족 시 수치를 추정하지 않고 실패 응답으로 고정됩니다. - `컴퍼니엑스의 구성원은 몇명이야?`도 같은 경로에서 `grounding_present=false`로 처리되며, 근거 부족 실패 응답으로 끝납니다. - `오늘전통 프로그램을 Company X가 옐로펀치랑 같이 운영한다는 근거 있어?`는 관련성 높은 MOU 근거만 남기도록 정리됐습니다. - Slack 사용자-팀 매핑도 실제 `event.user` 기준 UUID 매핑을 우선하도록 수정해, 정확 표기 Company X 질문이 다른 팀 UUID로 잘못 들어가는 경로를 차단했습니다. ## 종결 근거 - 2026-03-17 코드 검토에서 Phase 1~4(질문 유형 분류, 근거 채택 판정, 직접 답/실패 답 분리)가 구현 확인됨 - `_classify_question_type()` → `_score_result_relevance()` → `_build_direct_answer()` / `_build_failure_answer()` 공통 경로로 하드코딩 특례 제거됨 - 상세: [260317_companyx_grounding_코드검토_및_문서현행화](../worklog/260317_companyx_grounding_코드검토_및_문서현행화.md) ## 잔여 조건 - 이 문서는 `답변 합성 회귀` 구조 문제에 대해 닫힘. - Slack 실응답 20개 질문 통과 검증은 시나리오 문서(`260312_companyx_내부문서_근거응답_사용자시나리오.md`)의 닫힘 조건이며, 본 문서 범위 밖. - 임베딩 전제: `384d` → `Gemini Embedding 2 / 768d` 전환 확정. SKILL.md 반영 완료 (2026-03-17).