다섯 에이전트¶
관심종목 필터를 통과한 각 뉴스 아이템은 5개 에이전트에게 동시에 전달됩니다. 에이전트들은 병렬로 실행되며(현재 구성에서 아이템당 엔드투엔드 약 20~40초), 출력은 집계되어 대시보드에 표시되는 최종 시그널이 됩니다.
| 에이전트 | 아이콘 | 집중 영역 |
|---|---|---|
| SignalScope | 1차 뉴스 파싱 — 무슨 일이 있었는지, 누가 관련됐는지, 티커 수준의 사실. 필요 시 Tavily 웹 검색으로 교차 검증. | |
| MacroMind | 거시경제 프레이밍 — 금리 결정, CPI 발표, FX 충격, 지정학 이벤트와 연결되는가? "관련성 없음"도 유효한 답. | |
| SectorScan | 섹터·공급망 전파 — 누가 또 수혜/피해를 보는가? TSM → ASML → AMAT 체인, 업스트림 vs 다운스트림. | |
| SentimentPulse | 리테일 심리 — Reddit, StockTwits, YouTube. 언급량 급증이나 가격과 잡음의 괴리를 감지. | |
| PolicyRadar | 규제·정책 — 수출 통제, 제재, 당국 조치, 중앙은행 성명. |
각 에이전트의 출력¶
5개 모두 동일한 구조화된 출력을 생성합니다:
{
"agent_id": "sectorscan",
"signal_type": "routine_news",
"urgency": "ALERT",
"impact_score": 0.72,
"confidence_score": 0.84,
"tickers_linked": [
{"ticker": "NVDA", "impact_score": 0.80, "link_type": "direct"},
{"ticker": "TSM", "impact_score": 0.60, "link_type": "sector"}
],
"summary_en": "...",
"summary_zh": "...",
"reasoning": "..."
}
signal_type 어휘는 일부러 좁게 정의돼 있습니다(routine_news / earnings / policy_change / supply_chain / macro_event / ...). 에이전트의 레인이 해당 아이템과 무관하더라도 조용히 빠지지 않고 구조적으로 응답해야 합니다 — impact_score를 낮게 주는 식으로. 이렇게 해야 집계 수식이 깔끔하게 유지됩니다.
집계¶
엔진은 다섯 출력을 다음과 같이 결합합니다:
top_signal—signals에 저장되는 단일 행. 최고 impact 에이전트의 요약을 헤드라인으로 삼고, 성공한 모든 에이전트에 걸친 가중 평균 impact를 담습니다. reasoning은 모든 에이전트의 reasoning을 이어붙인 결과입니다(대시보드 카드가 모든 에이전트의 관점을 접을 수 있는 블록으로 보여줄 수 있도록).tickers_linked— 모든 에이전트 결과의 합집합, 중복 제거, 티커별 평균.agents_breakdown— 각 에이전트의 개별 점수, 지연시간, 에러(있다면)를 시그널 행에 저장해 대시보드의 접을 수 있는 패널에서 세부 분석을 볼 수 있게 합니다.
왜 다섯인가¶
경험적으로, 금융 뉴스 한 건의 "중요성"을 하나의 거대 프롬프트로 판단하려 들면 빠르게 드리프트합니다 — 서로 다른 레인(규제 vs 심리 vs 공급망)이 서로 다른 축에서 답하기 때문입니다. 관심사를 분리하면 UI에 훨씬 풍부한 재료(agent-breakdown 패널)를 줄 수 있고, Reflexion이 비판할 독립적 시그널도 생기며, 한 에이전트의 장애나 환각이 집계 결과를 크게 흔들지 못하게 됩니다.
참고¶
- 점수 체계 — 긴급도 티어가
impact_score로부터 어떻게 도출되는지 - Claw chat (RAG) — 에이전트들의 요약이 어떻게 질의 가능한 지식 기반이 되는지