TradingAgents 是一個將 LLM 代理(Agent)組織成體系化、角色化的金融交易分析框架。它不像簡單的交易機器人只給出買賣訊號,而是試圖在程式碼中重建一家「交易公司」的運作邏輯:由多個專職分析師收集數據,研究員進行正反方辯論,最後由風險管理團隊與投資組合經理審核決定。
這個框架解決的核心問題是 LLM 在處理複雜金融分析時容易產生的幻覺(Hallucination)以及決策缺乏嚴謹邏輯的問題。透過將任務拆解為多個專門角色並引入「對抗性辯論」機制,框架強迫 LLM 在得出結論前必須考慮反向證據。
核心運作流程
整個決策鏈條分為四個階段:
首先是分析師團隊。框架部署了四種專門代理:基本面分析師(看財報)、情緒分析師(看社群)、新聞分析師(看宏觀事件)與技術分析師(看 MACD/RSI 等指標)。他們負責調用外部 API(如 yfinance)獲取原始數據並產出初步報告。
接著進入研究團隊。這裡設計了牛市(Bull)與熊市(Bear)研究員,他們會針對分析師的報告進行多輪辯論。牛市研究員尋找增長潛力,熊市研究員則專注於風險與漏洞。最後由研究經理(Research Manager)總結辯論結果,產出一份結構化的投資計畫。
隨後由交易員(Trader)接手。交易員將投資計畫轉化為具體的交易提案,包括建議的操作方向(買入、持有或賣出)。
最後是風險管理與組合管理。由激進、中立、保守三種風險分析師對交易提案進行最後一輪風險評估,最終由投資組合經理(Portfolio Manager)決定是否批准該交易並執行。
技術亮點
該框架使用了 LangGraph 來管理複雜的狀態流轉,這使得交易流程可以像圖表一樣被定義,且支持 checkpoint 機制。如果分析過程中途崩潰,可以從最後一個成功的節點恢復,而不需要重新消耗 token 跑一遍分析。
在輸出控制上,框架引入了 Pydantic 結構化輸出。對於關鍵的決策代理(如研究經理、交易員、組合經理),它強迫 LLM 輸出符合特定 Schema 的 JSON 格式,而非隨意的文字,確保了下游數據處理的穩定性。
此外,它具備一種簡單但有效的記憶機制(Decision Log)。系統會記錄每次決策及其後續的實際收益,在下次分析同一股票時,會將之前的教訓(Reflection)注入到 Prompt 中,讓模型具備基礎的學習能力。
適合誰使用
這個 repo 非常適合想要學習 Multi-Agent 協作模式的 Junior 工程師,或者希望將 LLM 應用於金融量化研究的開發者。如果你想研究如何將「角色扮演」與「對抗辯論」結合來提升 LLM 的推理品質,這是一個很好的實作範例。
導入成本與風險
導入成本中等。雖然提供了 Docker 部署,但它高度依賴外部 LLM API(如 GPT-4, Claude, DeepSeek 等)以及金融數據 API。由於涉及多個 Agent 的多輪對話,單次分析的 Token 消耗量非常高,且延遲較長,不適合用於高頻交易或即時交易場景。
實務限制與風險
首先,這是一個研究導向的框架,而非生產級的交易系統。LLM 的決策依然具有非確定性,且框架本身不包含複雜的資金管理與自動對沖邏輯。
其次,數據依賴風險。目前預設使用 yfinance 等免費來源,對於專業交易者來說,數據的即時性與精準度可能不足。
成熟度判斷
目前該項目處於 v0.2.x 階段,功能相對完整,擁有良好的測試覆蓋率(包含對 DeepSeek 推理模式的支援)與 CLI 介面。它已經從簡單的 Demo 演進為一個可擴展的框架,但仍處於實驗性質,適合用於輔助分析而非全自動交易。