---
status: closed
closed_date: 2026-03-21
closed_reason: 260320 다형식문서 RAG 계획으로 흡수 또는 구현 완료
tags: [robeing, companyx, rag, troubleshooting, answer-quality]
---
status: closed
closed_date: 2026-03-21
closed_reason: 260320 다형식문서 RAG 계획으로 흡수 또는 구현 완료

# 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).
