diff --git a/journey/troubleshooting/260311_naverworks_briefing_insight_preamble_leak.md b/journey/troubleshooting/260311_naverworks_briefing_insight_preamble_leak.md new file mode 100644 index 0000000..87a0554 --- /dev/null +++ b/journey/troubleshooting/260311_naverworks_briefing_insight_preamble_leak.md @@ -0,0 +1,38 @@ +--- +tags: [naverworks, briefing, insight, llm, troubleshooting] +--- + +# NAVER WORKS 브리핑 인사이트 서두 문구 누출 + +## 문제 +- 2026-03-11 NAVER WORKS 일일 브리핑에서 인사이트 1줄 앞에 아래 같은 서두가 함께 출력됐습니다. +- `로빙입니다. 사용자님께서는 오늘 알아야 할 메일 핵심 내용을 1줄로 요약해 드리겠습니다.` + +## 기대 동작 +- 인사이트는 바로 핵심 내용으로 시작해야 합니다. +- 예: `회신 필요 4건(오후 3시까지 1건 포함), 결제/청구 1건, 안내/공지 9건` + +## 확인된 사실 +- 인사이트 생성 프롬프트는 이미 `인사말, 서두 없이 바로 내용 시작`을 요구합니다. +- 관련 코드: + - `rb8001/app/services/skills/naverworks_briefing.py` + - `_call_llm_for_insight()` 프롬프트 + - `_format_slack_message()`의 `*{insight}*` 블록 +- Slack 포맷터는 전달받은 `insight`를 그대로 출력하므로, 해당 문구는 포맷터가 아니라 LLM 출력에서 유입된 것입니다. + +## 원인 +- 프롬프트 제약만 있고, 실제 출력값에 대한 강제 후처리가 없습니다. +- 그 결과 LLM이 프롬프트를 어겨도 서두 문구가 그대로 Slack에 노출됩니다. + +## 영향 +- 1줄 인사이트 UX 규칙이 깨집니다. +- 브리핑 첫 줄이 장황해져 핵심 전달력이 떨어집니다. +- 테스트는 정상 케이스만 검증하고 있어 이런 프리앰블 누출을 막지 못합니다. + +## 권장 조치 +1. `_generate_insight()` 또는 Slack 포맷 직전에 서두 제거 후처리를 추가합니다. +2. 프롬프트를 더 강하게 제한해 `회신 필요`, `결제/청구`, `안내/공지` 같은 분류어로 바로 시작하도록 고정합니다. +3. 테스트에 `로빙입니다`, `요약해 드리겠습니다`, `사용자님께서는` 같은 금지 서두 케이스를 추가합니다. + +## 한 줄 결론 +- 현재 출력은 의도된 정상 동작이 아니라, NAVER WORKS 브리핑 인사이트에 LLM 서두 문구가 누출된 상태입니다. diff --git a/journey/troubleshooting/README.md b/journey/troubleshooting/README.md index 88efbf8..71b8b20 100644 --- a/journey/troubleshooting/README.md +++ b/journey/troubleshooting/README.md @@ -36,3 +36,5 @@ - 51124에서 비관리 openclaw-gateway 상주 프로세스 확인 및 종료/검증 기록 - [260309_9시_네이버이메일분석_미전송_실패은닉_해결.md](./260309_9시_네이버이메일분석_미전송_실패은닉_해결.md) - 9시 브리핑 미전송의 직접 원인인 `skill-email` timeout과 실패 은닉 제거 기록 +- [260311_naverworks_briefing_insight_preamble_leak.md](./260311_naverworks_briefing_insight_preamble_leak.md) + - NAVER WORKS 브리핑 인사이트 앞에 `로빙입니다` 같은 서두가 노출된 문제 기록