인풋 데이터 스펙
작성: 2026-05-15
목적: 각 에이전트가 어떤 데이터를 받아서 해석하는지 정의.
원칙: 에이전트는 자기 입력 데이터를 스스로 수집하지 않는다. 스크립트가 수집하고 파일로 준비한다.
데이터 수집 → 파일 → 에이전트 흐름
[스크립트] → [JSON 파일] → [에이전트가 읽고 해석] → [표준 출력 JSON]
에이전트는 파일만 읽는다. API를 직접 호출하지 않는다.
이유: 데이터 수집 실패를 에이전트 실패와 분리. 데이터가 없으면 에이전트가 안 불린다.
1. 데이터 수집 단계 (스크립트, 에이전트 호출 전 실행)
장전 (06:00~08:30)
| 순서 |
스크립트 |
산출 파일 |
소요 |
| 1 |
fetch_global_assets.py |
data/routine_data/YYYYMMDD_global_assets.json |
~30s |
| 2 |
collect_macro_series.py --days 20 |
data/macro_series/macro_series.json |
~60s |
| 3 |
fetch_derivatives_sentiment.py |
data/routine_data/YYYYMMDD_derivatives.json |
~45s |
| 4 |
텔레그램/뉴스 수집 (기존 run_routine.py morning_open) |
data/routine_data/YYYYMMDD_morning_open_collected.json |
~120s |
장마감 (15:20~16:00)
| 순서 |
스크립트 |
산출 파일 |
소요 |
| 1 |
fetch_market_top.py |
data/market_top/YYYYMMDD.json |
~60s |
| 2 |
fetch_limit_up.py |
data/limit_up/YYYYMMDD.json (신규 필요) |
~30s |
| 3 |
collect_stock_flow_series.py --from-watchlist --days 20 |
data/flow_series/{code}.json (다수) |
~180s |
| 4 |
collect_sector_series.py --days 20 |
data/sector_series/sector_series.json |
~60s |
| 5 |
collect_macro_series.py --days 20 |
data/macro_series/macro_series.json (갱신) |
~60s |
| 6 |
mtf_chart_profiler.py {추적종목들} |
data/chart_profiles/YYYYMMDD_mtf_profiles.json |
~120s |
저녁 (20:00~)
| 순서 |
스크립트 |
산출 파일 |
소요 |
| 1 |
fetch_global_assets.py |
data/routine_data/YYYYMMDD_evening_global.json |
~30s |
| 2 |
collect_macro_series.py --days 20 |
data/macro_series/macro_series.json (갱신) |
~60s |
| 3 |
candidate_from_theme.py --themes {테마} |
data/candidate_from_theme/{theme}_YYYYMMDD.json |
~180s |
| 4 |
collect_stock_flow_series.py --codes {후보종목} |
data/flow_series/{code}.json |
~120s |
| 5 |
mtf_chart_profiler.py {후보종목} |
data/chart_profiles/YYYYMMDD_mtf_profiles.json (갱신) |
~120s |
2. 에이전트별 인풋 매핑
도메인 에이전트 (종목별)
chart-analyst
| 인풋 |
파일 |
핵심 필드 |
data_frame |
| 일봉 250일 |
data/chart_profiles/YYYYMMDD_mtf_profiles.json > {code} |
structure (monthly/weekly/daily), sr_levels, price_journey, candle_analysis |
5d/20d/60d change, streak, phases |
| VP/VSA |
같은 파일 |
vsa_metrics (evr_residual, delta, phase_bias), volume_profile (POC, HVN, LVN, VAH, VAL) |
cum_delta_5d, cum_delta_20d |
| 진입 컨텍스트 |
같은 파일 |
entry_context (sl, tp, rr_ratio, fibonacci, atr) |
|
| 추적 상태 |
같은 파일 |
tracking_status (status, action, remove_candidate) |
|
산출: {code}_chart.json (verdict/score/confidence + sl/tp/rr_ratio/at_peak_signal)
flow-analyst
| 인풋 |
파일 |
핵심 필드 |
data_frame |
| 투자자별 수급 20일 |
data/flow_series/{code}.json |
daily_flow (date, close, inst_net, foreign_net, inst_cum, foreign_cum) |
foreign_cum_5d/20d, inst_cum_5d/20d |
| 프로그램 매매 |
같은 파일 |
program_daily (program_buy, program_sell, program_net) |
|
| 파생 지표 |
같은 파일 > derived |
foreign_pattern, dual_buy, foreign_acceleration_pct, foreign_cum_series |
acceleration 5d vs prev-5d |
| 네이버 수급 (fallback) |
같은 파일 |
naver_flow |
|
산출: {code}_flow.json (verdict/score/confidence + pattern/dual_buy/positioning_extreme)
material-analyst
| 인풋 |
파일 |
핵심 필드 |
data_frame |
| 뉴스 |
WebSearch (에이전트 내부 호출 허용) |
종목명 + 최근 뉴스 |
|
| ISSUE_LOG |
docs/trading_playbook/ISSUE_LOG.md |
재료 반복 등장 횟수 |
|
| POLICY_TRACKER |
docs/trading_playbook/POLICY_TRACKER.md |
정책 뒷받침 여부 |
|
| 테마 매핑 |
data/ats_main.json > stocks[code].themes |
종목이 속한 테마 |
|
| 섹터 시리즈 |
data/sector_series/sector_series.json |
테마 거래대금 20d 평균 대비 현재 |
150%+ = 시장인식(Q4) |
산출: {code}_material.json (verdict/score/confidence + catalyst_grade/structural_grade/freshness/priced_in/propagation)
예외: material-analyst는 WebSearch를 내부에서 호출한다 (재료 검증에 필수). 다른 에이전트는 파일만 읽음.
fundamentals-analyst
| 인풋 |
파일 |
핵심 필드 |
data_frame |
| DART 재무제표 |
DART MCP 호출 (에이전트 내부) |
매출, 영업이익, 당기순이익 3~4분기 |
YoY growth rate sequence |
| 기본 정보 |
data/ats_main.json > stocks[code] |
업종, 시총, PER/PBR |
|
| 네이버 기본 |
Naver fetch_stock_basic (에이전트 내부) |
price, change, market_cap |
|
산출: {code}_fundamentals.json (verdict/score/confidence + op_yoy_trend/red_flag/valuation_grade)
예외: fundamentals-analyst는 DART MCP와 Naver API를 내부에서 호출한다 (실적 데이터 수집이 해석과 불가분).
environment-analyst
| 인풋 |
파일 |
핵심 필드 |
data_frame |
| 매크로 시리즈 |
data/macro_series/macro_series.json |
risk_on_off.regime, vix_term_structure, fred_liquidity |
|
| 파생 포지셔닝 |
같은 파일 > derived |
foreign_futures_cum_5d/20d, basis, program_nonarb |
direction, streak |
| 섹터 시리즈 |
data/sector_series/sector_series.json |
해당 종목 테마의 status, acceleration, avg_change_5d/20d |
|
| 글로벌 자산 |
같은 파일 또는 data/routine_data/YYYYMMDD_global_assets.json |
SOX, WTI, DXY, US10Y 등 |
1d/5d/20d change |
산출: {code}_environment.json (verdict/score/confidence + theme_lifecycle/macro_regime/bond_equity_conflict/crowding)
시장 에이전트 (전체 시장)
global-asset-scanner (장전 MO-1)
| 인풋 |
파일 |
| 글로벌 자산 |
data/routine_data/YYYYMMDD_global_assets.json |
| 매크로 시리즈 |
data/macro_series/macro_series.json |
산출: data/outputs/YYYYMMDD/mo1_global.json
sector-transfer-mapper (장전 MO-2)
| 인풋 |
파일 |
| MO-1 결과 |
data/outputs/YYYYMMDD/mo1_global.json |
| 섹터-테마 매핑표 |
agent_framework_v2.md 고정 테이블 (에이전트 .md에 내장) |
산출: data/outputs/YYYYMMDD/mo2_sector.json
overnight-material-grader (장전 MO-3)
| 인풋 |
파일 |
| 텔레그램/뉴스 |
data/routine_data/YYYYMMDD_morning_open_collected.json |
| ISSUE_LOG |
docs/trading_playbook/ISSUE_LOG.md |
| POLICY_TRACKER |
docs/trading_playbook/POLICY_TRACKER.md |
| WebSearch |
에이전트 내부 호출 (재료 검증) |
산출: data/outputs/YYYYMMDD/mo3_material.json
signal-synthesizer (장전 MO-5)
| 인풋 |
파일 |
| MO-1~3 결과 |
data/outputs/YYYYMMDD/mo1~3*.json |
| 전날 carry_forward |
data/outputs/YYYY-MM-{DD-1}/evening_view.json > carry_forward |
| 보유 종목 |
data/tracking/tracking_list.json 또는 data/tracking/verdict_list.json |
산출: data/outputs/YYYYMMDD/morning_view.json
signal-scorecard (장마감 PM-1)
| 인풋 |
파일 |
| 아침 시그널 |
data/outputs/YYYYMMDD/morning_view.json > today_signals[] |
| 당일 시장 데이터 |
data/market_top/YYYYMMDD.json |
| 섹터 시리즈 |
data/sector_series/sector_series.json |
산출: data/outputs/YYYYMMDD/pm1_scorecard.json
theme-strength-ranker (장마감 PM-2)
| 인풋 |
파일 |
| 거래대금 Top 200 |
data/market_top/YYYYMMDD.json > top_amount |
| 섹터 시리즈 20일 |
data/sector_series/sector_series.json |
| 테마 매핑 |
data/ats_main.json |
산출: data/outputs/YYYYMMDD/pm2_themes.json
macro-4axis (저녁 EV-1)
| 인풋 |
파일 |
| 글로벌 자산 (저녁) |
data/routine_data/YYYYMMDD_evening_global.json |
| 매크로 시리즈 |
data/macro_series/macro_series.json |
| 파생 시리즈 |
같은 파일 > derivatives_series, derived |
산출: data/outputs/YYYYMMDD/ev1_macro.json
3. 데이터 가용성 매트릭스
도메인 에이전트 인풋 → 스크립트 매핑
| 에이전트 |
필요 데이터 |
스크립트 |
파일 |
상태 |
| chart-analyst |
일봉+VP+VSA+구조 |
mtf_chart_profiler.py |
chart_profiles/*.json |
✅ 동작 |
| chart-analyst |
분봉 (인트라데이 VP) |
kiwoom get_minute_chart |
chart_profiles (내장) |
✅ 동작 |
| flow-analyst |
투자자별 20일 수급 |
collect_stock_flow_series.py |
flow_series/{code}.json |
✅ 동작 |
| flow-analyst |
프로그램 매매 |
collect_stock_flow_series.py (내장) |
flow_series/{code}.json |
✅ 동작 |
| material-analyst |
ISSUE_LOG/POLICY_TRACKER |
수동 관리 |
docs/trading_playbook/*.md |
✅ 존재 |
| material-analyst |
뉴스 검증 |
WebSearch (에이전트 내부) |
- |
✅ 가능 |
| material-analyst |
테마 거래대금 |
collect_sector_series.py |
sector_series.json |
✅ 동작 |
| fundamentals-analyst |
DART 재무제표 |
DART MCP (에이전트 내부) |
- |
✅ 가능 |
| environment-analyst |
매크로 시리즈 |
collect_macro_series.py |
macro_series.json |
✅ 동작 |
| environment-analyst |
섹터 RS |
collect_sector_series.py |
sector_series.json |
✅ 동작 |
| environment-analyst |
파생 포지셔닝 |
collect_macro_series.py (내장) |
macro_series.json |
✅ 동작 |
시장 에이전트 인풋 → 스크립트 매핑
| 에이전트 |
필요 데이터 |
스크립트 |
상태 |
| global-asset-scanner |
글로벌 자산 |
fetch_global_assets.py |
⚠️ stdout만 (JSON 저장 없음) |
| sector-transfer-mapper |
MO-1 결과 |
(에이전트 체인) |
✅ |
| overnight-material-grader |
뉴스/텔레그램 |
run_routine.py morning_open |
✅ 동작 |
| signal-scorecard |
아침 시그널+시장 데이터 |
morning_view.json + market_top |
✅ |
| theme-strength-ranker |
거래대금+섹터 |
market_top + sector_series |
✅ |
| macro-4axis |
매크로 시리즈 |
collect_macro_series.py |
✅ 동작 |
| discovery-detector |
거래대금 순위 변동 |
market_top (당일 vs 전일) |
✅ |
4. 빠진 것 (신규 필요)
| # |
필요 |
현재 상태 |
조치 |
| 1 |
fetch_global_assets.py JSON 저장 |
stdout만 출력, 파일 저장 없음 |
JSON 저장 기능 추가 |
| 2 |
fetch_limit_up.py JSON 저장 |
stdout만 출력 |
JSON 저장 기능 추가 |
| 3 |
fetch_derivatives_sentiment.py JSON 저장 |
stdout만 출력 |
JSON 저장 기능 추가 |
| 4 |
assemble_morning_view.py |
존재하지 않음 |
MO-1~5 결과를 morning_view.json으로 조립하는 스크립트 |
| 5 |
assemble_post_market_view.py |
존재하지 않음 |
PM-1~7 결과를 post_market_view.json으로 조립 |
| 6 |
assemble_evening_view.py |
존재하지 않음 |
EV-1~8 결과를 evening_view.json으로 조립 |
| 7 |
accuracy_tracker.py |
존재하지 않음 |
signal_scorecard → accuracy_log.jsonl append |
| 8 |
전일 morning_view 참조 경로 |
날짜 기반 파일 접근 |
evening_view에서 carry_forward 자동 링크 |