tags: [robeing, companyx, rag, research, internal-documents, grounding]

# 260312 Company X 내부문서 RAG 근거응답 현황 리서치

## 상위 원칙
- [Writing Principles](https://github.com/happybell80/0_VALUE/blob/main/02_Governance/writing-principles.md)
- [Company X 내부 문서 RAG 응답 아이디어](../ideas/260312_companyx_내부문서_rag_응답_아이디어.md)
- [Company X 내부 문서 근거응답 사용자 시나리오](../scenarios/260312_companyx_내부문서_근거응답_사용자시나리오.md)

## 목적
- Company X 소속 사용자가 `오늘전통 프로그램을 Company X가 옐로펀치랑 같이 운영한다는 근거 있어?`라고 물었을 때,
  현재 실제 로빙이 어떤 답을 하는지 확인한다.
- 현재 로빙이 Company X 내부 NAS 문서를 근거로 답할 수 있는 구조인지 확인한다.
- NAS 원본에는 실제 근거가 있는지 확인해, 문제를 `근거 부재`와 `근거 연결 부재`로 구분한다.
- 이 문서 하나로 기존 `ideas`와 `scenarios`를 `plans`로 넘길 수 있는 사실 기준을 고정한다.

## 조사 범위
- 런타임 서비스: `rb8001`, `skill-rag-file`
- 저장 상태: `team_document`, Chroma 컬렉션 검색 결과
- 원본 데이터: 내부 NAS `/mnt/nas/workspace/6.Company X`
- 대표 질문: `오늘전통 프로그램을 Company X가 옐로펀치랑 같이 운영한다는 근거 있어?`

## Facts

### 1. 현재 실제 로빙 답변은 내부 문서 근거답변이 아니다

- 2026-03-12 21:24 KST 기준 `rb8001` 테스트 엔드포인트에 대표 질문을 직접 넣어 확인했다.
- 호출 경로:
  - `POST /api/test/router-message`
- 입력:
  - `오늘전통 프로그램을 Company X가 옐로펀치랑 같이 운영한다는 근거 있어?`
- 실제 응답:

```json
{
  "user_id": "53529291-5050-4daa-89fb-008b546feb63",
  "user_message": "오늘전통 프로그램을 Company X가 옐로펀치랑 같이 운영한다는 근거 있어?",
  "bot_response": "CTO님, Company X가 옐로펀치와 함께 전통 프로그램을 운영한다는 근거를 찾아보겠습니다. 관련 정보를 확인해 보고 말씀드리겠습니다.",
  "intent": null,
  "skill_sequence": null,
  "status": "success"
}
```

- 이 응답은 문서명, 문단 요약, 파일 위치를 전혀 제시하지 않는다.
- 즉 현재 시나리오가 기대하는 `직접 답변 + 근거 문서` 형식과 다르다.

### 2. 현재 질문은 라우터에서 `UNKNOWN`으로 떨어지고 내부 문서 검색으로 연결되지 않는다

- 같은 시각 `rb8001` 로그에서 아래 사실을 확인했다.
  - DecisionEngine이 해당 질문에 대해 `의도 매칭 실패 - UNKNOWN`을 기록했다.
  - 이후 응답은 내부 LLM 경로로 생성됐다.
- 확인된 로그 핵심:
  - `Loaded 0 recent conversations`
  - `[DecisionEngine] 의도 매칭 실패 - UNKNOWN으로 처리`
  - 이후 Gemini 호출 발생
- 따라서 현재 로빙은 이 질문을 `Company X 내부 문서 근거 확인` 작업으로 해석하지 못한다.

### 3. 현재 `skill-rag-file` 인덱스에는 관련 Company X 문서가 없다

- `skill-rag-file` DB(`team_document`)를 직접 확인한 결과 총 문서 수는 `136`건이었다.
- 최근 적재 문서들은 `/mnt/51123data/documents/...` 또는 `/mnt/nas/documents/...` 아래의 일반 업로드 문서였고, 대표 예시는 아래와 같았다.
  - `06_릴라이 와이어프레임.pdf`
  - `01_후인터 사업계획서 ppt버전.pdf`
  - `에이징랩(주)_IR_20260309_v1.pdf`
- 같은 DB에서 아래 조건으로 조회했을 때 결과가 `0건`이었다.
  - `filename ilike '%오늘전통%'`
  - `filename ilike '%옐로%'`
  - `storage_path ilike '%오늘전통%'`
  - `storage_path ilike '%옐로%'`
- 따라서 현재 RAG 인덱스에는 적어도 `오늘전통`, `옐로펀치` 관련 Company X 문서가 들어가 있지 않다.

### 4. 현재 `skill-rag-file` 검색으로도 관련 결과를 찾지 못했다

- `skill-rag-file` 검색 API에 대표 질문을 그대로 넣어 테스트했다.
- 호출 경로:
  - `POST /api/search`
- 사용한 team 식별자는 테스트 사용자 UUID였고, 결과는 아래와 같았다.

```json
{
  "query": "오늘전통 프로그램을 Company X가 옐로펀치랑 같이 운영한다는 근거",
  "results": [],
  "total_results": 0
}
```

- 위 결과만으로 `모든 team_id에서 절대 검색 불가`를 단정할 수는 없다.
- 그러나 바로 위 3번 사실 때문에, 현재 인덱스 DB 전체에 관련 문서가 없다는 점은 별도로 확인됐다.

### 5. 내부 NAS 원본에는 질문과 직접 관련된 근거 문서가 실제로 존재한다

- 내부 NAS에서 `오늘전통`, `옐로펀치` 키워드로 파일명을 조사한 결과 관련 문서가 다수 존재했다.
- 대표 경로 예시:
  - `/mnt/nas/workspace/6.Company X/2. 신규운영사 및 펀드 운용사, 용역 프로그램 제안 등/2025년/05. [한국공예·디자인문화진흥원] 오늘전통 5기 초기창업기업 창업기획자(액셀러레이터) 공모/01. 제출서류/01. 사업계획서_컴퍼니엑스.pdf`
  - `/mnt/nas/workspace/6.Company X/10. MOU&인증/옐로펀치/TalkFile_MOU_옐로펀치X컴퍼니엑스- 25.01.23.pdf.pdf`

### 6. `오늘전통 5기 사업계획서`에는 옐로펀치가 협력기관으로 명시돼 있다

- 위 `사업계획서_컴퍼니엑스.pdf`를 텍스트 추출해 확인했다.
- 확인된 핵심 구절:
  - `프렉클컴퍼니, 스몰브랜더, 옐로펀치 등 브랜드 기업의 성장 지원이 가능한 외부 협력체계를 기반으로`
  - `㈜옐로펀치`
  - `공동 및 후속투자`
- 해석상 이 문서는 최소한 `오늘전통 사업계획서 안에서 옐로펀치가 Company X의 대외 협력체계/협력기관 중 하나로 제시된다`는 근거가 된다.

### 7. `옐로펀치X컴퍼니엑스 MOU`에는 공동 컨소시엄 협력과 프로그램 운영 참여가 명시돼 있다

- `TalkFile_MOU_옐로펀치X컴퍼니엑스- 25.01.23.pdf.pdf`를 텍스트 추출해 확인했다.
- 확인된 핵심 구절:
  - `주식회사옐로펀치와 주식회사컴퍼니엑스는 우수 창업기업 발굴, 투자·육성 업무 활성화를 위해 아래의 협약을 체결`
  - `교육, 멘토링, 세미나, IR 등 기업 육성 프로그램 운영 참여`
  - `예비창업자 및 초기 창업기업 대상 지원사업 공동 컨소시엄 협력`
- 이 문서는 `Company X와 옐로펀치 간 공식 협력 관계`를 뒷받침한다.

### 8. 따라서 현재 문제는 `근거 없음`이 아니라 `근거 연결 부재`다

- NAS 원본에는 관련 근거가 있다.
- 그러나 현재 로빙 런타임은 이 질문을 문서 근거 확인으로 해석하지 못한다.
- 또한 관련 원본 문서가 `skill-rag-file` 인덱스에 들어가 있지 않다.
- 즉 현재 실패 원인은 `Company X 문서가 실제로 없어서`가 아니라, `있지만 로빙 답변 경로와 연결되지 않아서`다.

## Interpretation

### 1. 아이디어 문서는 유효한 가설이다

- `Company X 내부 문서를 우선 근거로 삼아 답하는 로빙`이라는 아이디어는 헛가설이 아니다.
- 실제 NAS에는 답변 근거가 될 문서가 있고, 그 문서에는 질문과 관련된 표현도 존재한다.
- 따라서 이 아이디어는 `근거를 만들자`가 아니라 `이미 있는 근거를 로빙 답변 경로에 연결하자`로 해석하는 것이 맞다.

### 2. 시나리오 문서의 현재/기대 대비도 실제 상태와 맞는다

- 현재 실제 응답은 `찾아보겠습니다` 수준의 일반 답변이다.
- 기대 시나리오는 `직접 답변 + 근거 문서 + 문단 요약 + 위치 정보`다.
- 이번 조사 결과는 시나리오 문서가 상상적 요구가 아니라, 실제 현재 상태와 분명히 대비되는 목표 상태임을 확인한다.

### 3. 다음 단계의 핵심은 RAG 품질보다 먼저 `색인 경로 + 질문 해석 경로`다

- 지금 부족한 것은 답변 문체가 아니라 연결 구조다.
- 최소한 아래 두 경로가 동시에 생겨야 한다.
  - NAS 원본 -> Company X 전용 RAG 인덱스
  - Company X 질문 -> Company X 전용 문서 검색 의도/실행 경로
- 둘 중 하나라도 빠지면 기대 시나리오는 닫히지 않는다.

### 4. `오늘전통 공동 운영` 답변은 문서 충돌/표현 차이까지 다뤄야 한다

- 사업계획서에는 `협력기관`, `외부 협력체계` 표현이 있고, MOU에는 `프로그램 운영 참여`, `공동 컨소시엄 협력` 표현이 있다.
- 따라서 미래 로빙은 무조건 `같이 운영한다`고 단정하기보다,
  - `오늘전통 사업계획서에서 옐로펀치가 협력기관으로 제시된다`
  - `Company X-옐로펀치 MOU에는 프로그램 운영 참여와 공동 컨소시엄 협력이 명시된다`
  - `문서 표현은 공동 운영/협력 운영/협력기관으로 조금씩 다르다`
  를 함께 답하는 편이 더 정확하다.

## Unresolved

1. Company X 소속 사용자 판별 기준
- 어떤 인증 신호로 `Company X 내부 문서 검색 허용 사용자`를 확정할지 아직 정해지지 않았다.

2. Company X 문서의 색인 단위
- 원본 PDF/DOC/HWP를 그대로 청킹할지, 사람이 읽기 쉬운 중간 RAG 포맷으로 정제할지 아직 미정이다.

3. Company X 전용 team/collection 경계
- 현재 `skill-rag-file`은 `team_id` 기반 컬렉션 구조를 쓴다.
- Company X 내부 문서를 어떤 식별자와 어떤 권한 경계로 넣을지 아직 고정되지 않았다.

4. 답변 근거 노출 수준
- 문서명, 문단 요약, 파일 경로, 페이지 위치 중 어디까지 사용자에게 노출할지 아직 정해지지 않았다.

5. 질문 해석 규칙
- `근거 있어?`, `자료 기준으로`, `내부 문서 기준으로` 같은 표현을 별도 의도로 볼지, 일반 질문에 Company X 컨텍스트를 자동 적용할지 아직 미정이다.

## 현재 결론

- 대표 질문에 대한 현재 실제 로빙 답변은 기대 시나리오를 만족하지 못한다.
- 그러나 내부 NAS 원본에는 관련 근거 문서가 실제로 존재한다.
- 현재 실패 원인은 `Company X 근거 없음`이 아니라 `Company X 근거 문서가 런타임 RAG 경로와 연결되지 않음`이다.
- 따라서 다음 단계 `plans`는 `문서 색인`, `권한 경계`, `질문 해석`, `근거답변 형식`을 한 번에 고정하는 계획 문서여야 한다.

## 관련 문서
- [Company X 내부 문서 RAG 응답 아이디어](../ideas/260312_companyx_내부문서_rag_응답_아이디어.md)
- [Company X 내부 문서 근거응답 사용자 시나리오](../scenarios/260312_companyx_내부문서_근거응답_사용자시나리오.md)
- [컴퍼니엑스(Company X) 개요](../../book/500_business/560_컴퍼니엑스_개요.md)
