Architecture Journal
AlphaCouncil
如果可以同時請教 Warren Buffett、Ben Graham 和 Nassim Taleb,讓他們針對同一支股票各自發表意見、互相辯論,最後給出分析結論——這件事在 AI agent 時代變得可行。
AlphaCouncil 就是這個想法的實作。
起點:兩個讓我想動手做的開源專案
2025 年底,我接觸到兩個讓我印象深刻的開源研究:
- ai-hedge-fund by @virattt:用 LLM 模擬投資大師人格代理人
- TradingAgents by Tauric Research:以多代理人辯論架構做投資決策(附論文)
這兩個專案都在問同一個問題:能不能讓多個 AI agent 模擬不同的投資哲學,透過辯論產生更有深度的分析?
但當時我正在深入學習 Google ADK(Agent Development Kit),想找一個真實的場景來實踐它的多代理人編排能力。投資分析這個領域恰好符合幾個條件:
- 需要整合多個異質觀點(不同大師哲學)
- 有明確的輸入(股票代號)與輸出(分析報告)
- 流程可以被結構化,不需要完全依賴 LLM 動態決策
於是 AlphaCouncil 誕生了。
核心設計:固定編排,而非動態路由
多代理人框架有兩種主要設計方向:
- 動態路由:讓一個 orchestrator LLM 決定下一步要呼叫哪個 agent
- 固定編排:用確定性的流程圖定義 agent 的執行順序與組合
AlphaCouncil 選擇後者。
原因很直接:投資分析的流程是可預測的——先收集市場資料、再讓各大師分析、最後綜合辯論得出結論。這個流程不需要 LLM 來決定,反而應該由工程師明確定義,讓 LLM 專注在各自擅長的分析推理上。
Google ADK 提供了三種 agent 組合原語,AlphaCouncil 把它們串接成一條完整的 pipeline:
SequentialAgent → ParallelAgent → LoopAgent
- SequentialAgent:依序執行資料收集、前處理等步驟
- ParallelAgent:同時啟動 13 位大師代理人,各自獨立分析
- LoopAgent:讓大師們進行多輪辯論,逐步收斂到共識
這種架構的好處是行為可預期、debug 容易、且每個環節的失敗都可以被精確定位。
13 位投資大師
AlphaCouncil 內建了 13 位投資人的人格代理人,每位都有獨立的系統提示和分析框架:
| 代理人 | 核心哲學 |
|---|---|
| Warren Buffett | 以合理價格買優質公司,長期持有 |
| Ben Graham | 安全邊際,尋找低於內在價值的標的 |
| Charlie Munger | 心智模型,只買最優質的企業 |
| Aswath Damodaran | 嚴謹的故事敘述與數字驅動估值 |
| Bill Ackman | 激進主義,推動企業變革 |
| Cathie Wood | 顛覆性創新,長期成長 |
| Michael Burry | 逆向投資,尋找深度被低估標的 |
| Peter Lynch | 投資你了解的,尋找十倍股 |
| Phil Fisher | 深度調研(Scuttlebutt),質化成長分析 |
| Mohnish Pabrai | Dhandho——低風險高報酬的翻倍機會 |
| Stanley Druckenmiller | 宏觀驅動,不對稱風險機會 |
| Rakesh Jhunjhunwala | 成長與價值並重,長期持有高信念部位 |
| Nassim Taleb | 尾部風險防護,槓鈴策略 |
每位大師有兩個版本:US 版以英文輸出並聚焦美市指標,TW 版以繁體中文輸出並納入台股特有脈絡。系統根據 ticker 自動偵測市場並切換。
雙市場支援
台股市場的資料源、新聞來源、財務指標和監管環境都和美股有顯著差異。AlphaCouncil 透過 ticker 自動偵測市場(例如 2330 自動對應台股、AAPL 對應美股),切換對應的資料源和大師分析語境。
這個設計讓同一套框架可以無縫支援兩個市場,而不需要使用者手動指定(當然也可以透過 --market 參數強制指定)。
三種使用介面
AlphaCouncil 支援三種操作方式,適合不同使用場景:
互動式 Web UI(開發 / Debug 用)
make web
# 或
uv run adk web
CLI 一次執行(自動化 / 批次用)
make run-cli
# 或
uv run alpha-council run --ticker 2330 --market tw --masters warren_buffett,nassim_taleb --report-format md
REST API(整合其他系統用)
make api-server
# 或
uv run adk api_server
CLI 支援的主要參數:
--ticker:股票代號(必要)--market:us|tw(未提供時自動推斷)--masters:指定大師(編號或名稱,例如1,3,5或warren_buffett,ben_graham)--report-format:json|md--debug:顯示事件流與原始回應
部署架構
AlphaCouncil 採用 Cloud Run + Terraform 的部署方式,並拆分成兩條路徑:
- Agent Service:長時間運行的 REST API 服務,部署在 Cloud Run
- CLI Batch:一次性執行的 Cloud Run Job,適合排程或 CI/CD 觸發
兩者共用同一個 Artifact Registry,但透過獨立的 Terraform 模組管理,讓部署邊界清晰。
make build-agent-image # 建置 Agent Service image
make deploy-agent # 套用 Terraform 部署 Agent Service
make build-cli-image # 建置 CLI Batch image
這個拆分決策記錄在 docs/adr/0001-split-agent-and-cli-deployment.md。
這個專案教會我的事
固定編排比想像中更適合生產環境。 動態路由雖然靈活,但在這類有明確流程的任務上,確定性架構的可觀測性和可維護性優勢非常明顯。每個 agent 的行為都是可預測的,失敗時也能精確定位問題。
LLM 人格模擬需要精心設計系統提示。 讓 Nassim Taleb 真的「像 Nassim Taleb 一樣思考」,而不是給出泛泛的風險提示,需要在系統提示中注入大量的背景知識、哲學框架和具體例子。這部分的工程量遠超預期。
台股和美股的資料整合難度差距很大。 美股有成熟的公開 API,台股的資料源分散且格式不一。這是這個專案目前最需要改善的地方之一。
連結
- GitHub:jjyung/AlphaCouncil
免責聲明:AlphaCouncil 僅供教育與研究用途,不構成任何投資建議。