Jalankan TradingAgents di backend OpenAI-compatible custom.
Updated 2026-07-30
TradingAgents dirilis dengan mode provider openai_compatible. Setel backend_url ke https://api.apisrouter.com/v1, export satu key, dan agent deep-think maupun quick-think merutekan lewat satu endpoint dengan setiap model katalog bisa dialamatkan lewat id.
Jawaban singkat: tiga pengaturan merutekan TradingAgents ke mana saja.
TradingAgents mendukung endpoint custom secara native. Setel llm_provider ke "openai_compatible", setel backend_url ke alamat endpoint Anda, dan export OPENAI_COMPATIBLE_API_KEY dengan key untuk endpoint itu. Dengan APIsRouter, backend URL-nya adalah https://api.apisrouter.com/v1, dan setiap model di katalog menjadi bisa dialamatkan dari slot deep_think_llm dan quick_think_llm lewat id model persisnya. Ini adalah jalur konfigurasi terdokumentasi di repo upstream, bukan fork atau patch. Nilai yang sama juga bisa disediakan sebagai environment variable (TRADINGAGENTS_LLM_PROVIDER, TRADINGAGENTS_LLM_BACKEND_URL, TRADINGAGENTS_DEEP_THINK_LLM, TRADINGAGENTS_QUICK_THINK_LLM), jadi job terjadwal atau runner CI bisa berganti backend tanpa menyentuh kode Python.
config["llm_provider"] = "openai_compatible"
config["backend_url"] = "https://api.apisrouter.com/v1"
# auth: export OPENAI_COMPATIBLE_API_KEY=sk-...Bagaimana TradingAgents berbicara dengan backend LLM-nya.
TradingAgents (TauricResearch di GitHub, 93K+ bintang) adalah framework trading multi-agent. Satu run analisis menyebar lintas tim analyst yang mencakup fundamentals, sentiment, berita, dan technicals, lalu bull researcher dan bear researcher memperdebatkan kasusnya lewat satu atau lebih ronde debat, agent trader mengusulkan posisi, dan lapisan risk-management meninjaunya sebelum keputusan akhir. Framework ini membagi kerja itu ke dua slot model. deep_think_llm menangani langkah berat-reasoning: debat riset, keputusan trader, dan tinjauan risiko. quick_think_llm menangani langkah bervolume tinggi: membaca data, meringkas berita, dan menyusun draf laporan analyst. Kedua slot mengeluarkan request /v1/chat/completions standar. Pengaturan provider hanya menentukan client dan host mana yang dituju request-request itu, dan openai_compatible mengirimnya ke backend_url apa pun yang Anda konfigurasi. Secara native, TradingAgents juga mendukung OpenAI, Anthropic, Google, dan DeepSeek sebagai provider first-party, tapi masing-masing butuh akunnya sendiri, key-nya sendiri, dan satu provider per run. Mode openai_compatible meruntuhkan itu: TradingAgents meneruskan field model sebagai string biasa, jadi saat endpoint di balik backend_url melayani banyak vendor, slot deep-think Claude dan slot quick-think GPT atau DeepSeek bisa berjalan di analisis yang sama. Percampuran per-peran itulah alasan praktis merutekan framework lewat gateway alih-alih endpoint satu vendor.
Setup lengkap: config Python atau environment variable.
Jalur programatik menyalin DEFAULT_CONFIG dan meng-override empat key. Key yang mengautentikasi terhadap endpoint custom dibaca dari OPENAI_COMPATIBLE_API_KEY, jadi tidak pernah perlu muncul di dict config atau file source. Jalur environment-variable menyetel nilai yang sama lewat mapping _ENV_OVERRIDES di default_config.py dan berfungsi untuk Python API maupun CLI interaktif (tradingagents, atau python -m cli.main). Perhatikan bahwa backend_url default-nya None, dalam hal ini client setiap provider fallback ke endpoint default-nya sendiri; override hanya berlaku setelah Anda mengesetnya secara eksplisit. Data pasar adalah perhatian terpisah. TradingAgents menarik kuotasi dan fundamentals lewat vendor datanya (misalnya ALPHA_VANTAGE_API_KEY), dan kredensial itu tidak terkait dengan endpoint LLM. Mengubah backend_url tidak menyentuh pipeline 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" # debate rounds + trade decision
config["quick_think_llm"] = "claude-sonnet-4-6" # analysts, summaries
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.
Default upstream memasangkan model frontier di slot deep dengan model mini di slot quick, yang merupakan bentuk yang benar: belanjakan kapasitas reasoning di tempat keputusan dibuat, dan kapasitas volume di tempat pembacaan dilakukan. Merutekan lewat satu endpoint membuat pemasangan itu perubahan dua baris antar run, jadi workflow praktisnya adalah menahan slot deep tetap dan meng-A/B slot quick terhadap metrik backtest Anda alih-alih menebak.
- deep_think_llm mengangkut debat bull/bear, keputusan trader, dan tinjauan risiko. Sedikit panggilan per run, tapi masing-masing bernalar atas context analyst penuh, dan max_debate_rounds melipatgandakannya. Di sinilah model reasoning frontier (claude-opus-4-7, gpt-5.5) layak mendapat tokennya.
- quick_think_llm menembak di setiap langkah analyst: membaca fundamentals, menilai sentiment, meringkas berita, menyusun draf laporan. Sebagian besar volume request suatu run mendarat di sini, jadi model mid-tier cepat (claude-sonnet-4-6, deepseek-v4-pro) menjaga run tetap cepat tanpa menurunkan kualitas input debat.
- Beban long-context, seperti menyuapi filing penuh atau jendela berita besar ke para analyst, adalah tempat gemini-3.1-pro-preview layak diuji di slot quick.
- Backtest memperkuat segalanya. Sweep atas 50 ticker dan 20 tanggal adalah 1.000 panggilan propagate(), jadi pilihan model quick-think yang terlihat marginal pada satu run mendominasi tagihan token pada skala sweep.
Bayar sesuai pemakaian · di bawah harga resmi
Selected models are priced below official list prices. Exact input, output, cache, and per-request prices are shown for each model.
| Model | Harga Resmi | Harga 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 |
Backtesting pada skala sweep: key, pinning, dan batas.
Setelah setup single-run berfungsi, permukaan kegagalan berpindah ke sweep. Tiga kebiasaan menjaga backtest multi-hari tetap bisa direproduksi dan di-debug. Pin id model persis. Nama model polos di beberapa vendor adalah pointer bergulir yang diam-diam berpindah ke snapshot lebih baru, yang berarti backtest yang dimulai Senin dan selesai Jumat mungkin tidak menjalankan satu model yang sama. Di mana katalog mendaftar varian bertanggal, taruh id bertanggal itu di config, dan catat dict config di samping hasil seperti Anda mencatat random seed. Pakai satu key per eksperimen. Key gratis dibuat, dan menyempitkan satu key untuk satu sweep mengubah log penggunaan jadi buku besar biaya eksperimen: hitungan token dan pengeluaran per model, bisa difilter tepat ke run dalam sweep itu. Saat dua eksperimen berbagi key, mengatribusikan pengeluaran belakangan berarti nge-grep timestamp. Ketahui batas konkurensi Anda sebelum paralelisasi. propagate() sinkron per ticker-tanggal, jadi sweep biasanya di-shard lintas proses. Setiap shard melipatgandakan laju request pada slot quick-think dulu, dan 429 di tengah debat menghabiskan seluruh run, bukan satu request. Naikkan jumlah shard bertahap sambil mengamati konsol alih-alih meluncurkan lima puluh worker secara dingin; kanal upstream yang pooled menaikkan batasnya tapi tidak membuatnya tak terbatas.
Siapa yang merutekan TradingAgents melalui gateway.
- Backtester yang menjalankan sweep ticker-per-tanggal. Ratusan panggilan propagate() per eksperimen membuat visibilitas penggunaan per-key dan satu permukaan billing lebih berguna daripada empat dashboard vendor.
- Peneliti yang membandingkan pasangan model. Menukar deep_think_llm antara id Claude, GPT, dan DeepSeek hanya edit config terhadap satu endpoint, bukan akun vendor baru per kandidat.
- Tim yang mencampur vendor per peran. Claude untuk debat, DeepSeek untuk volume analyst. Mode provider native mengunci satu run ke satu vendor; endpoint multi-vendor tidak.
- Developer tanpa akses ke billing vendor tertentu. Akses berbasis top-up tanpa syarat kartu menghilangkan ketergantungan sign-up per provider.
- Run terjadwal dan CI. Setup env-only berarti image runner hanya butuh satu secret (OPENAI_COMPATIBLE_API_KEY) alih-alih satu per provider.
Verifikasi endpoint dan debug run pertama.
Sebelum menjalankan analisis penuh, konfirmasi endpoint menjawab dengan model yang Anda rencanakan pakai. Satu baris curl terhadap /v1/models dengan key Anda mendaftar setiap id yang bisa dialamatkan; string di deep_think_llm dan quick_think_llm harus cocok persis dengan id-id itu. Mode kegagalan pada run pertama konsisten. 401 hampir selalu berarti OPENAI_COMPATIBLE_API_KEY di-export di shell yang berbeda dari yang menjalankan tradingagents, atau tidak di-export sama sekali; env var yang diset di .bashrc tidak sampai ke unit systemd atau cron job kecuali file unit itu sendiri meng-export-nya. Error model-not-found berarti string id tidak cocok dengan katalog: id bersifat persis, termasuk suffix versi, dan output /v1/models di atas adalah sumber kebenaran. Error koneksi dengan backend_url yang sudah diset biasanya berarti URL-nya kehilangan suffix /v1, karena client menambahkan route path seperti /chat/completions ke base apa pun yang Anda berikan. Jika run berfungsi tapi terlihat stall di fase debat, itu adalah latensi normal untuk model reasoning atas context panjang alih-alih masalah endpoint; biarkan debug=True aktif untuk mengamati stream langkah agent. Timeout sungguhan pada giliran deep-think yang sangat panjang adalah pengaturan sisi-client, dan layak dinaikkan sebelum menyimpulkan backend menjatuhkan request. Setelah request mengalir, konsol APIsRouter menunjukkan model per request, hitungan token, dan pengeluaran, yang untuk framework seberat-panggilan ini adalah cara tercepat melihat persis ke mana token suatu run pergi.
curl -s https://api.apisrouter.com/v1/models \
-H "Authorization: Bearer $OPENAI_COMPATIBLE_API_KEY" | head -50Pertanyaan umum
Apakah TradingAgents mendukung model Claude dan Gemini lewat satu endpoint openai_compatible?
Ya. Dalam mode openai_compatible, framework mengirim field model sebagai string biasa ke backend_url lewat /v1/chat/completions. Id apa pun yang dilayani endpoint berfungsi, termasuk id Claude, Gemini, dan DeepSeek, di slot deep-think maupun quick-think.
API key mana yang dipakai TradingAgents dengan backend_url custom?
OPENAI_COMPATIBLE_API_KEY. Provider openai_compatible membacanya dari environment, jadi key-nya tidak pernah muncul di dict config atau file source Anda. OPENAI_API_KEY hanya dipakai oleh provider openai native.
Bisakah deep_think_llm dan quick_think_llm berasal dari vendor berbeda dalam run yang sama?
Lewat endpoint multi-vendor, ya: kedua slot mengirim ke backend_url yang sama dan string model menentukan vendor per request. Dengan provider native (openai, anthropic, google, deepseek), satu run terkunci ke satu vendor untuk kedua slot.
Apakah saya masih butuh akun OpenAI setelah backend_url diset?
Tidak. Dengan llm_provider diset ke openai_compatible, tidak ada request yang pergi ke host OpenAI dan OPENAI_API_KEY tidak dibaca. Anda tetap butuh kredensial data-pasar yang dipakai TradingAgents (misalnya ALPHA_VANTAGE_API_KEY), yang independen dari endpoint LLM.
Apakah CLI interaktif juga menghormati endpoint custom?
Ya. CLI (tradingagents, atau python -m cli.main) meresolusi config yang sama, dan environment variable TRADINGAGENTS_LLM_PROVIDER / TRADINGAGENTS_LLM_BACKEND_URL meng-override-nya sebelum prompt provider, jadi run CLI terjadwal atau di container tidak butuh input interaktif untuk routing.
Berapa banyak token yang dikonsumsi satu analisis TradingAgents?
Bervariasi dengan max_debate_rounds, jumlah analyst, dan berapa banyak context pasar yang mereka serap; satu analisis ticker-tanggal tunggal biasanya mendarat di ratusan ribu token, sebagian besar di slot quick-think. Tampilan penggunaan per-key di konsol APIsRouter menunjukkan pembagian persis per run, yang lebih bisa diandalkan daripada menaksir.