docs: expand naverworks briefing preamble leak troubleshooting

This commit is contained in:
Claude-51124 2026-03-11 17:14:21 +09:00
parent 2d64941330
commit 4ffccd62f5

View File

@ -8,10 +8,21 @@ tags: [naverworks, briefing, insight, llm, troubleshooting]
- 2026-03-11 NAVER WORKS 일일 브리핑에서 인사이트 1줄 앞에 아래 같은 서두가 함께 출력됐습니다.
- `로빙입니다. 사용자님께서는 오늘 알아야 할 메일 핵심 내용을 1줄로 요약해 드리겠습니다.`
## 발생 시점
- 2026-03-11 09:00 KST NAVER WORKS 일일 브리핑 실행에서 확인됐습니다.
- 같은 실행 로그에서 아래 순서가 확인됐습니다.
- `09:00:00` `Running job: NAVER WORKS Daily Briefing`
- `09:00:02` `Generated insight: 로빙입니다...`
- `09:00:04` `Briefing sent successfully: 14 emails`
## 기대 동작
- 인사이트는 바로 핵심 내용으로 시작해야 합니다.
- 예: `회신 필요 4건(오후 3시까지 1건 포함), 결제/청구 1건, 안내/공지 9건`
## 재현 조건
- `rb8001`의 NAVER WORKS 일일 브리핑 스케줄 또는 동일한 수동 실행 경로에서 재현 가능합니다.
- 메일 조회와 Slack 전송은 정상이어도, 인사이트 생성 결과에 서두가 포함되면 그대로 사용자에게 노출됩니다.
## 확인된 사실
- 인사이트 생성 프롬프트는 이미 `인사말, 서두 없이 바로 내용 시작`을 요구합니다.
- 관련 코드:
@ -19,6 +30,8 @@ tags: [naverworks, briefing, insight, llm, troubleshooting]
- `_call_llm_for_insight()` 프롬프트
- `_format_slack_message()``*{insight}*` 블록
- Slack 포맷터는 전달받은 `insight`를 그대로 출력하므로, 해당 문구는 포맷터가 아니라 LLM 출력에서 유입된 것입니다.
- `_generate_insight()`는 줄바꿈만 제거하고, 문장 시작 패턴에 대한 검증이나 정규화는 하지 않습니다.
- 테스트는 `회신 필요 1건, 결제 안내 1건, 일반 공지 4건` 같은 정상 출력만 검증하고, 금지 서두 누출 케이스는 다루지 않습니다.
## 원인
- 프롬프트 제약만 있고, 실제 출력값에 대한 강제 후처리가 없습니다.
@ -34,5 +47,10 @@ tags: [naverworks, briefing, insight, llm, troubleshooting]
2. 프롬프트를 더 강하게 제한해 `회신 필요`, `결제/청구`, `안내/공지` 같은 분류어로 바로 시작하도록 고정합니다.
3. 테스트에 `로빙입니다`, `요약해 드리겠습니다`, `사용자님께서는` 같은 금지 서두 케이스를 추가합니다.
## 수정 후 검증 기준
- Slack 인사이트 첫 문장이 `회신 필요`, `결제/청구`, `안내/공지`, `오후 N시까지 회신 필요` 같은 핵심 분류 표현으로 바로 시작해야 합니다.
- `로빙입니다`, `사용자님께서는`, `요약해 드리겠습니다` 같은 서두 문구는 0건이어야 합니다.
- 스케줄 실행 로그에서 `Generated insight:` 값과 실제 Slack 노출 문구가 같은 기준으로 검증되어야 합니다.
## 한 줄 결론
- 현재 출력은 의도된 정상 동작이 아니라, NAVER WORKS 브리핑 인사이트에 LLM 서두 문구가 누출된 상태입니다.