virtual-insanity
← 리포트 목록

gmail_newsletter 본문 품질점검

2026-04-16 qc [phase17, qc, gmail-newsletter]

결론

최근 발송된 newsletter 요약 본문은 품질 문제가 맞다. 최신 샘플 3개가 모두 한국어 요약이 아니라 영어 요약/메타 분석문으로 저장되어 있었고, 그 상태가 sector=report 토픽으로 그대로 발송되는 구조였다.

수정은 완료했다. gmail_newsletter_collector.py의 요약 프롬프트를 한국어 리서치 메모 형식으로 재설계했고, 뉴스레터 전용 모델 체인을 Codex → Copilot gpt-4o-mini → Ollama로 바꿨다. Codex/OpenRouter 장애 시 Ollama로 바로 떨어져 품질이 깨지던 문제를 줄이기 위한 조치다. 추가로 한국어/형식 검사를 통과하지 못하면 2차 한국어 재작성 가드가 돌게 했다.

확인한 구조

대상 스크립트: ~/.hermes/workspace/scripts/pipeline/gmail_newsletter_collector.py

  • Gmail 본문 추출 → _summarize(body)_save_to_vault(...)_send_digest(results) 순서.
  • 저장 위치: ~/knowledge-agent/100 수신함/121 뉴스레터/.
  • Telegram 발송은 _send_digest()send_sector("report", ...)로 요약 전문을 보낸다.
  • Hermes cron은 wrapper를 통해 2개 Gmail 토큰을 순차 실행한다.
  • gmail_token.json: [email protected] 계정.
  • gmail_token_mangdeng2.json: Damnang 수신 계정.

cron 정의 확인:

{
  "id": "ocAQ-AQ004-gmail-newsletter-command",
  "name": "gmail-newsletter-collector",
  "enabled": true,
  "type": "shell",
  "schedule": {"expr": "47 6 * * *", "tz": "Asia/Seoul"},
  "command": "... gmail_newsletter_collector_dual.sh --days 2"
}

본문 샘플 3개 품질 평가

1) Damnang — 260415_Damnang_Credo-Technology-Deep-Dive.md

기존 저장 본문 샘플:

This article provides an in-depth analysis of Credo Technology (CRDO), focusing on its technical moat, the significance of its recent acquisition of DustPhotonics, and how it compares to other players in the market like Astera Labs and Marvell.

평가:

  • 한국어 비율: 0.0.
  • 원문을 그대로 영어로 구조화한 수준이다.
  • Credo, DustPhotonics, SerDes, Astera Labs, Marvell, FY26 Q3 매출 407M/201% 성장 등 핵심 수치는 일부 잡았지만 한국어 요약 요구를 완전히 위반했다.
  • 투자 시사점은 일반론이고, 해리가 바로 볼 수 있는 “왜 중요한가”가 약하다.

2) Compounding Quality — 260415_CompoundingQuality_A-Strategy-For-Challenging-Times.md

기존 저장 본문 샘플:

The text you provided appears to be a direct copy-paste of an email ... Here is a breakdown ... I am an AI, not a financial advisor.

평가:

  • 한국어 비율: 0.0.
  • The text you provided, Here is, I am an AI 같은 ChatGPT 메타 발화가 그대로 들어갔다.
  • British American Tobacco, 포트폴리오 976,000달러, 연 배당 32,160달러, 월 2,680달러, 일 88달러, 주가 +59.0%, 배당수익률 9.2%, 90일 환불 등 사실은 일부 잡았지만 뉴스레터 요약이 아니라 광고 분석문처럼 변했다.
  • “일반 투자 조언 아님” 류 문장이 들어가 sector report 품질을 떨어뜨렸다.

3) Linas Newsletter — 260415_LinasNewsletter_Inside-Revoluts-PRAGMA-The-Foundation-Mo.md

기존 저장 본문 샘플:

Based on the email preview you provided ... Would you like a deeper dive into the technical architecture of PRAGMA...

평가:

  • 한국어 비율: 0.0.
  • Revolut PRAGMA, arXiv 2604.08649, 25M users, 111 countries, 40B banking events, 207B tokens, PR-AUC/Recall 개선 수치 등 핵심 정보는 잡았지만 영어 요약이다.
  • 마지막에 후속 질문이 붙어 자동 리포트 본문으로 부적합하다.
  • 카테고리 핀테크-AI 자체는 맞지만, 태그가 너무 일반적이고 “Revolut/PRAGMA/금융 foundation model” 같은 구체 태그가 없다.

원인

  1. 기존 프롬프트가 “한국어로 요약” 정도의 약한 지시였고, 메타 발화/면책문구/후속 질문을 금지하지 않았다.
  2. 2026-04-16 기준 LLM 로그에서 openai-codex/gpt-5.4는 Hermes gateway의 Codex token refresh 401로 실패했다.
  3. OpenRouter는 API key 없음으로 실패했다.
  4. 그래서 긴 영어 뉴스레터가 ollama/qwen3.5:4b로 떨어졌고, 이 모델이 긴 영문 마케팅/테크 본문에서 영어 요약을 그대로 내는 패턴이 확인됐다.
  5. _send_digest()summary_full을 그대로 sector=report로 보내므로 저장 품질 문제가 곧 발송 품질 문제가 됐다.

수정 내역

수정 파일:

  • ~/.hermes/workspace/scripts/pipeline/gmail_newsletter_collector.py

백업:

  • ~/.hermes/workspace/scripts/pipeline/gmail_newsletter_collector.py.bak-260416-qc-newsletter

적용 내용:

  1. 뉴스레터 전용 모델 체인 추가.
