Skip to content

a2a-mcp-multiagent-study/Ticker-Score-Agent

Repository files navigation

Ticker-Score-Agent

금융 데이터(MCP) + 뉴스 요약을 기반으로 점수를 산출하는 AGENT

image

🏗️ A2A 멀티 에이전트 아키텍처

이 프로젝트는 A2A (Agent-to-Agent) 프로토콜을 기반으로 여러 에이전트가 협업하는 구조를 지원합니다.

┌─────────────────────────────────────┐
│  Host Agent (클라이언트)              │
│  - 여러 A2A 서버를 조율               │
│  - RemoteA2aAgent로 연결             │
└───┬────────────┬────────────┬───────┘
    │            │            │
    │ HTTP       │ HTTP       │ HTTP
    │ (A2A)      │ (A2A)      │ (A2A)
    ↓            ↓            ↓
┌───────┐   ┌───────┐   ┌──────────┐
│Agent1 │   │Agent2 │   │  Ticker  │
│:8001  │   │:8002  │   │  Agent   │
│(서버) │   │(서버) │   │  :8083   │
│       │   │       │   │ (서버)    │
└───────┘   └───────┘   └──────────┘

주요 개념

  • 개별 에이전트 = A2A 서버: 각 에이전트는 독립적인 FastAPI 서버로 실행되며, A2A 프로토콜을 통해 통신합니다.
  • Host Agent = A2A 클라이언트: Host는 여러 A2A 서버들을 RemoteA2aAgent로 연결하여 오케스트레이션합니다.
  • 표준 프로토콜: JSON-RPC 2.0 over HTTP를 사용한 Agent Card 기반 디스커버리

각 A2A 서버는 다음 엔드포인트를 제공합니다:

  • /.well-known/agent-card.json - 에이전트 정보 (디스커버리)
  • / (POST) - JSON-RPC 2.0 요청 처리

자세한 내용은 docs/A2A_DEPLOYMENT.md를 참고하세요.

LangGraph Studio

Graph Chat
image image

A2A PoC

Graph Chat
image image

📚 Documentation

상세한 문서는 docs/ 폴더를 참고하세요:

Quick Start

Important

Python 3.10+ is required.
Yahoo Finance MCP Server is a required dependency. :octocat: GitHub Repo
You must configure mcp_config.json to register your MCP server.

# 1. 의존성 설치
pip install -r requirements.txt

# 2. 환경 변수 설정
cp .env.example .env
# .env 파일에 API 키 입력

# 3. MCP 설정
# mcp_config.json에 Yahoo Finance MCP 서버 경로 설정

# 4. REST API 서버 실행
uvicorn app.main:app --reload --port 8080

Environment Variables

.env 파일은 app/settings.py에서 자동으로 로드됩니다. 최소한 아래 항목을 채워주세요.

KEY Required Description
OPENAI_API_KEY LangChain ChatOpenAI 호출용 API 키
CLOVASTUDIO_API_KEY ⛔️ (선택) NAVER CLOVA Studio 를 사용할 경우 입력
MCP_CONFIG_PATH mcp_config.json 절대/상대 경로 (./mcp_config.json 권장)
LANGCHAIN_TRACING_V2, LANGCHAIN_API_KEY ⛔️ (선택) LangSmith 추적을 사용할 경우

예시:

OPENAI_API_KEY=sk-proj-...
CLOVASTUDIO_API_KEY=nv-...
MCP_CONFIG_PATH=./mcp_config.json

Yahoo Finance MCP Server

점수 산출은 MCP 서버에 의존합니다. yahoo-finance-mcp를 설치 후 mcp_config.json에 경로를 등록하세요.

# 별도 디렉터리에서 MCP 서버 설치
git clone https://github.com/Alex2Yang97/yahoo-finance-mcp.git
cd yahoo-finance-mcp
npm install && npm run build

# 실행 경로 확인 (예: dist/index.js)

프로젝트 루트의 mcp_config.json 예시:

{
  "mcpServers": {
    "yahoo-finance": {
      "command": "node",
      "args": ["/abs/path/yahoo-finance-mcp/dist/index.js"],
      "env": {}
    }
  }
}

ℹ️ MCP 서버가 먼저 실행되어 있어야 run_once → Yahoo/DART 노드가 정상 동작합니다.

Usage

# 티커 점수 조회
curl "http://localhost:8080/score?ticker=AAPL"
curl "http://localhost:8080/score?ticker=MSFT"

# 스트리밍 조회
curl "http://localhost:8080/score/stream?ticker=NVDA"

Response Example

{
  "ticker": "NVDA",
  "score": 78,
  "rationale": "AI 산업 성장 기대감과 분석가의 긍정적 평가 우세하나, 내부자 매도로 인한 경계감 상존"
}

A2A Protocol Support

Ticker-Score-Agent는 A2A (Agent-to-Agent) 프로토콜을 지원하여 다른 에이전트와 통신할 수 있습니다.

Features

  • Google ADK 기반: LangGraph 워크플로우를 ADK Agent로 래핑
  • 병렬 운영: REST API (8080) + A2A 서버 (8083) 동시 실행
  • 멀티 에이전트: Host Agent를 통한 에이전트 오케스트레이션
  • 표준 프로토콜: A2A 표준으로 다른 에이전트와 통신

Quick Start

# 프로젝트 루트에서 실행 (중요!)
cd /path/to/Ticker-Score-Agent

# A2A 서버 실행
uvicorn app.a2a_server:a2a_app --host 127.0.0.1 --port 8083 --reload

# Agent Card 확인
curl http://localhost:8083/.well-known/agent-card.json

google-adk, a2a-server, a2a-sdk 등 A2A 관련 패키지는 최상위 requirements.txt에 포함되어 있습니다. pip install -r requirements.txt만 실행하면 추가 설치가 필요 없습니다.

멀티 에이전트 PoC(a2a-poc/)를 체험하려면 Agent1/2를 각각 띄운 뒤 a2a-poc/host/agent.py에 있는 Host Agent를 실행하세요.

Available Tools

  • calculate_ticker_score: 주식 티커 점수 산출
  • get_ticker_info: 에이전트 정보 조회

상세 문서

About

금융 데이터(MCP) + 뉴스 요약을 기반으로 점수를 산출하는 AGENT

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages