Jalankan TradingAgents pada backend serasi OpenAI custom.

Updated 2026-07-30

TradingAgents dihantar dengan mod penyedia openai_compatible. Tetapkan backend_url kepada https://api.apisrouter.com/v1, eksport satu kunci, dan kedua-dua agent deep-think serta quick-think menghalakan melalui satu endpoint dengan setiap model katalog boleh dicapai mengikut id.

Jawapan pantas: tiga tetapan menghalakan TradingAgents ke mana-mana tempat.

TradingAgents menyokong endpoint custom secara asli. Tetapkan llm_provider kepada "openai_compatible", tetapkan backend_url kepada alamat endpoint anda, dan eksport OPENAI_COMPATIBLE_API_KEY dengan kunci untuk endpoint itu. Dengan APIsRouter, backend URL adalah https://api.apisrouter.com/v1, dan setiap model dalam katalog menjadi boleh dicapai daripada slot deep_think_llm dan quick_think_llm mengikut id model tepatnya. Ini adalah laluan konfigurasi yang didokumentasikan dalam repo upstream, bukan fork atau tampalan. Nilai yang sama juga boleh dibekalkan sebagai pembolehubah environment (TRADINGAGENTS_LLM_PROVIDER, TRADINGAGENTS_LLM_BACKEND_URL, TRADINGAGENTS_DEEP_THINK_LLM, TRADINGAGENTS_QUICK_THINK_LLM), jadi kerja berjadual atau runner CI boleh menukar backend tanpa menyentuh kod Python.

config["llm_provider"] = "openai_compatible"
config["backend_url"] = "https://api.apisrouter.com/v1"
# pengesahan: eksport OPENAI_COMPATIBLE_API_KEY=sk-...

Bagaimana TradingAgents bertutur dengan backend LLM-nya.

TradingAgents (TauricResearch di GitHub, 93K+ bintang) adalah kerangka dagangan multi-agent. Satu larian analisis mengagihkan merentasi pasukan analyst yang meliputi fundamental, sentimen, berita, dan teknikal, kemudian penyelidik bull dan penyelidik bear membahaskan kes itu melebihi satu atau lebih pusingan debat, agent peniaga mencadangkan kedudukan, dan lapisan pengurusan risiko menyemaknya sebelum keputusan akhir. Kerangka itu membahagikan kerja tersebut merentasi dua slot model. deep_think_llm mengendalikan langkah berat-penaakulan: debat penyelidikan, keputusan peniaga, dan semakan risiko. quick_think_llm mengendalikan langkah volum-tinggi: membaca data, meringkaskan berita, dan merangka laporan analyst. Kedua-dua slot mengeluarkan permintaan /v1/chat/completions standard. Tetapan penyedia hanya menentukan klien dan hos mana yang dituju permintaan itu, dan openai_compatible menghantarnya ke mana sahaja backend_url yang anda konfigurasikan. Secara asli, TradingAgents turut menyokong OpenAI, Anthropic, Google, dan DeepSeek sebagai penyedia kelas-pertama, tetapi setiap satu memerlukan akaun sendiri, kunci sendiri, dan satu penyedia per larian. Mod openai_compatible meruntuhkan itu: TradingAgents meneruskan medan model sebagai rentetan biasa, jadi apabila endpoint di sebalik backend_url melayani berbilang vendor, slot deep-think Claude dan slot quick-think GPT atau DeepSeek boleh berjalan dalam analisis yang sama. Percampuran per-peranan itulah sebab praktikal untuk menghalakan kerangka melalui gateway berbanding satu endpoint vendor tunggal.

Persediaan penuh: config Python atau pembolehubah environment.

Laluan programatik menyalin DEFAULT_CONFIG dan menulis ganti empat kunci. Kunci yang mengesahkan terhadap endpoint custom dibaca daripada OPENAI_COMPATIBLE_API_KEY, jadi ia tidak perlu muncul dalam dict config atau fail sumber. Laluan pembolehubah-environment menetapkan nilai yang sama melalui pemetaan _ENV_OVERRIDES dalam default_config.py dan berfungsi untuk kedua-dua API Python dan CLI interaktif (tradingagents, atau python -m cli.main). Ambil perhatian backend_url melalaikan kepada None, dalam hal ini klien setiap penyedia kembali kepada endpoint lalainya sendiri; override hanya berkuat kuasa sebaik sahaja anda menetapkannya secara eksplisit. Data pasaran adalah perkara berasingan. TradingAgents menarik sebut harga dan fundamental melalui vendor datanya (contohnya ALPHA_VANTAGE_API_KEY), dan kelayakan itu tidak berkaitan dengan endpoint LLM. Menukar backend_url tidak menyentuh paip data.

from tradingagents.graph.trading_graph import TradingAgentsGraph
from tradingagents.default_config import DEFAULT_CONFIG

config = DEFAULT_CONFIG.copy()
config["llm_provider"] = "openai_compatible"
config["backend_url"] = "https://api.apisrouter.com/v1"
config["deep_think_llm"] = "claude-opus-4-7"    # pusingan debat + keputusan dagangan
config["quick_think_llm"] = "claude-sonnet-4-6" # analyst, ringkasan
config["max_debate_rounds"] = 2

