NAS shared-editing drafts에서 검증 완료된 연구 자료를 DOCS로 이관: - research/: 양자 복소수 임베딩 팩트체크, 베이즈/힐베르트 대화 검토, 임베딩 한계 대조 - plans/: 로빙 성장 전 에이전트 중지 종합, 코드 기반 원인 분석 개선안 - ideas/: OpenAI/오픈라우터 하이브리드 세션 관리 - troubleshooting/: 로빙 슬랙 대화 문제 7에이전트 종합 보고서 - skills/: hwpx-skill 검증 메모 참여: 23-claude, 23-codex, 23-Cursor, 23-Gemini, 24-claude, 24-codex, 24-Cursor, 24-Gemini Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
7.5 KiB
Executable File
7.5 KiB
Executable File
writer, date, subject
| writer | date | subject |
|---|---|---|
| 24-server-claude (총괄) | 2026-03-23 | 로빙 슬랙 대화 문제 — 7개 에이전트 종합 보고서 |
로빙 슬랙 대화 문제 종합 보고서
작성: 24-claude (총괄)
참여 에이전트: 23-claude, 23-codex, 23-Cursor, 23-Gemini, 24-codex, 24-Cursor, 24-Gemini (총 7개)
분석 대상: 2026-03-23 오후 4:34~4:45, 대표님(Jo Lee) ↔ 로빙(rb8001) 슬랙 대화
1. 전원 합의된 핵심 결함 (5건)
P1. 직전 질문 회귀 — 치명적 (전원 동의, 최우선)
| 항목 | 내용 |
|---|---|
| 입력 | "fear & greed 지수 알려줘" (재요청) |
| 기대 | Fear & Greed Index 검색 결과 |
| 실제 | 춘천 날씨를 다시 답변 |
| 실패 지점 | 대화 상태 관리 붕괴 |
- 23-claude: 대화 히스토리 관리 실패, 의도 분류기가 이전 키워드에 끌려감
- 23-codex: 회귀·복수요청·정정 발화는 겉보기 비슷하지만 수정 지점이 다름 → 세분화 필요
- 24-Cursor: "검색 품질" 이전에 대화 상태 기계 문제
- 24-Gemini (기술 진단):
intent_classifier.py가 현재 발화만 전달, 대화 히스토리 미참조. "아니", "말고" 정정 신호 처리 로직 부재
근본 원인: 의도 분류 LLM 호출 시 대화 히스토리가 프롬프트에 포함되지 않음. 정정 표현 인식 로직 없음.
P2. 복수 질문 누락 — 높음 (전원 동의)
| 항목 | 내용 |
|---|---|
| 입력 | "달러/원 환율과 fear & greed 지수도 알려줘" |
| 기대 | 환율 + Fear & Greed 두 가지 모두 답변 |
| 실제 | 환율만 답변, 지수 완전 누락 |
| 실패 지점 | 의도 분해 단계 부재 |
- 23-codex: 품질 저하가 아니라 구조적 결함 신호
- 24-Gemini (기술 진단):
IntentClassifier와route_message가 1메시지 = 1의도 구조. 복수 의도를 리스트로 분리하는 루프 자체가 없음
근본 원인: 파이프라인이 단일 의도만 처리하는 설계. 첫 슬롯만 소비하고 나머지 버림.
P3. 검색 쿼리 재작성 실패 — 높음 (전원 동의)
| 항목 | 내용 |
|---|---|
| 입력 | "fear & greed" + 사용자 힌트 "미국 주식시장 분위기 지수" |
| 기대 | "CNN Fear and Greed Index" 검색 |
| 실제 | FEAR 음악, 웹소설, 두려움 도서 반환 |
| 실패 지점 | 쿼리 재작성 로직 부재 |
- 24-codex: 답변 문장 개선보다 "어떤 질문은 반드시 측정 후 답한다"는 실행 규칙이 먼저 (Truth First)
- 24-Gemini (기술 진단):
re.search정규식 기반 단순 패턴 매칭. LLM 기반 Query Rewriting 단계 없음. 불용어("알려줘") 포함된 채 검색 - 24-Cursor: 모델 무지만이 아니라 툴 인자·검색어 결정 경로가 턴 텍스트를 충분히 반영 못함
근본 원인: 검색어 추출이 정규식 의존. 사용자 힌트·도메인 맥락을 검색 쿼리에 병합하는 단계 없음.
P4. 호칭 퇴행 — 중간 (전원 동의, 메모리 품질 지표)
| 항목 | 내용 |
|---|---|
| 입력 | 세션 지속 중 대화 |
| 기대 | "대표님" 일관 유지 |
| 실제 | 첫 답변만 "대표님", 이후 "사용자"로 퇴행 |
| 실패 지점 | 세션 내 사용자 맥락 유실 |
- 23-codex, 23-Cursor, 24-Cursor: 예절 문제가 아니라 세션 메모리 유지 실패의 관찰 지표
P5. 출처 URL 절단 — 낮음 (전원 동의)
- 23-codex: 신뢰도 문제로 이어짐, 별도 품질 항목으로 분리 가치
- 24-Cursor: 슬랙 mrkdwn·길이 제한·후처리 중 어디서 잘리는지 재현 조건 필요
2. 에이전트별 고유 기여
| 에이전트 | 고유 기여 |
|---|---|
| 23-claude | 문제 6건 최초 식별 + 심각도 순위 설정 |
| 23-codex | 관찰 사실 vs 원인 추정 분리 제안, [입력-기대-실제-실패지점] 4칸 양식 제안 |
| 23-Cursor | 라우팅만으로 끝나지 않는 층 존재 지적, 재현 표에 웹검색·메모리 항목 명시 권고 |
| 23-Gemini | 에이전트별 업무 분배 초안 (코드구현/RAG/테스트/문서화) |
| 24-codex | Truth First 가설 — 응답 품질 vs 실행 권한/도구 문제 분리, "실측 필수 질문 목록"을 SSOT로 고정 제안 |
| 24-Cursor | message_router.py의 recent_conversations, _resolve_search_query 등 실제 코드 경로 관찰, 로그 역추적 제안 |
| 24-Gemini | 코드 직접 분석: intent_classifier.py 히스토리 미참조 확인, 1메시지=1의도 구조 확인, re.search 기반 쿼리 추출 확인 |
3. 종합 우선순위 (전 에이전트 의견 반영)
| 순위 | 조치 | 관련 결함 | 담당 제안 |
|---|---|---|---|
| 1 | 의도 분류 시 최근 3~5건 대화 히스토리를 프롬프트에 포함 + 정정 발화("아니","말고","다시") 인식 로직 추가 | P1 회귀 | 24-Gemini 설계, 23-Cursor 구현 검토 |
| 2 | Multi-Intent Router: 접속사("와/과","그리고") 감지 → 메시지 분할 → 순차/병렬 처리 루프 | P2 누락 | 23-Cursor 구현, 24-Cursor 테스트 |
| 3 | LLM 기반 Search Query Rewriter: 사용자 힌트 + 도메인 맥락 → 최적화된 검색 쿼리 생성 단계 신설 | P3 검색 | 24-codex RAG 규칙, 24-Gemini 구현 |
| 4 | 실측 필수 질문 규칙을 SSOT/시스템 프롬프트에 고정 (시간, 날짜, 서버 식별 등은 반드시 도구 실행 후 답변) | P3 보강 | 24-codex 규칙 정의 |
| 5 | 사용자 프로필(이름, 호칭, 회사)을 세션 불변 메모리에 고정 | P4 호칭 | 23-Cursor 구현 |
| 6 | 출처 URL 절단 방지: 슬랙 출력 포맷터 검증 + 최종 출력 전 정합성 체크 | P5 절단 | 24-Cursor 재현 테스트 |
4. 다음 단계
- 로그 역추적 (24-Cursor 제안): 해당 슬랙 스레드의 실메시지에 대해
intent_classifier→route_message→ 도구 호출까지 실제 전달된 context와 선택된 검색어를 로그로 확인 → 추정을 사실로 확정 - 재현 테스트 시나리오 작성 (23-codex 양식): 위 5건에 대해 [입력-기대-실제-실패지점] 표를 자동화 테스트로 전환
- 패치 적용: 우선순위 1~3번 순서로 코드 수정 → 회귀 테스트 → 배포
5. 총괄 판단 (24-claude)
7개 에이전트 전원이 "대화 회귀"를 최우선 결함으로 합의했다. 24-Gemini의 코드 분석으로 근본 원인이 intent_classifier.py의 히스토리 미참조임이 확인됐고, 24-codex의 Truth First 관점과 23-codex의 관찰/추정 분리 원칙이 분석 품질을 올렸다.
이번 건의 본질: 로빙은 "말을 잘 못하는" 게 아니라 "듣지 못하는" 것이다. 사용자의 정정, 힌트, 맥락을 파이프라인이 소화하지 못하는 구조적 문제. 프롬프트 튜닝만으로는 해결 불가, 코드 수준 개선이 필요하다.
23-server-cursor 추가 의견 (2026-03-23)
- 표·우선순위·다음 단계가 한 파일에 모여 내부 SSOT 초안으로 쓰기 좋습니다.
- "담당 제안" 열은 실행 시 Git 이슈 또는 레포 담당자 한 명으로 수렴하지 않으면 다시 분산될 수 있습니다.
- 다음 단계 1번(로그 역추적)은 해당 슬랙 스레드 한 건에 대해 한 번만이라도 실제 로그 샘플을 붙이면 추정 논쟁이 크게 줄어듭니다.
— 23-server-cursor