شغّل TradingAgents على خلفية مخصصة متوافقة مع OpenAI.
Updated 2026-07-30
يشحن TradingAgents بوضع مزوّد openai_compatible. اضبط backend_url على https://api.apisrouter.com/v1، صدّر مفتاحاً واحداً، ويتوجّه وكيلا deep-think وquick-think عبر نقطة نهاية واحدة مع كل نموذج كتالوج قابل للعنونة بمعرّفه.
إجابة سريعة: ثلاثة إعدادات توجّه TradingAgents إلى أي مكان.
يدعم TradingAgents نقاط النهاية المخصصة بشكل أصيل. اضبط llm_provider على "openai_compatible"، اضبط backend_url على عنوان نقطة نهايتك، وصدّر OPENAI_COMPATIBLE_API_KEY بمفتاح لتلك النقطة. مع APIsRouter، عنوان الخلفية هو https://api.apisrouter.com/v1، ويصبح كل نموذج في الكتالوج قابلاً للعنونة من فتحتَي deep_think_llm وquick_think_llm بمعرّف النموذج الدقيق. هذا مسار إعداد موثَّق في المستودع الأصلي، لا تفريعة أو رقعة. يمكن أيضاً تقديم نفس القيم كمتغيّرات بيئة (TRADINGAGENTS_LLM_PROVIDER، TRADINGAGENTS_LLM_BACKEND_URL، TRADINGAGENTS_DEEP_THINK_LLM، TRADINGAGENTS_QUICK_THINK_LLM)، لذا يمكن لمهمة مجدولة أو مُشغِّل CI تبديل الخلفيات دون لمس كود Python.
config["llm_provider"] = "openai_compatible"
config["backend_url"] = "https://api.apisrouter.com/v1"
# auth: export OPENAI_COMPATIBLE_API_KEY=sk-...كيف يتحدث TradingAgents إلى خلفية LLM الخاصة به.
TradingAgents (TauricResearch على GitHub، أكثر من 93 ألف نجمة) إطار تداول متعدد الوكلاء. تشغيل تحليل واحد يتفرّع عبر فريق محلّلين يغطي الأساسيات والمشاعر والأخبار والتحليل الفني، ثم يتجادل باحث صعودي وباحث هبوطي حول الحالة عبر جولة أو أكثر من النقاش، يقترح وكيل متداول المركز، وتُراجِعه طبقة إدارة مخاطر قبل القرار النهائي. يُقسِّم الإطار ذلك العمل عبر فتحتَي نموذج. deep_think_llm يتولى الخطوات الثقيلة بالاستدلال: نقاش البحث، قرار المتداول، ومراجعة المخاطر. quick_think_llm يتولى الخطوات عالية الحجم: قراءة البيانات، تلخيص الأخبار، وصياغة تقارير المحلّلين. تصدر كلتا الفتحتين طلبات /v1/chat/completions قياسية. إعداد المزوّد يقرر فقط أي عميل ومضيف تذهب إليهما تلك الطلبات، وopenai_compatible يُرسِلها إلى أياً كان backend_url الذي تُعِدّه. بشكل أصيل، يدعم TradingAgents أيضاً OpenAI وAnthropic وGoogle وDeepSeek كمزوّدين من الدرجة الأولى، لكن كل واحد يحتاج حسابه الخاص ومفتاحه الخاص ومزوّداً واحداً لكل تشغيل. وضع openai_compatible يُلخِّص ذلك: يُمرِّر TradingAgents حقل model كسلسلة عادية، لذا عندما تخدم نقطة النهاية خلف backend_url عدة بائعين، يمكن لفتحة deep-think بـ Claude وفتحة quick-think بـ GPT أو DeepSeek العمل في نفس التحليل. ذلك المزج لكل دور هو السبب العملي لتوجيه الإطار عبر بوابة بدلاً من نقطة نهاية بائع واحد.
الإعداد الكامل: إعداد Python أو متغيّرات بيئة.
المسار البرمجي ينسخ DEFAULT_CONFIG ويتجاوز أربعة مفاتيح. المفتاح الذي يُصادِق مقابل نقطة النهاية المخصصة يُقرَأ من OPENAI_COMPATIBLE_API_KEY، لذا لا يحتاج للظهور أبداً في قاموس الإعداد أو ملف المصدر. مسار متغيّر البيئة يضبط نفس القيم عبر خريطة _ENV_OVERRIDES في default_config.py ويعمل لكل من Python API وCLI التفاعلي (tradingagents، أو python -m cli.main). لاحظ أن backend_url افتراضياً None، وفي تلك الحالة يعود كل عميل مزوّد إلى نقطة نهايته الافتراضية الخاصة؛ التجاوز يسري فقط بمجرد ضبطه صراحة. بيانات السوق مسألة منفصلة. يسحب TradingAgents الأسعار والأساسيات عبر بائعي بياناته (مثلاً ALPHA_VANTAGE_API_KEY)، وتلك بيانات اعتماد غير مرتبطة بنقطة نهاية LLM. تغيير backend_url لا يلمس خط أنابيب البيانات.
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)اختيار نماذج deep-think وquick-think.
الافتراضي الأصلي يُزاوِج نموذجاً طليعياً في الفتحة العميقة مع نموذج mini في الفتحة السريعة، وهذا هو الشكل الصحيح: أنفق قدرة الاستدلال حيث يُتَّخذ القرار، وقدرة الحجم حيث تحدث القراءة. التوجيه عبر نقطة نهاية واحدة يجعل الزوج تغييراً من سطرين بين التشغيلات، لذا سير العمل العملي هو تثبيت الفتحة العميقة واختبار A/B للفتحة السريعة مقابل مقاييس الاختبار الخلفي لديك بدلاً من التخمين.
- deep_think_llm يحمل نقاش الصعود/الهبوط، قرار المتداول، ومراجعة المخاطر. استدعاءات قليلة لكل تشغيل، لكن كل واحد يستدل فوق سياق المحلّلين الكامل، وmax_debate_rounds يُضاعِفها. هنا يكسب نموذج استدلال طليعي (claude-opus-4-7، gpt-5.5) tokens الخاصة به.
- quick_think_llm يُطلَق في كل خطوة محلّل: قراءة الأساسيات، تقييم المشاعر، تلخيص الأخبار، صياغة التقارير. معظم حجم طلبات التشغيل يهبط هنا، لذا نموذج سريع من الفئة المتوسطة (claude-sonnet-4-6، deepseek-v4-pro) يُبقي التشغيلات سريعة دون إضعاف مدخلات النقاش.
- الأحمال بسياق طويل، مثل تغذية ملفات كاملة أو نوافذ أخبار كبيرة إلى المحلّلين، هي حيث يستحق gemini-3.1-pro-preview الاختبار في الفتحة السريعة.
- الاختبارات الخلفية تُضخِّم كل شيء. مسح فوق 50 رمز سهم و20 تاريخاً هو 1000 استدعاء propagate()، لذا اختيار نموذج quick-think يبدو هامشياً على تشغيل واحد يُهيمن على فاتورة tokens بمقياس المسح.
ادفع حسب الاستخدام · أقل من السعر الرسمي
Selected models are priced below official list prices. Exact input, output, cache, and per-request prices are shown for each model.
| النموذج | السعر الرسمي | سعرنا |
|---|---|---|
| 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 |
الاختبار الخلفي بمقياس المسح: المفاتيح، التثبيت، والحدود.
بمجرد أن يعمل إعداد التشغيل الواحد، ينتقل سطح الفشل إلى المسح. ثلاث عادات تُبقي اختباراً خلفياً متعدد الأيام قابلاً للتكرار والتصحيح. ثبّت معرّفات النموذج الدقيقة. الأسماء العارية على بعض البائعين مؤشرات متحركة تنتقل بصمت إلى لقطات أحدث، ما يعني أن اختباراً خلفياً بدأ الاثنين وانتهى الجمعة ربما لم يُشغِّل نموذجاً واحداً. حيث يسرد الكتالوج نسخة مؤرَّخة، ضع المعرّف المؤرَّخ في الإعداد، وسجّل قاموس الإعداد بجانب النتائج مثل بذرة عشوائية. استخدم مفتاحاً واحداً لكل تجربة. المفاتيح مجانية للإنشاء، وحصر مفتاح بمسح يُحوِّل سجل الاستخدام إلى دفتر تكلفة التجربة: عدد tokens والإنفاق لكل نموذج، قابل للتصفية إلى بالضبط تشغيلات ذلك المسح. عندما تتشارك تجربتان مفتاحاً، إسناد الإنفاق لاحقاً يعني تمشيط الطوابع الزمنية. اعرف سقف تزامنك قبل التوازي. propagate() متزامن لكل رمز سهم-تاريخ، لذا تُقسَّم المسوحات عادة عبر عمليات. كل جزء يُضاعِف معدل الطلبات على الفتحة السريعة أولاً، و429 في منتصف النقاش يكلّف تشغيلاً كاملاً، لا طلباً واحداً. صعّد عدد الأجزاء أثناء مراقبة اللوحة بدلاً من إطلاق خمسين عاملاً بارداً؛ قنوات upstream المُجمَّعة ترفع السقف لكن لا تجعله لانهائياً.
من يوجّه TradingAgents عبر بوابة.
- مُختبِرو الاختبار الخلفي الذين يُشغِّلون مسوحات رمز سهم بتاريخ. مئات استدعاءات propagate() لكل تجربة تجعل رؤية الاستخدام لكل مفتاح وسطح فوترة واحد أكثر فائدة من أربع لوحات تحكم بائع.
- الباحثون الذين يقارنون أزواج النماذج. تبديل deep_think_llm بين معرّفات Claude وGPT وDeepSeek هو تعديل إعداد مقابل نقطة نهاية واحدة، لا حساب بائع جديد لكل مرشّح.
- الفرق التي تُزاوِج البائعين لكل دور. Claude للنقاش، DeepSeek لحجم المحلّلين. وضع المزوّد الأصيل يُقفِل تشغيلاً على بائع واحد؛ نقطة نهاية متعددة البائعين لا تفعل.
- المطورون الذين لا يملكون وصولاً إلى فوترة بائع معيّن. الوصول القائم على تعبئة الرصيد بدون شرط بطاقة يزيل الاعتماد على التسجيل لكل مزوّد.
- التشغيلات المجدولة وCI. الإعداد بمتغيّرات البيئة فقط يعني أن صورة المُشغِّل تحتاج سراً واحداً (OPENAI_COMPATIBLE_API_KEY) بدلاً من واحد لكل مزوّد.
تحقق من نقطة النهاية وصحّح أخطاء أول تشغيل.
قبل تشغيل تحليل كامل، تأكّد من أن نقطة النهاية تُجيب بالنماذج التي تخطط لاستخدامها. curl سطر واحد مقابل /v1/models بمفتاحك يسرد كل معرّف قابل للعنونة؛ السلاسل في deep_think_llm وquick_think_llm يجب أن تطابق تلك المعرّفات تماماً. أنماط الفشل على أول تشغيل متسقة. 401 يعني تقريباً دائماً أن OPENAI_COMPATIBLE_API_KEY صُدِّر في shell مختلف عن الذي يُشغِّل tradingagents، أو لم يُصدَّر على الإطلاق؛ متغيّرات البيئة المضبوطة في .bashrc لا تصل إلى وحدة systemd أو مهمة cron ما لم يُصدِّرها ملف الوحدة نفسه. خطأ model-not-found يعني أن سلسلة المعرّف لا تطابق الكتالوج: المعرّفات دقيقة، بما في ذلك لواحق الإصدار، ومُخرَج /v1/models أعلاه هو مصدر الحقيقة. خطأ اتصال مع ضبط backend_url يعني عادة أن الرابط يفتقد لاحقة /v1، بما أن العميل يُلحِق مسارات مثل /chat/completions بأياً كانت القاعدة التي تُعطيها. إذا عمل التشغيل لكنه يبدو متوقفاً في مرحلة النقاش، فذلك زمن استجابة طبيعي لنماذج الاستدلال فوق سياقات طويلة لا مشكلة نقطة نهاية؛ أبقِ debug=True مُفعَّلاً لمراقبة خطوات الوكيل تتدفق. المهل الزمنية الحقيقية على جولات deep-think الطويلة جداً هي إعداد من جانب العميل، وتستحق الرفع قبل الاستنتاج بأن الخلفية أسقطت الطلب. بمجرد تدفّق الطلبات، تعرض لوحة APIsRouter النموذج لكل طلب، وعدد tokens، والإنفاق، وهذا لإطار بهذا الكثافة في الاستدعاءات أسرع طريقة لرؤية بالضبط أين تذهب tokens التشغيل.
curl -s https://api.apisrouter.com/v1/models \
-H "Authorization: Bearer $OPENAI_COMPATIBLE_API_KEY" | head -50الأسئلة الشائعة
هل يدعم TradingAgents نماذج Claude وGemini عبر نقطة نهاية واحدة بوضع openai_compatible؟
نعم. في وضع openai_compatible يُرسِل الإطار حقل model كسلسلة عادية إلى backend_url عبر /v1/chat/completions. أي معرّف تخدمه نقطة النهاية يعمل، بما في ذلك معرّفات Claude وGemini وDeepSeek، في فتحة deep-think أو quick-think.
أي مفتاح API يستخدمه TradingAgents مع backend_url مخصص؟
OPENAI_COMPATIBLE_API_KEY. يقرأه مزوّد openai_compatible من البيئة، لذا لا يظهر المفتاح أبداً في قاموس إعدادك أو ملفات المصدر. OPENAI_API_KEY يُستخدَم فقط بواسطة مزوّد openai الأصيل.
هل يمكن أن يأتي deep_think_llm وquick_think_llm من بائعين مختلفين في نفس التشغيل؟
عبر نقطة نهاية متعددة البائعين، نعم: كلتا الفتحتين تُرسِلان إلى نفس backend_url وسلسلة النموذج تقرر البائع لكل طلب. مع المزوّدين الأصليين (openai، anthropic، google، deepseek) يُقفَل تشغيل على بائع واحد لكلتا الفتحتين.
هل لا أزال أحتاج حساب OpenAI بمجرد ضبط backend_url؟
لا. مع ضبط llm_provider على openai_compatible، لا يذهب أي طلب إلى مضيفات OpenAI ولا تُقرَأ OPENAI_API_KEY. لا تزال تحتاج بيانات اعتماد بيانات السوق التي يستخدمها TradingAgents (مثلاً ALPHA_VANTAGE_API_KEY)، وهي مستقلة عن نقطة نهاية LLM.
هل يحترم CLI التفاعلي نقطة النهاية المخصصة أيضاً؟
نعم. يحلّ CLI (tradingagents، أو python -m cli.main) نفس الإعداد، ومتغيّرات البيئة TRADINGAGENTS_LLM_PROVIDER / TRADINGAGENTS_LLM_BACKEND_URL تتجاوزه قبل مطالبة المزوّد، لذا التشغيلات المجدولة أو المُحتواة لا تحتاج إدخالاً تفاعلياً للتوجيه.
كم tokens يستهلك تحليل TradingAgents واحد؟
يتفاوت مع max_debate_rounds، عدد المحلّلين، وكمية سياق السوق الذي يستوعبونه؛ تحليل رمز سهم-تاريخ واحد يحطّ عادة في مئات آلاف tokens، معظمها على فتحة quick-think. عرض الاستخدام لكل مفتاح في لوحة APIsRouter يُظهِر التقسيم الدقيق لكل تشغيل، وهو أوثق من التقدير.