← 返回部落格
Ai預計閱讀 10 分鐘

用 LLM 代理組出一間交易公司:117,000 顆星,先讀免責聲明

發布於 2026年10月28日
用 LLM 代理組出一間交易公司:117,000 顆星,先讀免責聲明

TradingAgents 在 GitHub 上大約有 117,700 顆星,本週就進帳約 4,900 顆,讓它成為「真的能幹活的代理」這一類裡排名相當前面的專案。它出自 Tauric Research,是一套多代理框架,模擬一家交易公司:分析師、研究員、交易員、風控團隊與投資組合經理,全部由語言模型驅動,彼此爭論,直到某個方案被核准。

這個專案對自己的宣稱很克制。專案描述寫明是為研究用途而設計,並補上一句:表現會隨所選的基礎模型、溫度、交易區間、資料品質,以及單純的非決定性而變動。這句話扛了很多重量,也是 README 裡最重要的一句。

組織圖就是架構

這裡有意思的不是 LLM 會選股。很多提示詞做這件事都做得很糟。有意思的是,這條流程被組織成一間真實公司的樣子,有職責分工,也有辯論階段。

四位分析師平行且獨立作業:基本面(財報、內在價值、風險訊號)、情緒(新聞標題、StockTwits、Reddit)、新聞(全球與總體事件)、技術面(MACD、RSI、型態辨識)。他們看不到彼此的產出。四份報告都必須到位,後面的事才會開始。

接著是一個兩人的研究團隊——一位看多、一位看空——分回合辯論這些報告。然後交易員把分析師與研究員的材料綜合成一個帶時點與部位的決策。再來風控團隊評估波動度、流動性與曝險,把評估交給投資組合經理,由他核准或駁回。核准的交易送進模擬交易所。

如果你在基金待過,這個形狀會很熟悉,包括風控握有否決權、投資組合經理擁有最後決定權這一段。這不是裝飾。交易公司之所以這樣組織,是因為單一決策者只有一種世界觀,會犯彼此相關的錯誤。這套結構本身就是一種糾錯機制,而這個框架複製的是機制,不是職稱。

玻璃会议墙上用白色马克笔画出的决策流程,方框与箭头分成两路又重新汇合,一处分支被画上叉

把它跑起來

需要 Python 3.11 或更新版本。README 建議用 conda 或 uv:

git clone https://github.com/TauricResearch/TradingAgents.git
cd TradingAgents
pip install .

然後複製環境變數檔並填入金鑰:

cp .env.example .env

再執行互動式 CLI:

tradingagents

另外還有 Docker 路徑,如果你想要能重現的結果,我會走這條:

docker compose run --rm tradingagents

若要排程執行,有一個非互動模式,可以明確指定模型:

export TRADINGAGENTS_LLM_PROVIDER=openai \
  TRADINGAGENTS_QUICK_THINK_LLM=gpt-6-luna \
  TRADINGAGENTS_DEEP_THINK_LLM=gpt-6-sol
tradingagents --ticker NVDA --date 2026-09-23 \
  --analysts market,news,fundamentals --save --no-show

這個雙模型拆分值得注意。「快思考」處理機械性的回合,「深思考」負責分析。這是一個包裝成設定選項的成本控制決定,也意味著作者清楚:用大模型跑完整套多代理流程,每檔標的都很貴。

數字上的問題

接下來是我要反駁這個專案常見討論方式的地方。

一套每天為每檔標的產出一個決策的多代理交易系統,一年下來的資料點非常少。如果跑 30 檔標的、12 個月,你有 7,560 個決策——聽起來很多,直到你想起它們全來自同樣那 12 個月的市場環境。有效樣本數更接近一種市場狀態,而不是 7,560 個獨立觀測值。

再加上 README 警告的非決定性。溫度、模型版本、工具延遲,以及檢索到的新聞抵達順序,都會改變輸出。同一天、同一檔標的跑兩次,可能在研究員辯論階段就分岔,最後拿到不同的部位。這讓傳統回測幾乎無法重現,而可重現是唯一能把結果變成證據的東西。

這些都不是在挑框架的毛病,而是在挑「我的代理跑贏標普」這類文章的毛病——每次有這種發布,後面都會跟著一批。作者自己是以研究定位發表在 arXiv 上(2412.20138),專案第一句也寫著研究用途。那句話和它被傳播的方式之間的落差,就是人們虧錢的地方。

辯論層到底買到什麼

我讀過相當數量的代理辯論紀錄,有一個穩定的模式:辯論改變結論的頻率,遠低於它改變信心的頻率。

這仍然有用。一位看多和一位看空圍繞同一批分析師報告爭論,會把這筆交易依賴的具體假設逼出來——「如果利潤率繼續擴張,這就成立」——而這本來就是人類分析師該讀到的那句話。產出不是一個訊號,而是一份關於「什麼必須為真」的結構化陳述。

反方向也有真實風險:辯論紀錄很有說服力。一份寫得好的看空論證讀起來像洞見,即使它建立在一個幻想出來的獲利數字上。框架透過讓分析師彼此隔離、並給風控否決權來緩解這點,但流程裡沒有任何環節去核實被引用的數字是否真的存在。如果你要部署它,驗證層得由你自己建,而且它應該是一道硬門檻,而不是另一個代理的意見。

這東西的「有效結果」得長什麼樣

如果有人想說服我,這樣的多代理配置真的具備優勢,這是最低門檻,而且比我見過的任何展示都高。

把一切凍結。模型版本、溫度、提示詞範本、資料快照日期、檢索語料。針對某個具體週二的即時資料跑出來的結果是一則軼事,不是一次量測。

對標正確的基準。不是「它賺錢了嗎」,而是「它是否跑贏同等曝險的樸素策略」。在上漲市場裡,一個只做多的系統按定義就跑贏現金,而相當一部分代理交易內容就是這個,只是多了幾步。

報告成本。一整套四分析師、多回合辯論的流程,每檔標的每天都燒真實的 token。如果策略年化 12%,而模型帳單占投資組合的 3%,那麼辯論層必須先值回四分之一的 alpha,才配得上它的位置。

還有,把失敗的執行也公開。Cloudflare 那個安全專案之所以可信,是因為它明說單次掃描只能找到重複掃描結果的一半。這裡的等價物,是公布那些看空研究員判斷正確、卻被投資組合經理否決的標的。到現在為止,沒有任何專案這麼做。

到底誰該 clone 它

三種正當用途,沒有一種是「替我管錢」。

作為多代理協作研究的鷹架,它確實不錯:乾淨的職責劃分、一套辯論協定、一個否決機制,還有一篇描述設計的論文。如果你在研究結構化分歧能否改善 LLM 推理,這是一個現成的測試台,介面都不用自己搭。

作為給初學者的教學工具,用來理解交易台如何拆解一個決策,它比教科書上的方塊圖更好,因為你能看著報告流動,看到糟糕的輸入在哪裡擴散。

作為個人的事前驗屍(pre-mortem),但要嚴格限定:拿你已經持有的部位去跑,讀那份看空論證,把輸出當成一張待核實清單。價值在那些問題裡,不在 BUY/SELL 那一欄。而且把它留在模擬交易所裡——它預設就跑在那裡,也應該待在那裡。

那 117,000 顆星是關於需求的訊號,不是關於表現的訊號。人們想要一個替他們讀新聞、然後告訴他們該怎麼做的系統。這個框架給的是更誠實、也更不令人滿意的東西:一屋子意見不合的同事,以及一個仍然取決於資料是否正確的決策。

相關文章