ta = TradingAgentsGraph(debug=True, config=config)
_, decision = ta.propagate("NVDA", "2026-07-15")
print(decision)

Memilih model deep-think dan quick-think.

Lalai upstream memadankan model frontier dalam slot deep dengan model mini dalam slot quick, iaitu bentuk yang betul: belanjakan kapasiti penaakulan di mana keputusan dibuat, dan kapasiti volum di mana pembacaan dilakukan. Menghalakan melalui satu endpoint menjadikan pemadanan itu perubahan dua-baris antara larian, jadi aliran kerja praktikal adalah mengekalkan slot deep tetap dan A/B slot quick berbanding metrik backtest anda berbanding menekabaca.

  • deep_think_llm membawa debat bull/bear, keputusan peniaga, dan semakan risiko. Sedikit panggilan per larian, tetapi setiap satu menaakul atas keseluruhan konteks analyst, dan max_debate_rounds menggandakannya. Inilah tempat model penaakulan frontier (claude-opus-4-7, gpt-5.5) mewajarkan tokennya.
  • quick_think_llm menembak pada setiap langkah analyst: membaca fundamental, memarkah sentimen, meringkaskan berita, merangka laporan. Kebanyakan volum permintaan satu larian mendarat di sini, jadi model tier-pertengahan pantas (claude-sonnet-4-6, deepseek-v4-pro) mengekalkan larian pantas tanpa merosotkan input debat.
  • Beban konteks-panjang, seperti memberi makan failing penuh atau tetingkap berita besar kepada analyst, adalah tempat gemini-3.1-pro-preview berbaloi diuji dalam slot pantas.
  • Backtest menggandakan segala-galanya. Imbasan atas 50 ticker dan 20 tarikh adalah 1,000 panggilan propagate(), jadi pilihan model quick-think yang kelihatan marginal pada satu larian mendominasi bil token pada skala imbasan.

Bayar mengikut penggunaan · bawah harga rasmi

Selected models are priced below official list prices. Exact input, output, cache, and per-request prices are shown for each model.

ModelHarga RasmiHarga Kami
Claude Opus 4.7$5.00 / $25.00 per M$4.00 / $20.00 per M
Claude Sonnet 4.6$3.00 / $15.00 per M$2.40 / $12.00 per M
GPT-5.5$5.00 / $30.00 per M$4.00 / $24.00 per M
Gemini 3.1 Pro Preview$2.00 / $12.00 per M$1.60 / $9.60 per M
DeepSeek V4 Pro$0.43 / $0.87 per M$0.40 / $0.90 per M

Backtest pada skala imbasan: kunci, pin, dan had.

Sebaik sahaja persediaan larian-tunggal berfungsi, permukaan kegagalan beralih kepada imbasan. Tiga tabiat mengekalkan backtest berbilang-hari boleh dihasilkan semula dan dinyahpepijat. Pin id model tepat. Nama model kosong pada sesetengah vendor adalah penunjuk bergolek yang bergerak secara senyap ke snapshot lebih baharu, bermaksud backtest yang bermula Isnin dan selesai Jumaat mungkin tidak menjalankan satu model. Di mana katalog menyenaraikan varian bertarikh, letakkan id bertarikh dalam config, dan rekod dict config bersebelahan keputusan seperti anda merekod seed rawak. Guna satu kunci per eksperimen. Kunci percuma untuk dicipta, dan mensasarkan kunci kepada satu imbasan menukar log penggunaan kepada lejar kos eksperimen: kiraan token dan perbelanjaan per model, boleh ditapis tepat kepada larian dalam imbasan itu. Apabila dua eksperimen berkongsi kunci, mengaitkan perbelanjaan selepasnya bermaksud grep cap masa. Ketahui siling konkurensi anda sebelum menyelari. propagate() adalah segerak per ticker-tarikh, jadi imbasan biasanya dibahagikan merentasi proses. Setiap syer menggandakan kadar permintaan pada slot quick-think dahulu, dan 429 di tengah debat mengos seluruh larian, bukan satu permintaan. Naikkan bilangan syer sambil memerhati konsol berbanding melancarkan lima puluh pekerja sejuk; saluran upstream berkolam menaikkan siling tetapi tidak menjadikannya tanpa had.

Siapa yang menghalakan TradingAgents melalui gateway.

  • Backtester yang menjalankan imbasan ticker-mengikut-tarikh. Beratus-ratus panggilan propagate() per eksperimen menjadikan keterlihatan penggunaan per-kunci dan satu permukaan pengebilan lebih berguna daripada empat dashboard vendor.
  • Penyelidik yang membandingkan pasangan model. Menukar deep_think_llm antara id Claude, GPT, dan DeepSeek adalah suntingan config terhadap satu endpoint, bukan akaun vendor baharu per calon.
  • Pasukan yang mencampur vendor per peranan. Claude untuk debat, DeepSeek untuk volum analyst. Mod penyedia asli mengunci larian kepada satu vendor; endpoint multi-vendor tidak.
  • Pembangun tanpa akses kepada pengebilan vendor tertentu. Akses berasaskan top-up tanpa keperluan kad menghapuskan kebergantungan pendaftaran setiap penyedia.
  • Larian berjadual dan CI. Persediaan hanya-env bermaksud imej runner memerlukan satu rahsia (OPENAI_COMPATIBLE_API_KEY) berbanding satu per penyedia.

