← 返回 Blog

AI Agents · 2026-04-24 · 13 min read

把 AI Hedge Fund 改成台股版:Multi-Agent 股票分析系統架構

AI Hedge Fund 這類 multi-agent 股票分析專案,核心不是讓 LLM 憑空猜股價,而是讓不同 agent 透過工具查詢可信的金融資料,再分別負責基本面、技術面、籌碼、估值、風控與投資組合決策。如果要把這種架構改成台股版,第一個問題不是 prompt 怎麼寫,而是台股 financial data API 能不能提供穩定、結構化、可回測的資料層。

TL;DR

把 AI Hedge Fund 改成台股版,不能只把 ticker 從 AAPL 換成 2330。台股版需要不同的資料工具與 agent 設計,包括台股行情、OHLCV、財報、月營收、三大法人、技術指標、ETF / 指數成分股、交易日曆與風控資料。

一個合理的台股 multi-agent workflow 可以包含 Fundamentals Agent、Technicals Agent、Institutional Flow Agent、ETF / Universe Agent、Risk Manager 和 Portfolio Manager。每個 agent 都應該透過 API tool 查資料,輸出結構化 signal、confidence、data_used 與 risk_flags,而不是直接產生無來源的買賣建議。

本文只討論資料工程、AI workflow 與系統架構,不構成投資建議,也不建議讓 agent 未經回測、風控與人為審核就直接下單。

AI Hedge Fund 類型專案在做什麼?

AI Hedge Fund 類型專案通常會把股票分析流程拆成多個 agent。每個 agent 負責不同任務,例如基本面分析、估值、技術分析、情緒分析、風險管理或投資組合決策。

這種架構的重點不是讓一個 LLM 直接回答買或賣,而是把分析流程拆成可檢查的步驟:

  • 取得資料
  • 分析資料
  • 產生 signal
  • 標示信心與風險
  • 交給 risk manager 檢查
  • 交給 portfolio manager 整合
  • 輸出可 audit 的結果

對 TW Market Data 來說,這類架構提供一個清楚的產品方向:台股 AI agent workflow 需要穩定的 market data API,而不是只靠模型內部記憶。

為什麼美股架構不能直接套用台股?

把美股 AI agent workflow 改成台股版,不能只替換股票代號。台股有自己的市場結構、資料來源、交易規則與資料特色。

差異美股常見情境台股版需要處理什麼
股票代號AAPL, MSFT, NVDA2330、2317、0050,並區分上市、上櫃、ETF
市場別NYSE / NASDAQTWSE、TPEX、興櫃與 ETF 商品
籌碼資料可能使用 institutional holdings 或 sentiment三大法人買賣超、外資、投信、自營商
財報資料SEC filings、quarterly reports月營收、季報、年報、公告日與公開資訊資料
交易日曆US market calendar台灣國定假日、補班日、特殊休市
ETF / 指數資料SPY、QQQ、S&P 500 constituents0050、台灣 50、ETF holdings、產業分類

如果你還在理解台股資料 API 的整體架構,可以先看 台股 API 完整指南

台股版需要哪些資料工具?

台股 AI agent 需要的不是一個萬能工具,而是一組清楚定義的 API tools。每個 tool 對應一種資料能力。

Tool資料來源給哪個 agent 使用主要用途
search_stocks股票基本資料所有 agents查股票代號、市場別、商品類型
get_daily_ohlcv歷史股價Technicals Agent, Risk Manager報酬率、趨勢、波動率、回測
get_financial_statements財報與基本面Fundamentals AgentEPS、ROE、現金流、基本面因子
get_monthly_revenue月營收Fundamentals Agent營收成長與營運動能
get_institutional_flows三大法人Institutional Flow Agent外資、投信、自營商買賣超
get_technical_indicatorsOHLCV / indicatorsTechnicals Agent均線、RSI、MACD、波動率
get_etf_holdingsETF / 指數資料ETF / Universe Agentuniverse、成分股、sector exposure
calculate_risk_metricsprice, volume, portfolioRisk Manager波動率、最大回撤、流動性、部位限制

如果你要把 Python 串接資料工具做起來,可以參考 Python 抓台股資料教學

台股 multi-agent 系統架構

