1명이 아닌 4명 — 뉴스·온체인·매크로 전문 에이전트 + 조율자
W3~W6에서 만든 에이전트는 매우 똑똑하지만 문제가 있습니다. 모든 툴을 다 알아야 한다는 점입니다. 실제로 AI Agent에 5~7개 이상의 툴이 연결되면 에이전트의 판단 정확도가 급격히 떨어집니다. "결정 피로"가 발생하는 것입니다.
서브 에이전트 각각에 좁은 역할 + 전용 데이터 소스 + 구조화된 출력을 부여합니다. 각 에이전트의 "명함"을 만드는 작업입니다.
ticker, hours_back, focus(실적/리스크/공급망 등)
{sentiment_score, top_headlines[], key_events[], risk_flags[]}
asset(BTC/ETH/etc), window_hours
{active_addresses, whale_tx_count, exchange_inflow, dominant_flow_direction}
focus(rates/inflation/employment), period
{current_values, trend, policy_stance, related_fomc_context}
모든 서브 에이전트는 동일한 패턴입니다: AI Agent Tool 노드 + 전용 Chat Model + 전용 툴 2~3개 + 전용 System Message.
fetch_news — Alpha Vantage NEWS_SENTIMENT로 종목 뉴스 조회search_global_news — GDELT API로 거시 뉴스 검색입문자 친화적 무료 API로 Blockchair(Bitcoin/Ethereum 트랜잭션) + Whale Alert Public Feed 조합을 사용합니다.
// OnChain Agent의 툴 #1 — Blockchair Bitcoin 활성 주소 // Method: GET // URL: https://api.blockchair.com/bitcoin/stats // 응답에서 중요 필드: { "data": { "blocks": 830000, "transactions_24h": 450000, "outputs_24h": 1200000, "circulation": "19700000", "market_price_usd": 62450, "hashrate_24h": "...", "mempool_transactions": 18500 } }
Whale Alert의 무료 공개 피드는 twitter.com/whale_alert 또는 RSS를 통해 간접 수집합니다. n8n RSS Feed Trigger 노드로 처리.
blockchair_stats — Bitcoin/ETH 24시간 네트워크 통계whale_alert_feed — 최근 100 BTC/1000 ETH 이상 고래 이체coingecko_exchange_flow — 거래소 순유출입Macro Agent는 특별합니다. FRED API(숫자 데이터) + W6에서 구축한 Vector DB(FOMC 의사록)를 모두 활용합니다.
fred_indicator — FRED에서 시리즈(DFF, CPIAUCSL, UNRATE, VIXCLS) 조회fomc_rag_search — W6 지식베이스에서 FOMC 의사록 검색 (출처 포함)Orchestrator는 팀장입니다. 질문을 보고 어느 전문가에게 물어볼지 결정하고, 답변들을 종합해 최종 답변을 만듭니다. Claude Sonnet(Haiku보다 상위)을 씁니다.
news_agent: 뉴스·센티먼트 전문 (어떤 사건이 일어났나)chain_agent: 온체인 데이터 전문 (암호화폐 네트워크 활동)macro_agent: 거시경제 전문 (금리·인플레이션·FOMC)멀티 에이전트의 가장 큰 함정은 "왜 이런 답이 나왔는지 모른다"는 점입니다. 에이전트 3명이 동시에 일하는데 중간 과정을 못 보면 디버깅이 지옥. 메시지 버스로 모든 에이전트 대화를 기록합니다.
Orchestrator의 Return Intermediate Steps를 ON으로 하면 응답에 모든 sub-agent 호출 내역이 포함됩니다.
// Orchestrator 응답에서 메시지 버스 추출 const orchestratorOutput = $input.item.json; const steps = orchestratorOutput.intermediateSteps || []; // 각 sub-agent 호출을 타임스탬프와 함께 로그화 const messageBus = []; const startTime = new Date(); for (let i = 0; i < steps.length; i++) { const step = steps[i]; const agentName = step.action?.tool || 'unknown'; const input = step.action?.toolInput || {}; const output = step.observation || ''; // 호출 시점 messageBus.push({ t: new Date(startTime.getTime() + i * 100).toISOString(), actor: 'orchestrator', action: 'CALL', target: agentName, payload: JSON.stringify(input).slice(0, 100) }); // 응답 시점 messageBus.push({ t: new Date(startTime.getTime() + i * 100 + 50).toISOString(), actor: agentName, action: 'RESPOND', target: 'orchestrator', payload: typeof output === 'string' ? output.slice(0, 150) : JSON.stringify(output).slice(0, 150) }); } // 최종 결정 messageBus.push({ t: new Date().toISOString(), actor: 'orchestrator', action: 'FINAL', target: 'user', payload: orchestratorOutput.output?.slice(0, 200) || '' }); return { final_answer: orchestratorOutput.output, message_bus: messageBus, agent_count_called: steps.length, total_time_ms: new Date() - startTime };
메시지 버스를 Google Sheets에 기록해두면 주간·월간 분석에 유용합니다. 어느 에이전트가 가장 자주 틀리는지, 평균 응답 시간은 얼마인지 집계 가능.
| 필드 | 예시 값 | 용도 |
|---|---|---|
query_id | uuid-1234 | 같은 질문의 여러 에이전트 호출 묶기 |
actor | news_agent | 누가 말했는지 |
target | orchestrator | 누구에게 |
action | RESPOND | CALL / RESPOND / FINAL |
latency_ms | 1230 | 응답 시간 |
payload_summary | sentiment +0.18 | 핵심 내용 요약 |
| 자료 | 용도 |
|---|---|
n8n AI Agent Tool 노드 Docsdocs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolaiagent | 서브 에이전트 Tool 패턴 공식 가이드 |
n8n Multi-Agent Patternsblog.n8n.io/ai-agentic-workflows | Gatekeeper 패턴, 단일 vs 멀티 비교 |
Blockchair API Docsblockchair.com/api/docs | Bitcoin/Ethereum 무료 stats 엔드포인트 |
Whale Alertwhale-alert.io | 공개 피드 및 API 문서 |
GDELT Projectblog.gdeltproject.org | 무료 전세계 뉴스 DB (매크로 뉴스용) |
Structured Output Parserdocs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.outputparserstructured | JSON 스키마 강제 응답 |
Anthropic Console — Usageconsole.anthropic.com/settings/usage | 모델별 토큰 사용량·비용 추적 |