Sahkan endpoint dan nyahpepijat larian pertama.

Sebelum menjalankan analisis penuh, sahkan endpoint menjawab dengan model yang anda rancang untuk digunakan. Satu curl baris terhadap /v1/models dengan kunci anda menyenaraikan setiap id boleh dicapai; rentetan dalam deep_think_llm dan quick_think_llm mesti sepadan tepat dengan id tersebut. Mod kegagalan pada larian pertama adalah konsisten. 401 hampir selalu bermaksud OPENAI_COMPATIBLE_API_KEY dieksport dalam shell berbeza daripada yang menjalankan tradingagents, atau langsung tidak dieksport; env var ditetapkan dalam .bashrc tidak mencecah unit systemd atau kerja cron melainkan fail unit itu sendiri mengeksportnya. Ralat model-not-found bermaksud rentetan id tidak sepadan dengan katalog: id adalah tepat, termasuk akhiran versi, dan output /v1/models di atas adalah sumber kebenaran. Ralat sambungan dengan backend_url ditetapkan biasanya bermaksud URL kehilangan akhiran /v1-nya, kerana klien melampirkan laluan route seperti /chat/completions kepada apa sahaja base yang anda berikan. Jika larian berfungsi tetapi kelihatan terhenti dalam fasa debat, itu adalah latency normal untuk model penaakulan atas konteks panjang berbanding masalah endpoint; kekalkan debug=True untuk memerhati langkah agent mengalir. Timeout sebenar pada giliran deep-think yang sangat panjang adalah tetapan sisi-klien, dan berbaloi dinaikkan sebelum membuat kesimpulan backend menggugurkan permintaan. Sebaik sahaja permintaan mengalir, konsol APIsRouter menunjukkan model per permintaan, kiraan token, dan perbelanjaan, yang untuk kerangka seberat-panggilan ini adalah cara terpantas melihat tepat ke mana token satu larian pergi.

curl -s https://api.apisrouter.com/v1/models \
  -H "Authorization: Bearer $OPENAI_COMPATIBLE_API_KEY" | head -50

Soalan lazim

Adakah TradingAgents menyokong model Claude dan Gemini melalui satu endpoint openai_compatible?

Ya. Dalam mod openai_compatible, kerangka menghantar medan model sebagai rentetan biasa kepada backend_url melalui /v1/chat/completions. Mana-mana id yang dilayani endpoint berfungsi, termasuk id Claude, Gemini, dan DeepSeek, dalam sama ada slot deep-think atau quick-think.

Kunci API mana yang digunakan TradingAgents dengan backend_url custom?

OPENAI_COMPATIBLE_API_KEY. Penyedia openai_compatible membacanya daripada environment, jadi kunci itu tidak pernah muncul dalam dict config atau fail sumber anda. OPENAI_API_KEY hanya digunakan oleh penyedia openai asli.

Bolehkah deep_think_llm dan quick_think_llm datang daripada vendor berbeza dalam larian yang sama?

Melalui endpoint multi-vendor, ya: kedua-dua slot menghantar ke backend_url yang sama dan rentetan model menentukan vendor per permintaan. Dengan penyedia asli (openai, anthropic, google, deepseek) satu larian dikunci kepada satu vendor untuk kedua-dua slot.

Adakah saya masih memerlukan akaun OpenAI selepas backend_url ditetapkan?

Tidak. Dengan llm_provider ditetapkan kepada openai_compatible, tiada permintaan pergi ke hos OpenAI dan OPENAI_API_KEY tidak dibaca. Anda masih memerlukan kelayakan data-pasaran yang digunakan TradingAgents (contohnya ALPHA_VANTAGE_API_KEY), yang bebas daripada endpoint LLM.

Adakah CLI interaktif turut menghormati endpoint custom?

Ya. CLI (tradingagents, atau python -m cli.main) menyelesaikan config yang sama, dan pembolehubah environment TRADINGAGENTS_LLM_PROVIDER / TRADINGAGENTS_LLM_BACKEND_URL menulis gantinya sebelum gesaan penyedia, jadi larian CLI berjadual atau kontainer tidak memerlukan input interaktif untuk penghalaan.

Berapa banyak token yang digunakan satu analisis TradingAgents?

Ia berbeza dengan max_debate_rounds, bilangan analyst, dan berapa banyak konteks pasaran yang mereka telan; satu analisis ticker-tarikh biasanya mendarat pada ratusan ribu token, kebanyakannya pada slot quick-think. Pandangan penggunaan per-kunci dalam konsol APIsRouter menunjukkan pembahagian tepat per larian, yang lebih boleh dipercayai daripada menganggarkan.