一個台股版 multi-agent 股票分析系統,可以拆成資料層、tool layer、agent layer 和 decision layer。

Data Sources
  ├─ OHLCV
  ├─ Financial statements
  ├─ Monthly revenue
  ├─ Institutional flows
  ├─ Technical indicators
  ├─ ETF / index constituents
  └─ Trading calendar

Tool Layer
  ├─ get_daily_ohlcv
  ├─ get_financial_statements
  ├─ get_institutional_flows
  ├─ get_technical_indicators
  ├─ get_etf_holdings
  └─ calculate_risk_metrics

Agent Layer
  ├─ Fundamentals Agent
  ├─ Technicals Agent
  ├─ Institutional Flow Agent
  ├─ ETF / Universe Agent
  ├─ Risk Manager
  └─ Portfolio Manager

Output
  ├─ structured signals
  ├─ risk flags
  ├─ portfolio constraints
  └─ research summary

重點是每一層都要可檢查。Agent 的回答應該能回溯到 data_used、tool parameters、timestamp 與 schema,而不是只產生自然語言結論。

如果你要先補齊台股量化研究流程的基礎概念,可以先看 台股量化交易入門

Fundamentals Agent:財報與基本面資料

Fundamentals Agent 負責分析公司基本面,例如營收成長、EPS、ROE、毛利率、現金流與財務風險。台股版還應該特別處理月營收與公告日。

Fundamentals Agent input

{
  "symbol": "2330",
  "tools": [
    "get_financial_statements",
    "get_monthly_revenue"
  ],
  "lookback_period": "8q",
  "required_fields": [
    "revenue",
    "eps",
    "roe",
    "gross_margin",
    "operating_cash_flow",
    "announcement_date"
  ]
}

Fundamentals Agent output

{
  "agent": "fundamentals",
  "symbol": "2330",
  "signal": "neutral",
  "confidence": 0.64,
  "data_used": [
    "income_statement",
    "balance_sheet",
    "cash_flow_statement",
    "monthly_revenue"
  ],
  "summary": "Revenue growth remains positive, but valuation and sector cycle require additional checks.",
  "risk_flags": [
    "requires_peer_comparison",
    "requires_latest_announcement_date"
  ]
}

如果你要理解台股財報 API 與基本面因子,可以參考 台股財報 API 教學

Technicals Agent:OHLCV 與技術指標

Technicals Agent 負責分析價格、成交量、趨勢、動能與波動率。它不應該自己猜技術指標,而是透過 OHLCV 或 technical indicators API 取得資料。

Technicals Agent output

{
  "agent": "technicals",
  "symbol": "2330",
  "signal": "bullish",
  "confidence": 0.58,
  "data_used": [
    "daily_ohlcv",
    "technical_indicators"
  ],
  "indicators": {
    "sma20": 812.35,
    "sma60": 785.42,
    "rsi14": 58.7,
    "macd_histogram": 0.37
  },
  "risk_flags": [
    "technical_indicator_only",
    "requires_backtesting"
  ]
}

技術指標資料管線可以參考 台股技術分析 API;OHLCV 與 adjusted price 設計可再看 台股歷史股價 API 設計

Institutional Flow Agent:三大法人與籌碼資料

Institutional Flow Agent 是台股版 AI Hedge Fund 很重要的差異化 agent。它可以分析外資、投信、自營商買賣超,並把單日資料轉成 rolling features。

Institutional Flow Agent output

{
  "agent": "institutional_flows",
  "symbol": "2330",
  "signal": "neutral",
  "confidence": 0.52,
  "data_used": [
    "institutional_flows",
    "daily_ohlcv"
  ],
  "flow_features": {
    "foreign_net_buy_5d": 12000000,
    "investment_trust_net_buy_5d": 1800000,
    "dealer_net_buy_5d": -600000,
    "foreign_net_buy_volume_ratio_5d": 0.036
  },
  "risk_flags": [
    "not_a_standalone_signal",
    "requires_volume_normalization"
  ]
}

三大法人與籌碼資料可以參考 三大法人買賣超 API

ETF / Universe Agent:ETF、指數與產業分類

ETF / Universe Agent 負責定義研究範圍,例如 0050 成分股、台灣 50 指數成分股、特定產業或流動性足夠的股票集合。

Universe Agent output

