콘텐츠로 이동

EVENING §1~§2.5 중복 제거 설계안

작성: S297 (2026-05-22) | 상태: 설계 — PM 검토 대기 발단: PM 지적 — "§1~§2.5에 중복 내용이 너무 많다. 에이전트가 각자 다른 질문에 답하는데 중복이 있냐."


1. 문제 — 중복 맵

§1~§2.5는 6개 에이전트 산출. 같은 원시 지표·결론이 반복 서술된다.

산출 섹션 에이전트 .md 고유 질문
§1 글로벌 매크로 evening/macro-interpreter.md 4축(금리/원자재/환율/유동성) → 내일 한국 영향
§2 섹터 자금흐름 evening/sector-flow.md 미장 섹터 → 한국 전이 테마
§2.5 3축 진단 macro/triaxis-diagnoser.md 4축(성장/인플레/유동성/신용) → 사이클 위치 + 전환 임박
§2.5 외인 자본흐름 macro/capital-flow-tracker.md 외인 추세 vs 일회성 + 환율 동조
§2.5 파생/포지셔닝 postmarket/derivatives.md 파생 4분면(선물 주체별/옵션/COT/야간)
§2.5 인터마켓 macro/intermarket-leader.md 자산군 시퀀스 → KOSPI 환경 + favored_angles

Type A — 원시 지표 재서술 (같은 수치를 여러 에이전트가 처음부터 다시 서술)

지표 중복 등장 횟수
10Y 4.67% + 2-10 커브 0.54% steepening §1 금리 / triaxis #2 / capflow #3 / intermarket #3 4
HY OAS 2.86% benign §1 금리 / triaxis #2 / capflow #3 / intermarket #4 4
WTI $100.82 post_peak §1 원자재 / triaxis #1 / intermarket #1 3
VIX 17.x normal·contango §1 유동성 / 파생 #2 / capflow #3 3
USD/KRW 1,508 원화 약세 §1 환율 / capflow #2 2

Type B — 결론 중첩 (판정 자체가 겹침)

결론 중복 에이전트 문제
외인 선물 5d 표 (-1,982 / 5/21 -4,429) capital-flow #1 ↔ derivatives #1 거의 동일한 표·분석을 양쪽이 각자 작성
사이클 = Late Expansion / late_expansion_consistent triaxis #3 ↔ intermarket #1·#5 M1·M8이 같은 사이클 결론을 따로 도출

2. 원인

  1. 공유 입력 재서술: 6개 에이전트가 동일한 global_assets.json을 각자 소비. 자기 고유 분석 전에 원시 지표(10Y·커브·HY·WTI·VIX)를 처음부터 다시 서술. 프롬프트에 "원시 지표 재서술 금지" 출력 제약이 없다.
  2. 산출 경계 중첩: triaxis(M1)·intermarket(M8)이 둘 다 "사이클 위치"를 산출. capital-flow(M5)·derivatives(P1-1)가 둘 다 외인 선물 5d를 1차 데이터로 다룸.

3. 설계 원칙 — "1 항목 = 1 owner. 나머지는 인용만"

각 지표/결론에 단일 owner 에이전트를 지정한다. 비-owner 에이전트는 그 항목을 재서술하지 않고, 자기 판정 근거로 1줄 인라인 인용만 한다 (별도 서술 문단·표 금지).

Owner 테이블

항목 Owner 비-owner 처리
10Y/2Y/커브/HY (금리·신용 원시) macro §1 판정 근거로 수치 1회 인라인 인용. 별도 금리/신용 문단 금지
WTI/구리/금 (원자재 원시) macro §1 동일
USD/KRW/DXY (환율 원시) macro §1 capital-flow는 "환율 동조 판정"만, 원시 추세 서술은 §1 인용
VIX/텀구조 원시값 macro §1 derivatives는 옵션 P/C·Max Pain만 작성. VIX 수치는 §1 인용
사이클 위치 (Late Expansion 등) triaxis intermarket은 사이클 재판정 금지 — triaxis 결론 1줄 인용 후 "자산군 시퀀스 관점 보강"만
외인 선물 5d 표 derivatives capital-flow는 표 재게시 금지 — derivatives 표 인용 + "추세 vs 일회성 + 환율 동조" 판정만
한국 전이 테마 sector-flow 유지 (중복 없음)
favored_angles / KOSPI 환경 라벨 intermarket 유지 (고유 산출)

Owner 분리 후 각 에이전트의 순수 고유 산출

  • macro §1: 원시 4축 + 한국 영향 1줄 + 거시→한국 회전 연결표 (원시 지표의 유일한 주인)
  • sector-flow §2: 한국 전이 테마
  • triaxis: cycle_position + transition_imminent (원시는 §1 인용)
  • capital-flow: 외인 verdict(recent/sustained outflow/inflow) + fx_correlation (선물 표는 derivatives 인용)
  • derivatives: 외인 선물 5d 표 + VIX/옵션/COT/야간선물 포지셔닝
  • intermarket: 자산군 시퀀스 라벨 + favored_angles + KOSPI 발굴 환경 (사이클은 triaxis 인용)