NEWSLETTER_MODEL_CHAIN = env_override or [
    "openai-codex/gpt-5.4",
    "github-copilot/gpt-4o-mini",
    "ollama/qwen3.5:4b",
]
  1. 프롬프트 재설계.

  2. 한국어 전용.

  3. 메타 발화 금지.
  4. 일반 투자 면책문구 금지.
  5. 원문에 없는 회사명/수치/날짜/제품명 생성 금지.
  6. 5~8개 핵심 포인트 강제.
  7. 구체 수치/회사명/제품명 보존.
  8. 핵심 요약 / 핵심 포인트 / 투자·시장 시사점 / 분류 태그 형식 강제.

  9. 한국어 품질 가드 추가.

  10. 한글 비율이 낮거나 필수 제목이 없으면 2차 한국어 재작성.

  11. The text you provided, Would you like, I am an AI, 분석해 드립니다, 공식 금융 조언 같은 문구 감지 시 재작성.

  12. 중복 import 정리.

검증 결과

문법 검증

python3 -m py_compile ~/.hermes/workspace/scripts/pipeline/gmail_newsletter_collector.py
PY_COMPILE_OK

모델 체인 확인

NEWSLETTER_MODEL_CHAIN= ['openai-codex/gpt-5.4', 'github-copilot/gpt-4o-mini', 'ollama/qwen3.5:4b']

기본 체인 짧은 본문 테스트

HAS_REQUIRED= True
KOREAN_RATIO= 0.593

요약 결과는 지정한 4개 제목을 모두 포함했고 한국어로 나왔다.

Damnang 최신 글 재실행

실제 Gmail에서 전용 토큰으로 Damnang 최신 본문을 가져와 재요약했다.

GMAIL_MSG_ID=19d8f2d97f5eb575
SUBJECT=Credo Technology Deep Dive
DATE=Wed, 15 Apr 2026 03:26:50 +0000
[email protected]
BODY_CHARS=36433
OUTPUT_CHARS=869
KOREAN_RATIO=0.680
model_chain_for_test=github-copilot/gpt-4o-mini

재요약 결과 파일:

  • ~/knowledge-agent/400-reports/260416_qc_newsletter_rerun_damnang.md

재요약 샘플:

### 핵심 요약
Credo Technology는 최근 DustPhotonics를 인수하며 광통신 분야로의 확장을 모색하고 있으며, FY26 Q3에 4억 7백만 달러의 매출을 기록하여 전년 대비 201% 성장했습니다. 이 인수는 Credo의 기술적 강점을 더욱 강화하고 경쟁업체들과의 차별화를 가져올 것으로 기대됩니다.

### 핵심 포인트
- Credo Technology (CRDO)는 FY26 Q3에 4억 7백만 달러의 매출을 기록하며 전년 대비 201% 성장했습니다.
- 주가는 한때 213달러에서 80달러대로 하락했으나 현재 157달러로 반등했습니다.
- DustPhotonics 인수는 Credo가 단순히 광통신 회사로 전환하는 것이 아니라, 기존 기술과의 시너지를 통해 경쟁력을 강화하는 전략입니다.
- Credo의 기술적 강점은 SerDes(Serializer/Deserializer) 기술에 기반하고 있으며, 이는 데이터 전송의 효율성을 높이는 데 기여합니다.

Compounding Quality 재실행

Ollama 단독 경로에서도 한국어 재작성 가드가 동작하는지 확인했다.

GMAIL_MSG_ID=19d91241f1707e2c
SUBJECT=🔥 A Strategy For Challenging Times
BODY_CHARS=9497
OUTPUT_CHARS=815
KOREAN_RATIO=0.789
model_chain_for_test=ollama/qwen3.5:4b

재요약 결과 파일:

  • ~/knowledge-agent/400-reports/260416_qc_newsletter_rerun_compoundingquality.md

남은 리스크

  • 기존에 이미 저장·발송된 나쁜 뉴스레터 파일은 자동으로 고쳐지지 않았다. 필요하면 최신 5~10개를 새 프롬프트로 재생성해야 한다.
  • Codex gateway는 여전히 Codex token refresh failed with status 401가 관측된다. 근본적으로는 Hermes OAuth 복구가 필요하다.
  • OpenRouter는 API key 없음 상태다. 현재 뉴스레터 체인에서는 제거했지만, 다른 파이프라인 로그에는 계속 실패가 남을 수 있다.
  • Copilot gpt-4o-mini를 뉴스레터 품질 경로에 넣었으므로 일일 quota 모니터링이 필요하다. 단, gpt-5-mini 403 경로는 쓰지 않았다.
  • Damnang처럼 긴 본문은 8000자 truncation 제한 때문에 후반부 논지를 일부 놓칠 수 있다. 이번 수정 범위에는 포함하지 않았지만, 추후 “본문 섹션별 분할 요약”으로 개선 가능하다.

자체평가

  • 정확성: 4.6/5 — 실제 최신 본문 3개에서 품질 문제를 확인했고, Damnang/Compounding 재요약으로 개선을 검증했다.
  • 완성도: 4.4/5 — 운영 프롬프트와 모델 체인 수정 완료. 기존 나쁜 노트 재생성은 별도 작업으로 남았다.
  • 검증: 4.6/5 — py_compile, 모델 체인 확인, 실제 Gmail 본문 재요약, 한국어 비율/필수 제목 검증 완료.
  • 최소 변경: 4.7/5 — gmail_newsletter_collector.py의 요약 경로만 수정했고, 발송/저장 구조는 건드리지 않았다.

종합: 4.6/5