{
  "agent": "universe",
  "universe": "0050_holdings",
  "as_of_date": "2026-04-24",
  "symbols": [
    "2330",
    "2317",
    "2454"
  ],
  "sector_exposure": [
    {
      "sector": "Semiconductors",
      "weight": 0.42
    }
  ],
  "risk_flags": [
    "requires_historical_constituents_for_backtest"
  ]
}

ETF 與指數成分股資料可以參考 台股 ETF 與指數成分股 API

Risk Manager:流動性、波動率與部位限制

Risk Manager 不負責找股票,而是限制風險。它應該根據波動率、成交量、流動性、最大回撤、產業曝險與集中度,設定 position limits 或 risk flags。

Risk Manager output

{
  "agent": "risk_manager",
  "symbol": "2330",
  "max_position_weight": 0.08,
  "risk_score": 0.37,
  "data_used": [
    "daily_ohlcv",
    "volume",
    "sector_exposure"
  ],
  "risk_flags": [
    "single_name_exposure_limit",
    "requires_liquidity_check"
  ]
}

如果你要理解回測與風控如何設計,可以參考 Python 台股回測系統實作

Portfolio Manager:整合信號,不直接保證交易結果

Portfolio Manager 的工作是整合不同 agent 的結果,而不是盲目接受任何單一 signal。它應該檢查每個 agent 的 confidence、data_used、risk_flags 和資料缺口。

Portfolio Manager output

{
  "symbol": "2330",
  "final_signal": "neutral",
  "confidence": 0.59,
  "agent_signals": [
    {
      "agent": "fundamentals",
      "signal": "neutral",
      "confidence": 0.64
    },
    {
      "agent": "technicals",
      "signal": "bullish",
      "confidence": 0.58
    },
    {
      "agent": "institutional_flows",
      "signal": "neutral",
      "confidence": 0.52
    }
  ],
  "risk_manager": {
    "max_position_weight": 0.08,
    "risk_flags": [
      "requires_liquidity_check"
    ]
  },
  "decision": "research_only",
  "not_investment_advice": true
}

建議 Portfolio Manager 的預設輸出應該是 research summary,而不是直接產生下單指令。若要進入實際交易,必須有完整回測、風控、人為審核與合規流程。

Agent tool schema 設計

Agent tool schema 應該簡單、可驗證、可 audit。以下是台股 AI agent 可以使用的工具設計示意。

{
  "name": "get_daily_ohlcv",
  "description": "Get daily OHLCV data for a Taiwan stock.",
  "parameters": {
    "symbol": "2330",
    "from": "2025-01-01",
    "to": "2025-12-31",
    "adjusted": true
  }
}
{
  "name": "get_financial_statements",
  "description": "Get financial statements for a Taiwan stock.",
  "parameters": {
    "symbol": "2330",
    "statement": "income_statement",
    "from": "2024Q1",
    "to": "2025Q4"
  }
}
{
  "name": "get_institutional_flows",
  "description": "Get institutional investor flows for a Taiwan stock.",
  "parameters": {
    "symbol": "2330",
    "from": "2025-01-01",
    "to": "2025-12-31",
    "unit": "shares",
    "format": "wide"
  }
}

實際 endpoint 與 tool naming 不一定要和上方完全相同。重點是每個 tool 的輸入、輸出、資料來源和限制要清楚。實際路徑請以 TW Market Data docs 為準。

Agent output schema 設計

每個 agent 都應輸出結構化 JSON。不要只輸出自然語言,否則 risk manager 和 portfolio manager 很難自動檢查。

Recommended output fields

FieldTypeDescription
agentstringagent 名稱
symbolstring股票代號
signalstringbullish、bearish、neutral 或 custom signal
confidencenumber0 到 1 的信心分數
data_usedarray使用了哪些資料
summarystring簡短摘要
risk_flagsarray風險標記或資料缺口
not_investment_adviceboolean明確標示不是投資建議

如何避免 hallucination?

金融 AI agent 最重要的問題之一是 hallucination。避免 hallucination 的方法不是要求模型不要亂說,而是設計資料與工具流程。

  • Agent 只能透過 tool 查詢最新或指定日期資料
  • 回答必須列出 data_used
  • 回答必須列出資料時間區間
  • 回答必須標示 missing data
  • 不允許 agent 自己猜股價、財報或法人買賣超
  • 不允許沒有資料來源的 buy / sell recommendation
  • 所有 signal 必須可回測
  • portfolio decision 必須通過 risk manager
  • 實際下單前必須有人為審核與合規檢查