→ 에이전트 6개 전부 유지. 폐기·병합 없이 출력 경계만 분리하면 Type A·B 중복이 모두 사라진다.


4. 필요한 변경

4-1. 프롬프트 출력 제약 (코드 변경 — step 프롬프트)

macro/* 3개 에이전트(triaxis/capital-flow/intermarket)는 공유 에이전트 — macro-economist 도메인 등 다른 호출자도 사용. 따라서 dedup 제약을 공유 .md에 넣으면 안 된다 (standalone 호출 시 §1이 없어 깨짐).

→ 제약은 evening step 프롬프트에만 주입: - step_triaxis.py / step_capital_flow.py / step_intermarket.py / step_derivatives.py 프롬프트에 다음 1블록 추가:

"이 산출은 EVENING 리포트 §2.5에 들어간다. §1 글로벌 매크로가 원시 지표(10Y·커브·HY·WTI·VIX·환율)를 이미 서술했다. 원시 지표를 재서술하지 말 것 — 자기 판정 근거로 수치 1회 인라인 인용만. {에이전트별 owner 규칙}" - 에이전트별 owner 규칙은 §3 Owner 테이블 그대로.

4-2. evening 전용 에이전트 (.md 직접 수정 가능)

  • evening/macro-interpreter.md: 변경 없음 (원시 지표 owner — 현행 유지).
  • evening/sector-flow.md: 변경 없음 (중복 없음).

4-3. 인터-에이전트 참조 경로 (선택)

비-owner가 "§1 참조"하려면 §1 산출을 받아야 정확히 인용 가능. 두 방안: - (A) 입력 비전달 + 출력 제약만: 에이전트는 global_data를 그대로 입력받되, 출력에서 원시 지표 문단을 쓰지 않도록 제약. 수치는 자기가 본 global_data에서 인라인 인용. → 코드 변경 최소(프롬프트만). 권장. - (B) §1 산출 전달: macro 산출(sec1)을 이후 step에 인자로 전달. 정확한 "§1 참조"가 되나 step 함수 시그니처 4개 변경 필요. - Phase B 실행 순서상 macro가 가장 먼저 실행되므로 (B)도 가능하나, (A)로 충분 — 원시 수치는 어차피 같은 global_data 출처.


5. 변경 범위 요약

파일 변경 비고
step_triaxis.py 프롬프트에 dedup 제약 블록 추가 owner: 사이클
step_capital_flow.py 동일 선물 표 인용, 환율 판정만
step_intermarket.py 동일 사이클 인용, 시퀀스+angle만
step_derivatives.py 동일 VIX 원시 §1 인용, 선물 표 owner
macro/*.md 3개 수정 안 함 공유 에이전트 — standalone 호환 보존
evening/*.md 2개 수정 안 함 macro=owner, sector=중복 없음

코드 변경 = step 프롬프트 4곳. 에이전트 .md 변경 0. 에이전트 개수 6개 유지.


6. 대안 — 에이전트 통폐합 (미채택 제안)

triaxis↔intermarket 병합, capital-flow↔derivatives 병합도 검토 가능하나: - intermarket의 favored_angles, capital-flow의 fx_correlation은 고유 산출 — 병합 시 큰 에이전트로 비대해짐. - 원자화 원칙(1 에이전트 = 1 질문)에 역행. - → owner 분리(§3)로 중복은 이미 제거됨. 통폐합 불필요.


7. 미적용 시 영향

  • 리포트 §1~§2.5가 계속 같은 수치를 4회까지 반복 → PM 가독성 저하, 리포트 길이 불필요 팽창(현 59KB).
  • 중복 서술 간 수치 불일치 리스크(예: VIX §1 "17.81" vs 파생 "17.57" — 실제 현 리포트에 존재) — owner 단일화로 해소.

8. 구현 결과 (S297 — 본 설계안과 일부 상이)

PM과의 대화로 §4 "option A(출력 제약만)"보다 강한 방향으로 확정·구현됨:

  1. MORNING 패턴 이식 — POST_MARKET·MORNING이 이미 "데이터 unit 분리 + 상류 출력 전달"을 쓰고 있음을 확인. EVENING도 동일 적용: macro §1 = 원시 지표 단일 owner, triaxis/intermarket이 raw global_data가 아닌 §1·triaxis 출력 마크다운을 입력받음.
  2. derivatives + capital-flow 폐기 — §6 "통폐합 미채택"을 넘어 두 에이전트를 EVENING에서 완전 폐기. 사유: 파생 포지셔닝은 forward edge가 약하고(방향 결론을 못 냄), POST_MARKET UNIT 2와 중복, 야간선물은 MORNING이 적기. §2.5 = triaxis + intermarket(매크로 사이클)만.

→ 본 문서의 §3 owner 테이블·§4·§6은 S297 구현으로 대체됨. 최신 상태는 work_log 2026-05-22_S297_evening_dedup_policy_writeback.md 및 Topic M M.2.37 참조.