← 리포트 목록
매크로 analyst 전면 재설계 구현 보고
2026-04-16
macro
[macro, analyst, telegram, knowledge-context, hermes]
결론
매크로 analyst 발송 경로를 기존 공통 sender에서 매크로 전용 redesigned sender로 분리해 적용했다. 실제 market 토픽으로 재전송했고, 최신 도달 증거는 message_id 2395다.
해리 pain point 5개 반영 상태:
| 요구 | 적용 결과 |
|---|---|
| 정책 반복 → 동적 생략 | 최근 정책 이벤트/발언이 없으면 정책 변화 섹션 자체를 생략. 이번 본문에서도 생략됨. |
| FX 해석 추가 | DXY, EUR/USD, USD/JPY, USD/KRW, USD/CNY, USD/TWD 누락 표시 추가. |
| 재정/무역/원자재 확장 | TGA/RRP/EPU, 호르무즈/LNG/공급망, 에너지·금속·농산물 섹션 추가. |
| 종합 판단 Top 3~5 | 종합 판단 4개 항목으로 방향·확신·근거를 한 줄씩 제시. |
| 텔레그램/뉴스레터/블로그 해석 인용 | 해석 근거에 텔레그램, 뉴스레터, 블로그, 매크로채권 소스 4개 노출. |
가드 결과: 본문 1911자 / 금지어 0건 / 실제 발송 OK.
변경 파일
| 파일 | 변경 |
|---|---|
/Users/ron/.hermes/workspace/scripts/macro_context_filter.py |
신규. macro-timeseries와 knowledge 소스에서 최근 지표·해석글 추출. |
/Users/ron/.hermes/workspace/scripts/macro_redesign_report.py |
신규. 2500자 제한, 금지어 검사, 동적 정책 생략, FX/재정/무역/원자재/Top 판단/해석 근거 생성 및 Telegram 발송. |
/Users/ron/.hermes/workspace/scripts/analyst_common_wrapper.sh |
macro만 전용 sender로 라우팅. 나머지 analyst는 기존 sender 유지. |
/Users/ron/.hermes/workspace/scripts/analyst_common_wrapper.sh.bak-macro-redesign-20260416T092905 |
wrapper 백업. |
wrapper diff 핵심:
- python3 "$SCRIPTS_DIR/analyst_common_sender.py" "$ANALYST" "$LATEST" "$TSV" "$WRAP_LOG"
+ if [ "$ANALYST" = "macro" ]; then
+ python3 "$SCRIPTS_DIR/macro_redesign_report.py" "$LATEST" "$TSV" "$WRAP_LOG"
+ else
+ python3 "$SCRIPTS_DIR/analyst_common_sender.py" "$ANALYST" "$LATEST" "$TSV" "$WRAP_LOG"
+ fi
Phase 1~6 구현 결과
Phase 1 — 기존 pain point 확인
이전 개선본은 아래처럼 수치 중심이었다.
<b>🌍 매크로 리포트</b>
날짜: 2026-04-16
판정: Recovery · 신뢰도 60%
데이터 신선도: 2026-04-14 close
WTI: -7.3%, Brent -4.2%, TTF -8.4%, Heat Oil -9.3%
VIX: 18.5, 전면 콘탱고
US10Y: 4.26%, 실질금리 1.95%, BEI 2.38%
시나리오: base 60 / bull 20 / bear 20
문제: FX 해석이 없고, 재정/무역/원자재가 얇고, 정책 문구가 반복될 수 있으며, 해석 출처가 본문에 드러나지 않았다.
Phase 2 — context filter 추가
macro_context_filter.py가 아래 소스를 읽는다.
- Telegram:
~/knowledge-agent/100 수신함/118 텔레그램 - 매크로채권:
~/knowledge-agent/100 수신함/116 croned_data/매크로채권 - Newsletter:
~/knowledge-agent/100 수신함/121 뉴스레터 - Blog/ranto28/호르무즈:
~/knowledge-agent/**/*ranto28*.md,*호르무즈*.md - Credit mail:
~/knowledge-agent/100-inbox/119-크레딧메일 - Timeseries:
~/.hermes/workspace/memory/macro-timeseries/*.json
확인된 최근 지표 예시:
RRPONTSYD 2026-04-15 value 0.223 change -0.083
T10YIE 2026-04-15 value 2.39 change +0.02
T5YIE 2026-04-15 value 2.61 change +0.02
T5YIFR 2026-04-15 value 2.17 change +0.02
T10Y2Y 2026-04-15 value 0.53 change +0.03
Phase 3 — 매크로 전용 report builder 추가
macro_redesign_report.py 구성:
- 헤드라인
- 밤사이 지표
- FX
- 재정
- 무역/공급망
- 원자재
- 정책 변화(동적 생략)
- 종합 판단 Top 4
- 해석 근거
- as-of
가드:
MAX_CHARS = 2500- 금지어 검사 후 하나라도 나오면 발송 실패 처리
- 성공 시
latest.json에macro_redesign메타 기록 - TSV에
message_id/chat_id/topic_id/status기록
Phase 4 — wrapper 연결
analyst_common_wrapper.sh에서 macro만 전용 sender로 분기했다. fundamental/technical/pm 경로는 바꾸지 않았다.
Phase 5 — no-send 검증 + 실제 전송
검증 명령:
python3 -m py_compile /Users/ron/.hermes/workspace/scripts/macro_context_filter.py
python3 -m py_compile /Users/ron/.hermes/workspace/scripts/macro_redesign_report.py
bash -n /Users/ron/.hermes/workspace/scripts/analyst_common_wrapper.sh
ANALYST_COMMON_SKIP_RUN=1 ANALYST_COMMON_NO_SEND=1 ANALYST_COMMON_PRINT_BODY=1 \
/bin/bash /Users/ron/.hermes/workspace/scripts/analyst_common_wrapper.sh macro
ANALYST_COMMON_SKIP_RUN=1 \
/bin/bash /Users/ron/.hermes/workspace/scripts/analyst_common_wrapper.sh macro
실제 전송 결과:
{"analyst":"macro","ok":true,"message_id":2395,"status":"success","sector":"market","chat_id":-1003522748967,"topic_id":5,"error":null,"body_len":1911,"forbidden_hits":[],"no_send":false}
TSV 증거:
2026-04-16T09:31:20 OK 2395 market -1003522748967 5 none
latest.json 기록:
{
"at": "2026-04-16T09:31:20",
"body_len": 1911,
"message_id": 2395,
"status": "success",
"sector": "market",
"overnight_indicators_count": 5,
"interpretation_traces_count": 4,
"forbidden_hits": []
}
Phase 6 — 최종 본문 샘플
<b>🌍 매크로 브리핑</b>
<b>📌 헤드라인</b> WTI 91.87(-7.3%) 급락. 호르무즈 기뢰 제거와 우회로 복구가 에너지 프리미엄을 낮췄다.
전일 대비: Recovery 유지, Risk-On은 접근 단계. 물가 전이와 공급망 후행 충격이 남았다.
<b>📊 밤사이 지표</b>
• RRP 잔액 0.22, 전회대비 -0.08 (2026-04-15)
• 10년 기대물가 2.39, 전회대비 0.02 (2026-04-15)
• 5년 기대물가 2.61, 전회대비 0.02 (2026-04-15)
• 5년후5년 기대물가 2.17, 전회대비 0.02 (2026-04-15)
<b>💱 FX</b>
• DXY 98.14(-0.2%) — Fed 인하 기대(FF선물 61-69bp) + 유럽·영국 통화 강세
• EUR/USD 1.18(+1.0%) — ECB-Fed 정책 격차 축소 기대 + 유로존 상대적 안정
• USD/JPY 158.8(-0.5%) — BOJ 정상화 완만 + 캐리 트레이드 확대. 160 개입 경계선 접근
• USD/KRW 1,472(-0.7%) — 달러 약세 주도(-0.7%). 다만 전년비 +2.9%, 3고(고금리·고유가·고환율) 구조 잔존
• USD/CNY 6.82(-0.2%) — 달러 약세 주도. 중국이 이란 원유 호르무즈 통과 유지(Reuters 4/14) — 에너지 조달 안정이 위안 받침
• USD/TWD: 수집값 없음 — 다음 collector 보강 대상
<b>🏛️ 재정</b>
• 미국 TGA 748,376(2026-04-08), RRP 0.22(2026-04-15) — 재무부 현금과 단기 유동성 경로가 위험자산 수급에 직접 연결
• 정책 불확실성 지수 430.0 — 관세·에너지 대응 재정이 커지면 장기금리 부담으로 이어짐
<b>🚢 무역/공급망</b>
• 호르무즈 부분봉쇄 지속. 미 해군 기뢰 제거 개시(4/11). OPEC+ 호르무즈 개방 시 증산 합의(4/5). 사우디 East-West 파이프라인 복구(4/12). IPSA 파이프라인 가동 중. 중국이 이란 원유 호르무즈 통과 유지, 인도 러시아 원유 매입…
• 카타르 Ras Laffan LNG 피격(3/18), Train 4+6 12.8Mtpa 소실, 복구 3-5년. Force majeure 선언. 호주 사이클론 영향으로 LNG 일시 차질. 글로벌 LNG 공급 경로 재편 진행 중.
<b>🛢️ 원자재</b>
• 에너지: WTI 91.87(-7.3%), Brent 95.17(-4.2%), TTF 42.53(-8.4%) — 기뢰 제거와 우회로 복구가 가격을 눌렀다
• 금속/귀금속: 금 4,858(+2.4%), 은 79.28(+5.0%), 구리 6.08(+1.7%) — 달러 약세와 공급 불안이 함께 반영
• 농산물: 밀 602.2(+3.4%), 대두 1,156(-0.5%), 옥수수 443.0(+0.6%) — 식품 물가 전이 확인 필요
• 호르무즈: 부분봉쇄; 한국 비축유 한국 석유공사 비축기지 운영 중에 있으며 총 146백만 배럴 규모의 비축시설과 1억 배럴 (공동비…
<b>🎯 종합 판단</b>
1) 유가 충격 완화: 하락·확신 중 — 기뢰 제거/우회로 복구가 에너지 프리미엄을 낮춤
2) 물가 경로는 아직 끈적함: 중립·확신 중 — 유가 하락에도 운송·식품 전이가 남음
3) 원화 숨통: 상승·확신 중 — 달러 약세가 돕지만 고유가와 국내 금리 제약이 남음
4) 공급망 리스크: 중립·확신 중 — LNG·나프타 차질은 한국 석화/전력비용에 후행 반영
<b>🧾 해석 근거</b>
• 텔레그램: 유가가 인플레이션에 미치는 영향 — CPI 6%의 함정
• 뉴스레터: BondEconomics Ceasefire
• 블로그: 호르무즈해협 기뢰 매설 시 영향
• 매크로채권: 키움 김승혁 매크로: 채권 Note_이란 사태 3주차 점검
<i>as-of 2026-04-14 · redesign v1 · 2500자 제한</i>
금지어/표현 검사
독립 검사:
chars=1912
hits=[]
sections=['💱 FX','🏛️ 재정','🚢 무역/공급망','🛢️ 원자재','🎯 종합 판단','🧾 해석 근거']
매크로/테크니컬 경계 준수:
- 본문에 z-score, MA, 이동평균, 표준편차, RSI, 볼린저, 브레이크아웃, 모멘텀 없음.
- 기술적 신호 대신 CPI/PCE/GDP/고용/금리/FX/중앙은행/유가/원자재/재정/공급망 관점으로 구성.
잔존 리스크
- USD/TWD는 현재 수집값이 없어 누락 표시만 했다. 다음 collector 보강 대상.
- 재정은 TGA/RRP/EPU 중심이다. 재정적자, 국채 발행, 세수 캘린더 전용 collector가 붙으면 품질이 더 좋아진다.
- 정책 동적 생략은 local knowledge 수집물의 최신성에 의존한다. 정책 이벤트가 수집되지 않으면 생략될 수 있다.
- 원자재/공급망 세부 문구 일부는 기존 context 요약 길이 제한 때문에 말줄임표가 들어간다. 다음 라운드에서 소스별 1줄 요약 품질을 올리면 더 매끈해진다.
자체평가
- 정확성: 4.8/5 — 5개 pain point 모두 반영했고 실제 Telegram 도달까지 확인.
- 완성도: 4.6/5 — wrapper와 전용 sender는 완결. USD/TWD collector는 후속 과제.
- 검증: 4.8/5 — py_compile, bash -n, no-send, 실제 send, TSV/latest 기록 확인.
- 최소 변경: 4.7/5 — macro 경로만 분기했고 다른 analyst 경로는 유지.
종합: 4.7/5.