AI agent 的可靠性來自資料邊界與工具設計,而不是來自模型自信的語氣。

從 research workflow 到 production workflow

台股 AI agent workflow 可以先從 research assistant 開始,而不是一開始就做自動交易。

Research workflow

User asks:
"請分析 2330 最近的基本面、技術面與法人籌碼。"

Agent workflow:
1. search_stocks("2330")
2. get_daily_ohlcv("2330")
3. get_financial_statements("2330")
4. get_institutional_flows("2330")
5. get_technical_indicators("2330")
6. calculate_risk_metrics("2330")
7. generate structured research summary

Production workflow

如果要往 production 推進,需要增加:

  • API rate limit handling
  • cache
  • audit log
  • data validation
  • backtesting
  • risk rules
  • human approval
  • compliance review
  • monitoring
  • rollback mechanism

這也是為什麼台股 AI agent workflow 的核心不是 LLM 本身,而是資料 API、工具邊界、風控流程與可追蹤紀錄。

建議的 API endpoint 設計

以下是支援台股 AI agent workflow 的 endpoint 設計示意。

GET /v1/tw/stocks/search
GET /v1/tw/stocks/{symbol}/profile
GET /v1/tw/stocks/{symbol}/ohlcv
GET /v1/tw/stocks/{symbol}/financials
GET /v1/tw/stocks/{symbol}/monthly-revenue
GET /v1/tw/stocks/{symbol}/institutional-flows
GET /v1/tw/stocks/{symbol}/technical-indicators
GET /v1/tw/etfs/{symbol}/holdings
GET /v1/tw/indices/{index_code}/constituents
GET /v1/tw/calendar/trading-days

實際 endpoint 命名不一定要完全相同。重點是資料 schema 穩定、文件清楚、更新時間明確,並能被 AI agent tool calling 安全使用。實際路徑請以 TW Market Data docs 為準。

如果你要從 multi-agent 架構進一步落到 tool calling 實作流程,可以接著看 台股 AI Agent Workflow

FAQ

AI Hedge Fund 可以直接改成台股版嗎?

不能只替換股票代號。台股版需要處理上市、上櫃、ETF、交易日曆、財報公告日、三大法人、台股技術指標、ETF 成分股與本地資料口徑。真正的工作在資料層與 tool schema。

台股 AI agent 需要哪些資料?

至少需要股票基本資料、OHLCV、財報、月營收、三大法人、技術指標、ETF / 指數成分股、交易日曆與風險資料。不同 agent 會使用不同資料工具。

AI agent 可以直接下單嗎?

不建議。本文討論的是研究與分析 workflow。實際交易需要券商下單 API、完整回測、風控、人為審核、合規流程與監控機制。

AI agent 會不會亂編股價或財報?

如果沒有工具邊界,就可能發生 hallucination。較好的做法是要求 agent 只能透過 API tool 查詢資料,並在回答中標示 data_used、日期區間、missing data 和 risk_flags。

三大法人資料在台股 AI agent 裡有什麼用?

三大法人資料可以讓 agent 分析外資、投信、自營商近期買賣超變化,並轉成 rolling features 或風險標記。但它不應該被單獨視為買賣建議。

TW Market Data 在 AI agent workflow 裡扮演什麼角色?

TW Market Data 的角色是提供穩定、結構化、developer-friendly 的台股 financial data API,讓 agent 能查詢行情、財報、籌碼、技術指標、ETF 與交易日曆資料,而不是靠 LLM 自己猜。

下一步

如果你要把 AI Hedge Fund 類型架構改成台股版,建議先處理三件事:

  1. 1. 定義台股資料工具,而不是先寫 prompt
  2. 2. 讓每個 agent 輸出可檢查的 structured JSON
  3. 3. 把 risk manager、backtesting 和 human approval 放進 workflow

Need structured Taiwan market data for your AI agent, quant workflow, or research assistant?

本文討論資料工程、AI agent workflow、量化研究與系統架構,不構成投資建議。